summaryrefslogtreecommitdiffstats
path: root/mobile/android/focus-android
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:34:42 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:34:42 +0000
commitda4c7e7ed675c3bf405668739c3012d140856109 (patch)
treecdd868dba063fecba609a1d819de271f0d51b23e /mobile/android/focus-android
parentAdding upstream version 125.0.3. (diff)
downloadfirefox-da4c7e7ed675c3bf405668739c3012d140856109.tar.xz
firefox-da4c7e7ed675c3bf405668739c3012d140856109.zip
Adding upstream version 126.0.upstream/126.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mobile/android/focus-android')
-rw-r--r--mobile/android/focus-android/.buildconfig.yml165
-rw-r--r--mobile/android/focus-android/.editorconfig5
-rw-r--r--mobile/android/focus-android/CODEOWNERS5
-rw-r--r--mobile/android/focus-android/CONTRIBUTING.md4
-rw-r--r--mobile/android/focus-android/README.md119
-rw-r--r--mobile/android/focus-android/Screengrabfile22
-rw-r--r--mobile/android/focus-android/app/.experimenter.yaml23
-rw-r--r--mobile/android/focus-android/app/.gitignore3
-rw-r--r--mobile/android/focus-android/app/build.gradle788
-rw-r--r--mobile/android/focus-android/app/lint-baseline.xml7196
-rw-r--r--mobile/android/focus-android/app/lint.xml27
-rw-r--r--mobile/android/focus-android/app/metrics.yaml2458
-rw-r--r--mobile/android/focus-android/app/nimbus.fml.yaml48
-rw-r--r--mobile/android/focus-android/app/pings.yaml31
-rw-r--r--mobile/android/focus-android/app/proguard-rules.pro154
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/audioPage.html37
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/cross-site-cookies.html12
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/download.jpgbin0 -> 9375 bytes
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/etpPages/adsTrackers.html21
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/etpPages/analyticsTrackers.html21
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/etpPages/otherTrackers.html22
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/etpPages/socialTrackers.html21
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/genericPage.html15
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/global_privacy_control.html15
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/htmlControls.html66
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/image_test.html20
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/mutedVideoPage.html53
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/rabbit.jpgbin0 -> 5038 bytes
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/resources/audioSample.mp3bin0 -> 5517 bytes
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/resources/clip.mp4bin0 -> 39160 bytes
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/same-site-cookies.html125
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/service-worker.js2
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/storage_check.html23
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/storage_start.html28
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/tab1.html29
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/tab2.html16
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/tab3.html20
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/test.html38
-rw-r--r--mobile/android/focus-android/app/src/androidTest/assets/videoPage.html53
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/AddToHomescreenTest.kt89
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ContextMenusTest.kt187
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/CustomTabTest.kt133
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/DownloadFileTest.kt200
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/EnhancedTrackingProtectionSettingsTest.kt351
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/EraseBrowsingDataTest.kt160
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ErrorPagesTest.kt60
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/FirstRunTest.kt57
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MediaPlaybackTest.kt101
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MozillaSupportPagesTest.kt128
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MultitaskingTest.kt147
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/OldFirstRunTest.kt67
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/OpenInExternalBrowserDialogueTest.kt61
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SafeBrowsingTest.kt139
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SearchTest.kt184
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsAdvancedTest.kt82
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsGeneralTest.kt178
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsPrivacyTest.kt135
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsTest.kt85
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ShortcutsTest.kt124
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SitePermissionsTest.kt272
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SwitchContextTest.kt132
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ThreeDotMainMenuTest.kt137
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/URLAutocompleteTest.kt147
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/WebControlsTest.kt174
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/AddToHomeScreenRobot.kt71
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/BrowserRobot.kt694
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/CustomTabRobot.kt132
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/DownloadRobot.kt96
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/HomeScreenRobot.kt235
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/NotificationRobot.kt159
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SearchRobot.kt166
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsAdvancedMenuRobot.kt109
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsGeneralMenuRobot.kt197
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsMozillaMenuRobot.kt187
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsPrivacyMenuRobot.kt741
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsRobot.kt114
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsSearchMenuRobot.kt169
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsSitePermissionsRobot.kt166
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SiteSecurityInfoSheetRobot.kt75
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/TabsTrayRobot.kt69
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/ThreeDotMainMenuRobot.kt238
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/Constants.kt9
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/DeleteFilesHelper.kt52
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/EspressoHelper.kt84
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/FeatureSettingsHelper.kt51
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/HostScreencapScreenshotStrategy.java116
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/MainActivityTestRule.kt151
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/MockLocationUpdatesRule.kt113
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/MockWebServerHelper.kt76
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/RetryTestRule.kt44
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/StringsHelper.kt27
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/TestAssetHelper.kt71
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/TestHelper.kt379
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/ext/WaitNotNull.kt20
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/idlingResources/RecyclerViewIdlingResource.kt32
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/idlingResources/SessionLoadedIdlingResource.kt48
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/privacy/GlobalPrivacyControlTest.kt60
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/privacy/LocalSessionStorageTest.kt96
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/AllowListScreenshots.java123
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/BrowserScreenScreenshots.java301
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/ErrorPagesScreenshots.java96
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/FirstRunScreenshots.kt55
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/HomeScreenScreenshots.kt129
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/NotificationScreenshots.java104
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/ScreenshotTest.java94
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/SettingsScreenshots.kt71
-rw-r--r--mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/testAnnotations/SmokeTest.kt13
-rw-r--r--mobile/android/focus-android/app/src/beta/res/drawable-v24/ic_splash_screen.xml263
-rw-r--r--mobile/android/focus-android/app/src/beta/res/drawable/ic_splash_screen.pngbin0 -> 6437 bytes
-rw-r--r--mobile/android/focus-android/app/src/beta/res/values-night/colors.xml7
-rw-r--r--mobile/android/focus-android/app/src/debug/AndroidManifest.xml23
-rw-r--r--mobile/android/focus-android/app/src/debug/java/org/mozilla/focus/DebugFocusApplication.kt40
-rw-r--r--mobile/android/focus-android/app/src/debug/java/org/mozilla/focus/utils/AdjustHelper.java14
-rw-r--r--mobile/android/focus-android/app/src/debug/java/org/mozilla/focus/web/Config.kt10
-rw-r--r--mobile/android/focus-android/app/src/debug/res/mipmap-anydpi-v26/ic_launcher.xml9
-rw-r--r--mobile/android/focus-android/app/src/debug/res/mipmap-hdpi/ic_launcher.pngbin0 -> 14925 bytes
-rw-r--r--mobile/android/focus-android/app/src/debug/res/mipmap-hdpi/ic_launcher_foreground.pngbin0 -> 14454 bytes
-rw-r--r--mobile/android/focus-android/app/src/debug/res/mipmap-xhdpi/ic_launcher.pngbin0 -> 16819 bytes
-rw-r--r--mobile/android/focus-android/app/src/debug/res/mipmap-xhdpi/ic_launcher_foreground.pngbin0 -> 18016 bytes
-rw-r--r--mobile/android/focus-android/app/src/debug/res/mipmap-xxhdpi/ic_launcher.pngbin0 -> 21584 bytes
-rw-r--r--mobile/android/focus-android/app/src/debug/res/mipmap-xxhdpi/ic_launcher_foreground.pngbin0 -> 25726 bytes
-rw-r--r--mobile/android/focus-android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.pngbin0 -> 24098 bytes
-rw-r--r--mobile/android/focus-android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_foreground.pngbin0 -> 29236 bytes
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/ic_launcher-playstore.pngbin0 -> 115595 bytes
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/java/org/mozilla/focus/utils/AdjustHelper.java14
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/drawable-land/dark_background.xml29
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/drawable-v24/ic_launcher_foreground.xml262
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/drawable-v24/icon_foreground.xml253
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/drawable/dark_background.xml29
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/drawable/ic_launcher_background.xml78
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/drawable/onboarding_logo.xml263
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/drawable/wordmark2.xml272
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/mipmap-anydpi-v26/ic_launcher.xml9
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/mipmap-anydpi-v26/ic_launcher_round.xml9
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/mipmap-hdpi/ic_launcher.pngbin0 -> 5962 bytes
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/mipmap-hdpi/ic_launcher_round.pngbin0 -> 9028 bytes
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/mipmap-mdpi/ic_launcher.pngbin0 -> 3309 bytes
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/mipmap-mdpi/ic_launcher_round.pngbin0 -> 4965 bytes
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/mipmap-xhdpi/ic_launcher.pngbin0 -> 8920 bytes
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/mipmap-xhdpi/ic_launcher_round.pngbin0 -> 13502 bytes
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxhdpi/ic_launcher.pngbin0 -> 15094 bytes
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxhdpi/ic_launcher_round.pngbin0 -> 22454 bytes
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxxhdpi/ic_launcher.pngbin0 -> 21909 bytes
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxxhdpi/ic_launcher_round.pngbin0 -> 33006 bytes
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/values/app.xml7
-rw-r--r--mobile/android/focus-android/app/src/focusBeta/res/xml-v25/shortcuts.xml31
-rw-r--r--mobile/android/focus-android/app/src/focusDebug/res/xml-v25/shortcuts.xml31
-rw-r--r--mobile/android/focus-android/app/src/focusNightly/res/values/app.xml8
-rw-r--r--mobile/android/focus-android/app/src/focusNightly/res/xml-v25/shortcuts.xml31
-rw-r--r--mobile/android/focus-android/app/src/focusRelease/AndroidManifest.xml24
-rw-r--r--mobile/android/focus-android/app/src/focusRelease/java/org/mozilla/focus/utils/AdjustHelper.java72
-rw-r--r--mobile/android/focus-android/app/src/focusRelease/java/org/mozilla/focus/web/Config.kt10
-rw-r--r--mobile/android/focus-android/app/src/focusRelease/res/xml-v25/shortcuts.xml31
-rw-r--r--mobile/android/focus-android/app/src/klar/res/drawable/background_gradient_dark.xml11
-rw-r--r--mobile/android/focus-android/app/src/klar/res/drawable/wordmark2.xml357
-rw-r--r--mobile/android/focus-android/app/src/klar/res/values/app.xml11
-rw-r--r--mobile/android/focus-android/app/src/klarBeta/java/org/mozilla/focus/utils/AdjustHelper.java14
-rw-r--r--mobile/android/focus-android/app/src/klarBeta/res/drawable/onboarding_logo.xml263
-rw-r--r--mobile/android/focus-android/app/src/klarBeta/res/xml-v25/shortcuts.xml31
-rw-r--r--mobile/android/focus-android/app/src/klarDebug/res/xml-v25/shortcuts.xml31
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/drawable-v24/icon_foreground.xml253
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/drawable/background_gradient_dark.xml11
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/drawable/icon_background.xml18
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/drawable/toolbar_url_background.xml8
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/mipmap-anydpi-v26/ic_launcher.xml8
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/mipmap-anydpi-v26/ic_launcher_round.xml8
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/mipmap-hdpi/ic_launcher.pngbin0 -> 4230 bytes
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/mipmap-hdpi/ic_launcher_round.pngbin0 -> 6819 bytes
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/mipmap-mdpi/ic_launcher.pngbin0 -> 2521 bytes
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/mipmap-mdpi/ic_launcher_round.pngbin0 -> 3997 bytes
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/mipmap-xhdpi/ic_launcher.pngbin0 -> 6134 bytes
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/mipmap-xhdpi/ic_launcher_round.pngbin0 -> 10083 bytes
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/mipmap-xxhdpi/ic_launcher.pngbin0 -> 10218 bytes
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/mipmap-xxhdpi/ic_launcher_round.pngbin0 -> 16745 bytes
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/mipmap-xxxhdpi/ic_launcher.pngbin0 -> 15031 bytes
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/mipmap-xxxhdpi/ic_launcher_round.pngbin0 -> 24870 bytes
-rw-r--r--mobile/android/focus-android/app/src/klarNightly/res/xml-v25/shortcuts.xml31
-rw-r--r--mobile/android/focus-android/app/src/klarRelease/java/org/mozilla/focus/utils/AdjustHelper.java14
-rw-r--r--mobile/android/focus-android/app/src/klarRelease/java/org/mozilla/focus/web/Config.kt10
-rw-r--r--mobile/android/focus-android/app/src/klarRelease/res/xml-v25/shortcuts.xml31
-rw-r--r--mobile/android/focus-android/app/src/main/AndroidManifest.xml229
-rw-r--r--mobile/android/focus-android/app/src/main/assets/error_style.css172
-rw-r--r--mobile/android/focus-android/app/src/main/assets/style.css43
-rw-r--r--mobile/android/focus-android/app/src/main/ic_launcher-playstore.pngbin0 -> 99479 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/Components.kt321
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/FocusApplication.kt238
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/CrashListActivity.kt24
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/CustomTabActivity.kt95
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/EraseAndOpenShortcutActivity.kt31
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/EraseShortcutActivity.kt23
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/InstallFirefoxActivity.kt93
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/IntentReceiverActivity.kt72
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/MainActivity.kt473
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/TextActionActivity.kt48
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/animation/TransitionDrawableGroup.kt26
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/appreview/AppReviewStep.kt11
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/appreview/AppReviewUtils.kt151
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteAddFragment.kt120
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteCustomDomainsPreference.kt23
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteDefaultDomainsPreference.kt23
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteDomainFormatter.kt18
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteListFragment.kt349
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteRemoveFragment.kt74
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteSettingsFragment.kt84
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/biometrics/BiometricAuthenticationFragment.kt131
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/biometrics/BiometricAuthenticationFragmentCompose.kt114
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/biometrics/LockObserver.kt59
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/BlockedTrackersMiddleware.kt55
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/LocalizedContent.kt106
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/BrowserMenuController.kt190
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/BrowserToolbarIntegration.kt501
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/FindInPageIntegration.kt53
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/FullScreenIntegration.kt133
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/NavigationButtonsIntegration.kt123
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cfr/CfrMiddleware.kt123
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/components/EngineProvider.kt59
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/contextmenu/ContextMenuCandidates.kt87
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebanner/CookieBannerFragment.kt66
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebanner/CookieBannerOption.kt28
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebanner/CookieBannerRejectAllPreference.kt20
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerExceptionDetailsSwitch.kt32
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerDetailsPanel.kt181
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerItem.kt158
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerMiddleware.kt230
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerStatus.kt32
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerStore.kt113
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/DefaultCookieBannerReducerInteractor.kt35
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/customtabs/CustomTabsService.kt15
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/downloads/DownloadService.kt17
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/AppContentInterceptor.kt111
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/ClientWrapper.kt29
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/EngineSharedPreferencesListener.kt95
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/SanityCheckMiddleware.kt36
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/exceptions/ExceptionsListFragment.kt323
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/exceptions/ExceptionsRemoveFragment.kt61
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/experiments/NimbusSetup.kt116
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Activity.kt41
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/AndroidViewModel.kt12
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/BrowserStore.kt21
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/BrowserToolbar.kt86
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/ContentState.kt16
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Context.kt60
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Fragment.kt47
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/PreferenceFragmentCompat.kt16
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/SessionState.kt25
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/String.kt75
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Uri.kt69
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/firstrun/FirstrunCardView.kt38
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/firstrun/FirstrunPagerAdapter.kt103
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/AddToHomescreenDialogFragment.kt145
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/BaseFragment.kt57
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/BrowserFragment.kt1072
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/CrashReporterFragment.kt40
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/FirstrunFragment.kt150
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/UrlInputFragment.kt632
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/about/AboutFragment.kt209
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/about/SecretSettingsUnlocker.kt59
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingController.kt100
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingFirstFragment.kt62
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingFirstScreenCompose.kt165
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingInteractor.kt34
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingSecondFragment.kt88
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingSecondScreenCompose.kt194
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingStep.kt12
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingStorage.kt49
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/input/InputToolbarIntegration.kt186
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/LocaleManager.kt80
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/Locales.kt107
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/DefaultLanguageScreenInteractor.kt17
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/Language.kt15
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageFragment.kt115
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageListItem.kt16
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageMiddleware.kt69
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageScreenStore.kt70
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageStorage.kt90
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LocaleDescriptor.kt125
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LocaleFragmentCompose.kt175
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/media/MediaSessionService.kt20
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/ToolbarMenu.kt40
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/browser/CustomTabMenu.kt160
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/browser/DefaultBrowserMenu.kt193
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/home/HomeMenu.kt35
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/home/HomeMenuItem.kt10
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/navigation/MainActivityNavigation.kt315
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/navigation/Navigator.kt56
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/navigation/StoreLink.kt50
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/AppAdapter.kt114
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/AppViewHolder.kt45
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/InstallBannerViewHolder.kt39
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/OpenWithFragment.kt145
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/perf/Performance.kt52
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/ManualAddSearchEnginePreference.kt126
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/MultiselectSearchEngineListPreference.kt66
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/RadioSearchEngineListPreference.kt64
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchEngineListPreference.kt114
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchEnginePreference.kt48
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchFilterMiddleware.kt37
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchMigration.kt71
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/SearchSuggestionsPreferences.kt44
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/SearchSuggestionsViewModel.kt116
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/ui/SearchOverlay.kt121
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/ui/SearchSuggestionsFragment.kt127
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/ui/SearchSuggestionsPreference.kt31
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/ExternalIntentNavigation.kt125
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/PromoteSearchWidgetDialogCompose.kt201
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/SearchWidgetProvider.kt73
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/SearchWidgetUtils.kt73
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/VoiceSearchActivity.kt32
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/IntentProcessor.kt203
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/PrivateNotificationFeature.kt49
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/SessionNotificationService.kt240
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/VisibilityLifeCycleCallback.kt81
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/ui/TabViewHolder.kt51
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/ui/TabsAdapter.kt40
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/ui/TabsPopup.kt78
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/AboutLibrariesFragment.kt27
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/BaseComposeFragment.kt130
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/BaseSettingsFragment.kt35
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/BaseSettingsLikeFragment.kt40
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/GeneralSettingsFragment.kt141
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/HttpsOnlyModePreference.kt35
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/InstalledSearchEnginesSettingsFragment.kt138
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/LearnMoreSwitchPreference.kt58
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/ManualAddSearchEngineSettingsFragment.kt262
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/MozillaSettingsFragment.kt97
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/RadioButtonPreference.kt191
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/RemoveSearchEnginesSettingsFragment.kt77
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/SafeBrowsingSwitchPreference.kt19
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/SearchSettingsFragment.kt70
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/SettingsFragment.kt50
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/StatePreference.kt47
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/advanced/AdvancedSettingsFragment.kt80
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/advanced/SecretSettingsFragment.kt53
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/advanced/SharedPreferenceUpdater.kt24
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/SitePermissionOption.kt44
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/SitePermissionsFragment.kt63
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/DefaultSitePermissionOptionsScreenInteractor.kt22
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/HardwarePermissionCheckFeature.kt20
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermission.kt20
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionListItem.kt11
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsFragment.kt141
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsFragmentCompose.kt280
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsScreenStore.kt70
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsStorage.kt215
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsStorageMiddleware.kt43
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/ConnectionDetailsPanel.kt82
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/PreferenceSwitch.kt68
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/PreferenceToolTipCompose.kt137
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/PrivacySecuritySettingsFragment.kt254
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/TrackingProtectionPanel.kt215
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesAdapter.kt67
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesFragment.kt158
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesListItem.kt16
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesRecyclerView.kt21
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesViewHolder.kt74
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesViewModel.kt65
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/shortcut/HomeScreen.kt122
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/shortcut/IconGenerator.kt135
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppAction.kt124
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppReducer.kt311
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppState.kt124
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppStore.kt14
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/ActivationPing.kt84
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/BrowsersCache.kt41
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/FactsProcessor.kt82
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/FenixProductDetector.kt49
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/GleanMetricsService.kt243
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/MetricsService.kt18
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/ProfilerMarkerFactProcessor.kt85
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/TelemetryMiddleware.kt148
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/AppStartReasonProvider.kt99
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/DefaultActivityLifecycleCallbacks.kt25
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupActivityLog.kt106
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupPathProvider.kt98
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupStateProvider.kt137
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupTypeTelemetry.kt110
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/theme/Theme.kt14
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/DefaultTopSitesStorage.kt64
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/DefaultTopSitesView.kt22
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/RenameTopSiteDialog.kt47
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/TopSites.kt166
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/TopSitesOverlay.kt112
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/dialog/FocusDialog.kt209
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/menu/CustomDropdownMenu.kt46
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/menu/MenuItem.kt16
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusColors.kt49
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusDimensions.kt15
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusTheme.kt138
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusTypography.kt136
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/AppConstants.kt33
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/ClickableSubstringLink.kt112
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/Features.kt15
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/FocusSnackbar.kt146
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/FocusSnackbarDelegate.kt37
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/HtmlLoader.kt121
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/IntentUtils.kt82
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/OneShotOnPreDrawListener.kt27
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/SearchUtils.kt19
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/Settings.kt507
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/SupportUtils.kt133
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/ViewUtils.kt103
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/AboutPreference.kt24
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/CookiesPreference.kt46
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/DefaultBrowserPreference.kt90
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/LocaleListPreference.java0
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/MozillaPreference.kt21
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/ResizableKeyboardCoordinatorLayout.kt34
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/ResizableKeyboardLinearLayout.kt29
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/ResizableKeyboardViewDelegate.kt119
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/SwitchWithDescription.kt72
-rw-r--r--mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/TelemetrySwitchPreference.kt44
-rw-r--r--mobile/android/focus-android/app/src/main/res/anim/erase_animation.xml20
-rw-r--r--mobile/android/focus-android/app/src/main/res/anim/fab_reveal.xml16
-rw-r--r--mobile/android/focus-android/app/src/main/res/anim/fade_in.xml9
-rw-r--r--mobile/android/focus-android/app/src/main/res/anim/fade_out.xml9
-rw-r--r--mobile/android/focus-android/app/src/main/res/color/preference_title_text.xml9
-rw-r--r--mobile/android/focus-android/app/src/main/res/color/selected_search_engine_state.xml9
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-hdpi/focus_search_widget.pngbin0 -> 17294 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-hdpi/focus_search_widget_promote_dialog.pngbin0 -> 29857 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-hdpi/focus_snackbar_background.xml9
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img1.pngbin0 -> 49768 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img2.pngbin0 -> 24031 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img3.pngbin0 -> 15524 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img4.pngbin0 -> 23796 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-land-night/home_background.xml31
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-land/dark_background.xml46
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-land/home_background.xml31
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-night-hdpi/focus_search_widget.pngbin0 -> 16899 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-night-hdpi/focus_search_widget_promote_dialog.pngbin0 -> 29279 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-night/home_background.xml31
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-nodpi/ic_homescreen_shape.pngbin0 -> 1283 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-v24/ic_splash_screen.xml213
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img1.pngbin0 -> 32761 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img2.pngbin0 -> 17156 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img3.pngbin0 -> 11388 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img4.pngbin0 -> 31166 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img1.pngbin0 -> 106485 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img2.pngbin0 -> 49218 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img3.pngbin0 -> 30170 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img4.pngbin0 -> 50377 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/background_gradient.xml11
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/background_install_banner.xml8
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/background_list_item_current_session.xml8
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/background_list_item_session.xml8
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/background_open_in_item.xml12
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/background_search_suggestion_section.xml12
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/background_snackbar.xml19
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/context_menu_navigation_view_background.xml9
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/dark_background.xml43
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/dialog_background.xml7
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/dialog_warning_background.xml10
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/find_in_page_background.xml18
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/firstrun_button_background.xml15
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/foreground_list_item_erase.xml7
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/highlight_dot.xml10
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/home_background.xml32
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_arrowhead_down.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_arrowhead_up.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_autoplay_enabled.xml17
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_back_button.xml14
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_camera_enabled.xml14
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_check.xml14
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_cookies_disable.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_developer.xml12
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_download.xml16
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_error_session_crashed.xml387
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_favorite.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_fingerprint.xml14
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_firefox.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_info.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_internet.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_language.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_launcher_background.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_launcher_foreground.xml213
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_link.xml22
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_menu.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_mozilla.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_notification.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_reorder.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_shortcut_erase.xml16
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_splash_screen.pngbin0 -> 5499 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/ic_tab_new.xml14
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/indicator_onboarding.xml12
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/indicator_onboarding_default.xml15
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/indicator_onboarding_selected.xml15
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/menu_item_dark_background.xml8
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/mozac_ic_broken_lock.xml19
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/onboarding_logo.xml214
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/onboarding_second_screen_icon.pngbin0 -> 39339 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/photon_progressbar.xml21
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/preference_foreground_disabled.xml7
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/preference_multiselect_search_engine_foreground.xml10
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/scrollbar_thumb.xml8
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/tab_number_border.xml16
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/toolbar_url_background.xml8
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/top_rounded_corners_bottom_sheet_background.xml11
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/urlbar_background.xml7
-rw-r--r--mobile/android/focus-android/app/src/main/res/drawable/wordmark2.xml232
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis.xml81
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_black.ttfbin0 -> 74628 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_blackitalic.ttfbin0 -> 76524 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_bold.ttfbin0 -> 75660 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_bolditalic.ttfbin0 -> 78120 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_extrabold.ttfbin0 -> 75980 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_extrabolditalic.ttfbin0 -> 78284 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_extralighitalic.ttfbin0 -> 75624 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_extralight.ttfbin0 -> 74496 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_light.ttfbin0 -> 74456 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_lightitalic.ttfbin0 -> 75692 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_medium.ttfbin0 -> 75476 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_mediumitalic.ttfbin0 -> 77588 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_regular.ttfbin0 -> 76504 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_regularitalic.ttfbin0 -> 76748 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_semibold.ttfbin0 -> 76016 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_semibolditalic.ttfbin0 -> 78180 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_thin.ttfbin0 -> 73292 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/font/metropolis_thinitalic.ttfbin0 -> 74688 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/active_study_item.xml40
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/activity_customtab.xml12
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/activity_info.xml19
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/activity_main.xml30
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/connection_details.xml89
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/cookie_banner_reducer_details.xml97
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/cookies_preference.xml55
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/custom_tab_menu_item.xml21
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/dialog_add_to_homescreen2.xml113
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/dialog_full_screen_notification.xml38
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/dialog_tracking_protection_sheet.xml152
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/firstrun_page.xml98
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/focus_preference.xml79
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/focus_preference_category_no_title.xml8
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/focus_preference_compose_layout.xml11
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/focus_preference_left_checkbox.xml49
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/focus_preference_new_tab.xml73
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/focus_preference_no_icon.xml44
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/focus_snackbar.xml65
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/fragment_about.xml18
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/fragment_about_libraries.xml18
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/fragment_autocomplete_add_domain.xml44
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/fragment_autocomplete_customdomains.xml12
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/fragment_browser.xml93
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/fragment_crash_reporter.xml85
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/fragment_exceptions_domains.xml38
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/fragment_firstrun.xml49
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/fragment_info.xml19
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/fragment_open_with.xml24
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/fragment_search_suggestions.xml126
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/fragment_settings.xml12
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/fragment_studies.xml57
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/fragment_urlinput.xml117
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/item_add_custom_domain.xml15
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/item_app.xml40
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/item_custom_domain.xml41
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/item_indicator_menu_button.xml25
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/item_install_banner.xml41
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/item_session.xml47
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/menu_item.xml40
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/menu_navigation.xml38
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/popup_tabs.xml27
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/preference_default_browser.xml14
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/preference_manual_add_search_engine.xml56
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/preference_radio_button.xml57
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/preference_screen_header_layout.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/preference_search_engine_chooser.xml16
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/preference_section_header_layout.xml17
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/preference_switch_learn_more.xml64
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/search_engine_checkbox_button.xml17
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/search_engine_radio_button.xml18
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/studies_section_item.xml27
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/switch_with_description.xml54
-rw-r--r--mobile/android/focus-android/app/src/main/res/layout/toolbar.xml9
-rw-r--r--mobile/android/focus-android/app/src/main/res/menu/menu_autocomplete_add.xml10
-rw-r--r--mobile/android/focus-android/app/src/main/res/menu/menu_autocomplete_list.xml10
-rw-r--r--mobile/android/focus-android/app/src/main/res/menu/menu_autocomplete_remove.xml12
-rw-r--r--mobile/android/focus-android/app/src/main/res/menu/menu_exceptions_list.xml10
-rw-r--r--mobile/android/focus-android/app/src/main/res/menu/menu_remove_search_engines.xml12
-rw-r--r--mobile/android/focus-android/app/src/main/res/menu/menu_search_engine_manual_add.xml19
-rw-r--r--mobile/android/focus-android/app/src/main/res/menu/menu_search_engines.xml15
-rw-r--r--mobile/android/focus-android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml9
-rw-r--r--mobile/android/focus-android/app/src/main/res/mipmap-hdpi/ic_launcher.pngbin0 -> 4076 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/mipmap-hdpi/ic_launcher_round.pngbin0 -> 6336 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/mipmap-mdpi/ic_launcher.pngbin0 -> 2137 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/mipmap-mdpi/ic_launcher_round.pngbin0 -> 3400 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/mipmap-xhdpi/ic_launcher.pngbin0 -> 5622 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.pngbin0 -> 8345 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/mipmap-xxhdpi/ic_launcher.pngbin0 -> 9985 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.pngbin0 -> 14316 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.pngbin0 -> 14478 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.pngbin0 -> 20937 bytes
-rw-r--r--mobile/android/focus-android/app/src/main/res/raw/about.html55
-rw-r--r--mobile/android/focus-android/app/src/main/res/raw/gpl.html713
-rw-r--r--mobile/android/focus-android/app/src/main/res/raw/initial_experiments.json3
-rw-r--r--mobile/android/focus-android/app/src/main/res/raw/licenses.html948
-rw-r--r--mobile/android/focus-android/app/src/main/res/raw/rights.html56
-rw-r--r--mobile/android/focus-android/app/src/main/res/transition/firstrun_exit.xml7
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ace/strings.xml784
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-af/strings.xml246
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-am/strings.xml1096
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-an/strings.xml311
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-anp/strings.xml730
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ar/strings.xml839
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ast/strings.xml490
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ay/strings.xml476
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-az/strings.xml403
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-be/strings.xml1086
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-bg/strings.xml1103
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-bn/strings.xml403
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-bo/strings.xml328
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-bs/strings.xml1102
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ca/strings.xml1095
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-cak/strings.xml1030
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-co/strings.xml1125
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-cs/strings.xml1113
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-cy/strings.xml1122
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-da/strings.xml1122
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-de/strings.xml1120
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-dsb/strings.xml1119
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-el/strings.xml1128
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-en-rCA/strings.xml1118
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-en-rGB/strings.xml1090
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-eo/strings.xml1118
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-es-rAR/strings.xml1121
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-es-rCL/strings.xml1117
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-es-rES/strings.xml1117
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-es-rMX/strings.xml1111
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-et/strings.xml881
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-eu/strings.xml1117
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-fa/strings.xml857
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-fi/strings.xml1119
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-fr/strings.xml1120
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-fur/strings.xml1080
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-fy-rNL/strings.xml1121
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ga-rIE/strings.xml257
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-gl/strings.xml1098
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-gu-rIN/strings.xml403
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-hi-rIN/strings.xml749
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-hr/strings.xml1035
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-hsb/strings.xml1119
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-hu/strings.xml1121
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-hus/strings.xml361
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-hy-rAM/strings.xml634
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ia/strings.xml1123
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-in/strings.xml1108
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-is/strings.xml1091
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-it/strings.xml1122
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-iw/strings.xml1093
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ixl/strings.xml1103
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ja/strings.xml1120
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-jv/strings.xml152
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ka/strings.xml1116
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-kaa/strings.xml795
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-kab/strings.xml1123
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-kk/strings.xml1117
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ko/strings.xml1117
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-kw/strings.xml1097
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-lo/strings.xml1121
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-lt/strings.xml841
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-meh/strings.xml1105
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-mix/strings.xml1072
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-mr/strings.xml680
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ms/strings.xml403
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-my/strings.xml634
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-nb-rNO/strings.xml1117
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ne-rNP/strings.xml574
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-night/colors.xml146
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-nl/strings.xml1121
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-nn-rNO/strings.xml1127
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-nv/strings.xml32
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-oc/strings.xml1114
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-pa-rIN/strings.xml1118
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-pai/strings.xml354
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-pl/strings.xml1119
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ppl/strings.xml1072
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-pt-rBR/strings.xml1122
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-quc/strings.xml709
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-quy/strings.xml302
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ro/strings.xml661
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ru/strings.xml1122
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-si/strings.xml1078
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-sk/strings.xml1121
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-skr/strings.xml1107
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-sl/strings.xml1123
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-sn/strings.xml403
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-sq/strings.xml1127
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-sr/strings.xml1114
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-su/strings.xml1115
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-sv-rSE/strings.xml1121
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-sw480dp/dimens.xml9
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-sw600dp/dimens.xml9
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ta/strings.xml552
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-te/strings.xml666
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-tg/strings.xml1086
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-th/strings.xml1119
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-tr/strings.xml1127
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-trs/strings.xml1090
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-tsz/strings.xml947
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-tt/strings.xml1103
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-uk/strings.xml1120
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-ur/strings.xml818
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-vi/strings.xml1120
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-wo/strings.xml241
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-yua/strings.xml479
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-zam/strings.xml443
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-zh-rCN/strings.xml1127
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-zh-rHK/strings.xml933
-rw-r--r--mobile/android/focus-android/app/src/main/res/values-zh-rTW/strings.xml1121
-rw-r--r--mobile/android/focus-android/app/src/main/res/values/app.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/values/attrs.xml39
-rw-r--r--mobile/android/focus-android/app/src/main/res/values/colors.xml152
-rw-r--r--mobile/android/focus-android/app/src/main/res/values/configuration.xml14
-rw-r--r--mobile/android/focus-android/app/src/main/res/values/dimens.xml91
-rw-r--r--mobile/android/focus-android/app/src/main/res/values/fonts.xml8
-rw-r--r--mobile/android/focus-android/app/src/main/res/values/ids.xml21
-rw-r--r--mobile/android/focus-android/app/src/main/res/values/preference_keys.xml125
-rw-r--r--mobile/android/focus-android/app/src/main/res/values/static_strings.xml26
-rw-r--r--mobile/android/focus-android/app/src/main/res/values/strings.xml1069
-rw-r--r--mobile/android/focus-android/app/src/main/res/values/strings_references.xml35
-rw-r--r--mobile/android/focus-android/app/src/main/res/values/styles.xml326
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/advanced_settings.xml33
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/autocomplete.xml32
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/cookie_banner_settings.xml13
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/experiments_settings.xml11
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/general_settings.xml42
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/manual_add_search_engine.xml10
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/mozilla_settings.xml44
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/privacy_security_settings.xml159
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/provider_paths.xml9
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/remove_search_engines.xml9
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/search_engine_settings.xml23
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/search_settings.xml25
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/search_widget_info.xml15
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/secret_settings.xml17
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/settings.xml44
-rw-r--r--mobile/android/focus-android/app/src/main/res/xml/site_permissions.xml50
-rw-r--r--mobile/android/focus-android/app/src/nightly/ic_launcher-playstore.pngbin0 -> 71476 bytes
-rw-r--r--mobile/android/focus-android/app/src/nightly/java/org/mozilla/focus/utils/AdjustHelper.java14
-rw-r--r--mobile/android/focus-android/app/src/nightly/java/org/mozilla/focus/web/Config.kt10
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/drawable-land/dark_background.xml28
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/drawable-v24/ic_splash_screen.xml253
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/drawable/dark_background.xml28
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/drawable/ic_launcher_background.xml18
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/drawable/ic_launcher_foreground.xml253
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/drawable/ic_splash_screen.pngbin0 -> 5669 bytes
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/drawable/onboarding_logo.xml248
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/drawable/wordmark2.xml281
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/mipmap-anydpi-v26/ic_launcher.xml8
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/mipmap-hdpi/ic_launcher.pngbin0 -> 4230 bytes
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/mipmap-hdpi/ic_launcher_round.pngbin0 -> 6819 bytes
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/mipmap-mdpi/ic_launcher.pngbin0 -> 2521 bytes
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/mipmap-mdpi/ic_launcher_round.pngbin0 -> 3997 bytes
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/mipmap-xhdpi/ic_launcher.pngbin0 -> 6134 bytes
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/mipmap-xhdpi/ic_launcher_round.pngbin0 -> 10083 bytes
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/mipmap-xxhdpi/ic_launcher.pngbin0 -> 10218 bytes
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/mipmap-xxhdpi/ic_launcher_round.pngbin0 -> 16745 bytes
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher.pngbin0 -> 15031 bytes
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher_round.pngbin0 -> 24870 bytes
-rw-r--r--mobile/android/focus-android/app/src/nightly/res/values-night/colors.xml7
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/BrowserFragmentTest.kt108
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/TestFocusApplication.kt95
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/animation/TransitionDrawableGroupTest.java42
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/biometrics/BiometricAuthenticationFragmentTest.kt70
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/BrowserToolbarIntegrationTest.kt234
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/FindInPageIntegrationTest.kt46
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/FullScreenIntegrationTest.kt374
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/InputToolbarIntegrationTest.kt82
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/cfr/CfrMiddlewareTest.kt127
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/contextmenu/ContextMenuCandidatesTest.kt81
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/experiments/NimbusSetupTest.kt25
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/ext/BrowserToolbarTest.kt80
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/ext/StringTest.kt80
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/ext/UriTest.kt82
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/locale/LocalesTest.kt46
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/menu/BrowserMenuControllerTest.kt162
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/onboarding/OnboardingControllerTest.kt72
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/onboarding/OnboardingStorageTest.kt79
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/searchsuggestions/SearchSuggestionsViewModelTest.kt59
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/searchwidget/ExternalIntentNavigationTest.kt203
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/searchwidget/SearchWidgetProviderTest.kt65
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/settings/SearchEngineValidationTest.kt94
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/shortcut/HomeScreenTest.kt20
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/shortcut/IconGeneratorTest.kt59
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/sitepermissions/SitePermissionOptionsStorageTest.kt342
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/sitepermissions/SitePermissionOptionsStoreTest.kt89
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/sitepermissions/SitePermissionsFragmentTest.kt57
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/GleanMetricsServiceTest.kt42
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/ProfilerMarkerFactProcessorTest.kt96
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupActivityLogTest.kt99
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupPathProviderTest.kt213
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupStateProviderTest.kt417
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupTypeTelemetryTest.kt152
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/topsites/DefaultTopSitesStorageTest.kt136
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/utils/IntentUtilsTest.kt21
-rw-r--r--mobile/android/focus-android/app/src/test/java/org/mozilla/focus/utils/SupportUtilsTest.kt64
-rw-r--r--mobile/android/focus-android/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker2
-rw-r--r--mobile/android/focus-android/app/src/test/resources/robolectric.properties3
-rw-r--r--mobile/android/focus-android/app/tags.yaml175
-rw-r--r--mobile/android/focus-android/automation/taskcluster/androidTest/copy-robo-crash-artifacts.py273
-rw-r--r--mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm-beta.yml36
-rw-r--r--mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm-start-test-robo.yml27
-rw-r--r--mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm-start-test.yml36
-rw-r--r--mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm64-v8a.yml36
-rw-r--r--mobile/android/focus-android/automation/taskcluster/androidTest/flank-x86.yml36
-rw-r--r--mobile/android/focus-android/automation/taskcluster/androidTest/parse-ui-test-fromfile.py97
-rw-r--r--mobile/android/focus-android/automation/taskcluster/androidTest/parse-ui-test.py89
-rwxr-xr-xmobile/android/focus-android/automation/taskcluster/androidTest/robo-test.sh101
-rwxr-xr-xmobile/android/focus-android/automation/taskcluster/androidTest/ui-test.sh147
-rw-r--r--mobile/android/focus-android/build.gradle181
-rw-r--r--mobile/android/focus-android/codecov.yml22
-rw-r--r--mobile/android/focus-android/docs/Adjust-Usage.md66
-rw-r--r--mobile/android/focus-android/docs/Architecture-Decisions.md92
-rw-r--r--mobile/android/focus-android/docs/Battery-Debugging.md37
-rw-r--r--mobile/android/focus-android/docs/Content-blocking.md58
-rw-r--r--mobile/android/focus-android/docs/Crash-Reporting-with-Sentry.md147
-rw-r--r--mobile/android/focus-android/docs/Development-Custom-GeckoView.md90
-rw-r--r--mobile/android/focus-android/docs/Feature-&-Issue-workflow.md54
-rw-r--r--mobile/android/focus-android/docs/GeckoView-(In-Progress).md6
-rw-r--r--mobile/android/focus-android/docs/Home.md40
-rw-r--r--mobile/android/focus-android/docs/Homescreen-Tips.md35
-rw-r--r--mobile/android/focus-android/docs/Multisession-architecture.md19
-rw-r--r--mobile/android/focus-android/docs/Recommended-pre-push-hook.md30
-rw-r--r--mobile/android/focus-android/docs/Release-Process.md58
-rw-r--r--mobile/android/focus-android/docs/Release-tracks.md53
-rw-r--r--mobile/android/focus-android/docs/Removing-strings.md29
-rw-r--r--mobile/android/focus-android/docs/Sprint-Process.md47
-rw-r--r--mobile/android/focus-android/docs/Telemetry.md345
-rw-r--r--mobile/android/focus-android/docs/UI-Test.md54
-rw-r--r--mobile/android/focus-android/docs/index.rst28
-rw-r--r--mobile/android/focus-android/docs/l10n-Screenshot-Generation.md29
-rw-r--r--mobile/android/focus-android/gradle.properties33
-rw-r--r--mobile/android/focus-android/gradle/wrapper/gradle-wrapper.jarbin0 -> 43453 bytes
-rw-r--r--mobile/android/focus-android/gradle/wrapper/gradle-wrapper.properties7
-rwxr-xr-xmobile/android/focus-android/gradlew249
-rw-r--r--mobile/android/focus-android/gradlew.bat92
-rw-r--r--mobile/android/focus-android/l10n.toml118
-rw-r--r--mobile/android/focus-android/plugins/focusdependencies/build.gradle25
-rw-r--r--mobile/android/focus-android/plugins/focusdependencies/settings.gradle19
-rw-r--r--mobile/android/focus-android/plugins/focusdependencies/src/main/java/FocusDependenciesPlugin.kt68
-rw-r--r--mobile/android/focus-android/quality/checkstyle.xml45
-rw-r--r--mobile/android/focus-android/quality/detekt-baseline.xml406
-rw-r--r--mobile/android/focus-android/quality/detekt.yml789
-rw-r--r--mobile/android/focus-android/quality/license.template3
-rw-r--r--mobile/android/focus-android/quality/pmd-rules.xml42
-rwxr-xr-xmobile/android/focus-android/quality/pre-push-recommended.sh25
-rw-r--r--mobile/android/focus-android/quality/spotbugs-exclude.xml29
-rw-r--r--mobile/android/focus-android/settings.gradle136
-rwxr-xr-xmobile/android/focus-android/tools/data_renewal_generate.py189
-rwxr-xr-xmobile/android/focus-android/tools/data_renewal_request.py55
-rw-r--r--mobile/android/focus-android/tools/docker/Dockerfile78
-rw-r--r--mobile/android/focus-android/tools/docker/licenses/android-sdk-license2
-rw-r--r--mobile/android/focus-android/tools/docker/licenses/android-sdk-preview-license2
-rw-r--r--mobile/android/focus-android/tools/gradle/versionCode.gradle45
-rwxr-xr-xmobile/android/focus-android/tools/update-glean-tags.py58
852 files changed, 165284 insertions, 0 deletions
diff --git a/mobile/android/focus-android/.buildconfig.yml b/mobile/android/focus-android/.buildconfig.yml
new file mode 100644
index 0000000000..6b6e2c7fad
--- /dev/null
+++ b/mobile/android/focus-android/.buildconfig.yml
@@ -0,0 +1,165 @@
+projects:
+ app:
+ upstream_dependencies:
+ - browser-domains
+ - browser-engine-gecko
+ - browser-errorpages
+ - browser-icons
+ - browser-menu
+ - browser-menu2
+ - browser-session-storage
+ - browser-state
+ - browser-storage-sync
+ - browser-tabstray
+ - browser-thumbnails
+ - browser-toolbar
+ - compose-awesomebar
+ - compose-cfr
+ - concept-awesomebar
+ - concept-base
+ - concept-engine
+ - concept-fetch
+ - concept-menu
+ - concept-storage
+ - concept-sync
+ - concept-tabstray
+ - concept-toolbar
+ - feature-app-links
+ - feature-awesomebar
+ - feature-contextmenu
+ - feature-customtabs
+ - feature-downloads
+ - feature-findinpage
+ - feature-intent
+ - feature-media
+ - feature-prompts
+ - feature-search
+ - feature-session
+ - feature-sitepermissions
+ - feature-tabs
+ - feature-toolbar
+ - feature-top-sites
+ - feature-webcompat
+ - feature-webcompat-reporter
+ - lib-auth
+ - lib-crash
+ - lib-crash-sentry
+ - lib-fetch-okhttp
+ - lib-publicsuffixlist
+ - lib-state
+ - service-digitalassetlinks
+ - service-glean
+ - service-location
+ - service-nimbus
+ - support-base
+ - support-images
+ - support-ktx
+ - support-license
+ - support-locale
+ - support-remotesettings
+ - support-rusthttp
+ - support-rustlog
+ - support-test
+ - support-test-libstate
+ - support-utils
+ - support-webextensions
+ - tooling-lint
+ - ui-autocomplete
+ - ui-colors
+ - ui-icons
+ - ui-tabcounter
+ - ui-widgets
+variants:
+- apks:
+ - abi: arm64-v8a
+ fileName: app-focus-arm64-v8a-debug.apk
+ - abi: armeabi-v7a
+ fileName: app-focus-armeabi-v7a-debug.apk
+ - abi: x86
+ fileName: app-focus-x86-debug.apk
+ - abi: x86_64
+ fileName: app-focus-x86_64-debug.apk
+ build_type: debug
+ name: focusDebug
+- apks:
+ - abi: arm64-v8a
+ fileName: app-klar-arm64-v8a-debug.apk
+ - abi: armeabi-v7a
+ fileName: app-klar-armeabi-v7a-debug.apk
+ - abi: x86
+ fileName: app-klar-x86-debug.apk
+ - abi: x86_64
+ fileName: app-klar-x86_64-debug.apk
+ build_type: debug
+ name: klarDebug
+- apks:
+ - abi: arm64-v8a
+ fileName: app-focus-arm64-v8a-release-unsigned.apk
+ - abi: armeabi-v7a
+ fileName: app-focus-armeabi-v7a-release-unsigned.apk
+ - abi: x86
+ fileName: app-focus-x86-release-unsigned.apk
+ - abi: x86_64
+ fileName: app-focus-x86_64-release-unsigned.apk
+ build_type: release
+ name: focusRelease
+- apks:
+ - abi: arm64-v8a
+ fileName: app-klar-arm64-v8a-release-unsigned.apk
+ - abi: armeabi-v7a
+ fileName: app-klar-armeabi-v7a-release-unsigned.apk
+ - abi: x86
+ fileName: app-klar-x86-release-unsigned.apk
+ - abi: x86_64
+ fileName: app-klar-x86_64-release-unsigned.apk
+ build_type: release
+ name: klarRelease
+- apks:
+ - abi: arm64-v8a
+ fileName: app-focus-arm64-v8a-beta-unsigned.apk
+ - abi: armeabi-v7a
+ fileName: app-focus-armeabi-v7a-beta-unsigned.apk
+ - abi: x86
+ fileName: app-focus-x86-beta-unsigned.apk
+ - abi: x86_64
+ fileName: app-focus-x86_64-beta-unsigned.apk
+ build_type: beta
+ name: focusBeta
+- apks:
+ - abi: arm64-v8a
+ fileName: app-klar-arm64-v8a-beta-unsigned.apk
+ - abi: armeabi-v7a
+ fileName: app-klar-armeabi-v7a-beta-unsigned.apk
+ - abi: x86
+ fileName: app-klar-x86-beta-unsigned.apk
+ - abi: x86_64
+ fileName: app-klar-x86_64-beta-unsigned.apk
+ build_type: beta
+ name: klarBeta
+- apks:
+ - abi: arm64-v8a
+ fileName: app-focus-arm64-v8a-nightly-unsigned.apk
+ - abi: armeabi-v7a
+ fileName: app-focus-armeabi-v7a-nightly-unsigned.apk
+ - abi: x86
+ fileName: app-focus-x86-nightly-unsigned.apk
+ - abi: x86_64
+ fileName: app-focus-x86_64-nightly-unsigned.apk
+ build_type: nightly
+ name: focusNightly
+- apks:
+ - abi: arm64-v8a
+ fileName: app-klar-arm64-v8a-nightly-unsigned.apk
+ - abi: armeabi-v7a
+ fileName: app-klar-armeabi-v7a-nightly-unsigned.apk
+ - abi: x86
+ fileName: app-klar-x86-nightly-unsigned.apk
+ - abi: x86_64
+ fileName: app-klar-x86_64-nightly-unsigned.apk
+ build_type: nightly
+ name: klarNightly
+- apks:
+ - abi: noarch
+ fileName: app-debug-androidTest.apk
+ build_type: androidTest
+ name: androidTest
diff --git a/mobile/android/focus-android/.editorconfig b/mobile/android/focus-android/.editorconfig
new file mode 100644
index 0000000000..3232ddd4a3
--- /dev/null
+++ b/mobile/android/focus-android/.editorconfig
@@ -0,0 +1,5 @@
+[*.{kt,kts}]
+ij_kotlin_allow_trailing_comma_on_call_site=true
+ij_kotlin_allow_trailing_comma=true
+
+ktlint_standard_filename = disabled \ No newline at end of file
diff --git a/mobile/android/focus-android/CODEOWNERS b/mobile/android/focus-android/CODEOWNERS
new file mode 100644
index 0000000000..cedf4a9cf8
--- /dev/null
+++ b/mobile/android/focus-android/CODEOWNERS
@@ -0,0 +1,5 @@
+# These owners will be the default owners for everything in
+# the repo. Unless a later match takes precedence,
+# @global-owner1 and @global-owner2 will be requested for
+# review when someone opens a pull request.
+* @mozilla-mobile/focus-codeowners
diff --git a/mobile/android/focus-android/CONTRIBUTING.md b/mobile/android/focus-android/CONTRIBUTING.md
new file mode 100644
index 0000000000..597b7bc1d7
--- /dev/null
+++ b/mobile/android/focus-android/CONTRIBUTING.md
@@ -0,0 +1,4 @@
+# Contributing to Focus for Android
+
+Please see our guidelines in our shared-docs repo:
+https://github.com/mozilla-mobile/shared-docs/blob/main/android/CONTRIBUTING.md
diff --git a/mobile/android/focus-android/README.md b/mobile/android/focus-android/README.md
new file mode 100644
index 0000000000..c3ca39d2fe
--- /dev/null
+++ b/mobile/android/focus-android/README.md
@@ -0,0 +1,119 @@
+# Firefox Focus for Android
+
+_Browse like no one’s watching. The new Firefox Focus automatically blocks a wide range of online trackers — from the moment you launch it to the second you leave it. Easily erase your history, passwords and cookies, so you won’t get followed by things like unwanted ads._
+
+Firefox Focus provides automatic ad blocking and tracking protection on an easy-to-use private browser.
+
+<a href="https://play.google.com/store/apps/details?id=org.mozilla.focus" target="_blank"><img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" alt="Get it on Google Play" height="90"/></a>
+
+* [Google Play: Firefox Focus (Global)](https://play.google.com/store/apps/details?id=org.mozilla.focus)
+* [Google Play: Firefox Klar (Germany, Austria & Switzerland)](https://play.google.com/store/apps/details?id=org.mozilla.klar)
+* [Download APKs](https://github.com/mozilla-mobile/focus-android/releases)
+
+
+
+## Getting Involved
+
+
+We encourage you to participate in this open source project. We love Pull Requests, Bug Reports, ideas, (security) code reviews or any other kind of positive contribution.
+
+Before you attempt to make a contribution please read the [Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/).
+
+* [Guide to Contributing](https://github.com/mozilla-mobile/shared-docs/blob/main/android/CONTRIBUTING.md) (**New contributors start here!**)
+
+* [View current Issues](https://github.com/mozilla-mobile/focus-android/issues), [view current Pull Requests](https://github.com/mozilla-mobile/focus-android/pulls), or [file a security issue][sec issue].
+
+* Opt-in to our Mailing List [firefox-focus-public@](https://mail.mozilla.org/listinfo/firefox-focus-public) to keep up to date.
+
+* [View the Wiki](https://github.com/mozilla-mobile/focus-android/wiki).
+
+**Beginners!** - Watch out for [Issues with the "Good First Issue" label](https://github.com/mozilla-mobile/focus-android/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). These are easy bugs that have been left for first timers to have a go, get involved and make a positive contribution to the project!
+
+## Build Instructions
+
+
+1. Clone or Download the repository:
+
+ ```shell
+ git clone https://github.com/mozilla-mobile/focus-android
+ ```
+
+2. Import the project into Android Studio **or** build on the command line:
+
+ ```shell
+ ./gradlew clean app:assembleFocusDebug
+ ```
+
+3. Make sure to select the correct build variant in Android Studio:
+**focusArmDebug** for ARM
+**focusX86Debug** for X86
+**focusAarch64Debug** for ARM64
+
+## local.properties helpers
+You can speed up or enhance local development by setting a few helper flags available in `local.properties` which will be made easily available as gradle properties.
+
+### Automatically sign release builds
+To sign your release builds with your debug key automatically, add the following to `<proj-root>/local.properties`:
+
+```sh
+autosignReleaseWithDebugKey
+```
+
+With this line, release build variants will automatically be signed with your debug key (like debug builds), allowing them to be built and installed directly through Android Studio or the command line.
+
+This is helpful when you're building release variants frequently, for example to test feature flags and or do performance analyses.
+
+### Building debuggable release variants
+
+Nightly, Beta and Release variants are getting published to Google Play and therefore are not debuggable. To locally create debuggable builds of those variants, add the following to `<proj-root>/local.properties`:
+
+```sh
+debuggable
+```
+
+### Auto-publication workflow for application-services and glean
+If you're making changes to these projects and want to test them in Focus, auto-publication workflow is the fastest, most reliable
+way to do that.
+
+In `local.properties`, specify a relative path to your local `glean` and/or `application-services` projects. E.g.:
+- `autoPublish.glean.dir=../glean`
+- `autoPublish.application-services.dir=../application-services`
+
+Once these flags are set, your Focus builds will include any local modifications present in these projects.
+
+See a [demo of auto-publication workflow in action](https://www.youtube.com/watch?v=qZKlBzVvQGc).
+
+## Pre-push hooks
+To reduce review turn-around time, we'd like all pushes to run tests locally. We'd
+recommend you use our provided pre-push hook in `quality/pre-push-recommended.sh`.
+Using this hook will guarantee your hook gets updated as the repository changes.
+This hook tries to run as much as possible without taking too much time.
+
+To add it, run this command from the project root:
+```sh
+ln -s ../../quality/pre-push-recommended.sh .git/hooks/pre-push
+```
+
+To push without running the pre-push hook (e.g. doc updates):
+```sh
+git push <remote> --no-verify
+```
+
+## Test Channel on Google PlayStore
+To get Focus Nightly on your device, follow these steps:
+
+1) Visit https://groups.google.com/g/firefox-focus-pre-release and join the Google Group
+2) After you have joined the group opt-in to receive Nightly builds, again with the same Google account: https://play.google.com/apps/testing/org.mozilla.focus.nightly
+3) Download Firefox Focus (Nightly) from Google Play: https://play.google.com/store/apps/details?id=org.mozilla.focus.nightly
+
+Make sure you use the same Google Account for both steps.
+
+
+## License
+
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/
+
+[sec issue]: https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&bug_file_loc=http%3A%2F%2F&bug_ignored=0&bug_severity=normal&bug_status=NEW&cf_fx_iteration=---&cf_fx_points=---&component=Security%3A%20Android&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&defined_groups=1&flag_type-4=X&flag_type-607=X&flag_type-791=X&flag_type-800=X&flag_type-803=X&form_name=enter_bug&groups=firefox-core-security&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=Unspecified&priority=--&product=Focus&rep_platform=Unspecified&target_milestone=---&version=---
diff --git a/mobile/android/focus-android/Screengrabfile b/mobile/android/focus-android/Screengrabfile
new file mode 100644
index 0000000000..fd85f68dba
--- /dev/null
+++ b/mobile/android/focus-android/Screengrabfile
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This is the template for our Screengrabfile used in automation.
+# tools/taskcluster/generate_screengrab_config.py will read this
+# file and generate the final configuration that we use inside
+# a taskcluster task.
+
+app_package_name 'org.mozilla.focus.debug'
+use_tests_in_packages ['org.mozilla.focus.screenshots']
+
+app_apk_path('~/focus-android/focus-android/app/build/outputs/apk/focus/debug/app-focus-x86-debug.apk')
+tests_apk_path('/focus-android/focus-android/app/build/outputs/apk/androidTest/focus/debug/app-focus-debug-androidTest.apk')
+
+locales(['en-US', 'fr-FR', 'it-IT', 'de-DE', 'ja', 'ru', 'zh-CN', 'zh-TW', 'ko'])
+
+# Clear all previous screenshots locally. Technically not needed in automation.
+# But it's easier to debug this on a local device if there are no old screenshots
+# hanging around.
+clear_previous_screenshots true
+reinstall_app true \ No newline at end of file
diff --git a/mobile/android/focus-android/app/.experimenter.yaml b/mobile/android/focus-android/app/.experimenter.yaml
new file mode 100644
index 0000000000..fa6a1d67f4
--- /dev/null
+++ b/mobile/android/focus-android/app/.experimenter.yaml
@@ -0,0 +1,23 @@
+---
+cookie-banner:
+ description: Nimbus feature name intended to control the cookie banner handling in the app.
+ hasExposure: true
+ exposureDescription: ""
+ variables:
+ is-cookie-handling-enabled:
+ type: boolean
+ description: "If 'true' , the app will show the settings part for cookie banner handling"
+onboarding:
+ description: Nimbus feature name intended to control the onboarding plus all CFRs in the app.
+ hasExposure: true
+ exposureDescription: ""
+ variables:
+ is-cfr-enabled:
+ type: boolean
+ description: "If `true`, the app will show the cfrs"
+ is-enabled:
+ type: boolean
+ description: "If `true`, the app will show the new onboarding screen"
+ is-promote-search-widget-dialog-enabled:
+ type: boolean
+ description: "If `true`, the app will show the new dialog for promote search widget"
diff --git a/mobile/android/focus-android/app/.gitignore b/mobile/android/focus-android/app/.gitignore
new file mode 100644
index 0000000000..211d729623
--- /dev/null
+++ b/mobile/android/focus-android/app/.gitignore
@@ -0,0 +1,3 @@
+/build
+
+src/main/java/org/mozilla/focus/generated/
diff --git a/mobile/android/focus-android/app/build.gradle b/mobile/android/focus-android/app/build.gradle
new file mode 100644
index 0000000000..3a82291ce9
--- /dev/null
+++ b/mobile/android/focus-android/app/build.gradle
@@ -0,0 +1,788 @@
+plugins {
+ id "com.jetbrains.python.envs" version "$python_envs_plugin"
+}
+
+if (findProject(":geckoview") != null) {
+ buildDir "${topobjdir}/gradle/build/mobile/android/focus-android"
+}
+
+apply plugin: 'com.android.application'
+apply plugin: 'kotlin-android'
+apply plugin: 'kotlin-parcelize'
+apply plugin: 'jacoco'
+apply plugin: 'com.google.android.gms.oss-licenses-plugin'
+
+def versionCodeGradle = "$project.rootDir/tools/gradle/versionCode.gradle"
+if (findProject(":geckoview") != null) {
+ versionCodeGradle = "$project.rootDir/mobile/android/focus-android/tools/gradle/versionCode.gradle"
+}
+apply from: versionCodeGradle
+
+if (findProject(":geckoview") != null) {
+ apply from: "${topsrcdir}/mobile/android/gradle/product_flavors.gradle"
+}
+
+import com.android.build.api.variant.FilterConfiguration
+import groovy.json.JsonOutput
+import org.gradle.internal.logging.text.StyledTextOutput.Style
+import org.gradle.internal.logging.text.StyledTextOutputFactory
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
+import static org.gradle.api.tasks.testing.TestResult.ResultType
+
+android {
+ if (project.hasProperty("testBuildType")) {
+ // Allowing to configure the test build type via command line flag (./gradlew -PtestBuildType=beta ..)
+ // in order to run UI tests against other build variants than debug in automation.
+ testBuildType project.property("testBuildType")
+ }
+
+ defaultConfig {
+ applicationId "org.mozilla"
+ minSdkVersion config.minSdkVersion
+ compileSdk config.compileSdkVersion
+ targetSdkVersion config.targetSdkVersion
+ versionCode 11 // This versionCode is "frozen" for local builds. For "release" builds we
+ // override this with a generated versionCode at build time.
+ // The versionName is dynamically overridden for all the build variants at build time.
+ versionName Config.generateDebugVersionName()
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ testInstrumentationRunnerArguments clearPackageData: 'true'
+ // See override in release builds for why it's blank.
+ buildConfigField "String", "VCS_HASH", "\"\""
+
+ vectorDrawables.useSupportLibrary = true
+ }
+
+ bundle {
+ language {
+ // Because we have runtime language selection we will keep all strings and languages
+ // in the base APKs.
+ enableSplit = false
+ }
+ }
+
+ lint {
+ lintConfig file("lint.xml")
+ baseline file("lint-baseline.xml")
+ }
+
+ // We have a three dimensional build configuration:
+ // BUILD TYPE (debug, release) X PRODUCT FLAVOR (focus, klar)
+
+ buildTypes {
+ release {
+ // We allow disabling optimization by passing `-PdisableOptimization` to gradle. This is used
+ // in automation for UI testing non-debug builds.
+ shrinkResources !project.hasProperty("disableOptimization")
+ minifyEnabled !project.hasProperty("disableOptimization")
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ matchingFallbacks = ['release']
+ buildConfigField "String", "VCS_HASH", "\"${Config.getVcsHash()}\""
+
+ if (gradle.hasProperty("localProperties.autosignReleaseWithDebugKey")) {
+ println ("All builds will be automatically signed with the debug key")
+ signingConfig signingConfigs.debug
+ }
+
+ if (gradle.hasProperty("localProperties.debuggable")) {
+ println ("All builds will be debuggable")
+ debuggable true
+ }
+ }
+ debug {
+ applicationIdSuffix ".debug"
+ matchingFallbacks = ['debug']
+ }
+ beta {
+ initWith release
+ applicationIdSuffix ".beta"
+ // This is used when the user selects text in other third-party apps. See https://github.com/mozilla-mobile/focus-android/issues/6478
+ manifestPlaceholders = [textSelectionSearchAction: "@string/text_selection_search_action_focus_beta"]
+ }
+ nightly {
+ initWith release
+ applicationIdSuffix ".nightly"
+ // This is used when the user selects text in other third-party apps. See https://github.com/mozilla-mobile/focus-android/issues/6478
+ manifestPlaceholders = [textSelectionSearchAction: "@string/text_selection_search_action_focus_nightly"]
+ }
+ }
+ testOptions {
+ execution 'ANDROIDX_TEST_ORCHESTRATOR'
+ animationsDisabled = true
+ unitTests {
+ includeAndroidResources = true
+ }
+ }
+
+ buildFeatures {
+ compose true
+ viewBinding true
+ buildConfig true
+ }
+
+ composeOptions {
+ kotlinCompilerExtensionVersion = Versions.compose_compiler
+ }
+
+ if (findProject(":geckoview") != null) {
+ project.configureProductFlavors.delegate = it
+ project.configureProductFlavors()
+ }
+
+ flavorDimensions.add("product")
+
+ productFlavors {
+ // In most countries we are Firefox Focus - but in some we need to be Firefox Klar
+ focus {
+ dimension "product"
+
+ applicationIdSuffix ".focus"
+
+ // This is used when the user selects text in other third-party apps. See https://github.com/mozilla-mobile/focus-android/issues/6478
+ manifestPlaceholders = [textSelectionSearchAction: "@string/text_selection_search_action_focus"]
+ }
+ klar {
+ dimension "product"
+
+ applicationIdSuffix ".klar"
+
+ // This is used when the user selects text in other third-party apps. See https://github.com/mozilla-mobile/focus-android/issues/6478
+ manifestPlaceholders = [textSelectionSearchAction: "@string/text_selection_search_action_klar"]
+ }
+ }
+
+ splits {
+ abi {
+ enable true
+
+ reset()
+
+ include "x86", "armeabi-v7a", "arm64-v8a", "x86_64"
+ }
+ }
+
+ sourceSets {
+ test {
+ resources {
+ // Make the default asset folder available as test resource folder. Robolectric seems
+ // to fail to read assets for our setup. With this we can just read the files directly
+ // and do not need to rely on Robolectric.
+ srcDir "${projectDir}/src/main/assets/"
+ }
+ }
+
+ if (findProject(":geckoview") != null) {
+ // Release
+ withGeckoBinariesFocusRelease.root = 'src/focusRelease'
+ withGeckoBinariesKlarRelease.root = 'src/klarRelease'
+ withoutGeckoBinariesFocusRelease.root = 'src/focusRelease'
+ withoutGeckoBinariesKlarRelease.root = 'src/klarRelease'
+
+ // Debug
+ withGeckoBinariesFocusDebug.root = 'src/focusDebug'
+ withGeckoBinariesKlarDebug.root = 'src/klarDebug'
+ withoutGeckoBinariesFocusDebug.root = 'src/focusDebug'
+ withoutGeckoBinariesKlarDebug.root = 'src/klarDebug'
+
+ // Nightly
+ withGeckoBinariesFocusNightly.root = 'src/focusNightly'
+ withGeckoBinariesKlarNightly.root = 'src/klarNightly'
+ withoutGeckoBinariesFocusNightly.root = 'src/focusNightly'
+ withoutGeckoBinariesKlarNightly.root = 'src/klarNightly'
+ } else {
+ // Release
+ focusRelease.root = 'src/focusRelease'
+ klarRelease.root = 'src/klarRelease'
+
+ // Debug
+ focusDebug.root = 'src/focusDebug'
+ klarDebug.root = 'src/klarDebug'
+
+ // Nightly
+ focusNightly.root = 'src/focusNightly'
+ klarNightly.root = 'src/klarNightly'
+ }
+ }
+ packagingOptions {
+ resources {
+ pickFirsts += ['META-INF/atomicfu.kotlin_module', 'META-INF/proguard/coroutines.pro']
+ }
+ jniLibs {
+ useLegacyPackaging true
+ }
+ }
+
+ namespace 'org.mozilla.focus'
+}
+
+tasks.withType(KotlinCompile).configureEach {
+ kotlinOptions.allWarningsAsErrors = true
+ kotlinOptions.freeCompilerArgs += [
+ "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
+ "-opt-in=kotlin.RequiresOptIn",
+ "-Xjvm-default=all"
+ ]
+}
+
+// -------------------------------------------------------------------------------------------------
+// Generate Kotlin code for the Focus Glean metrics.
+// -------------------------------------------------------------------------------------------------
+apply plugin: "org.mozilla.telemetry.glean-gradle-plugin"
+apply plugin: "org.mozilla.appservices.nimbus-gradle-plugin"
+
+nimbus {
+ // The path to the Nimbus feature manifest file
+ manifestFile = "nimbus.fml.yaml"
+ // Map from the variant name to the channel as experimenter and nimbus understand it.
+ // If nimbus's channels were accurately set up well for this project, then this
+ // shouldn't be needed.
+ channels = [
+ focusDebug: "debug",
+ focusNightly: "nightly",
+ focusBeta: "beta",
+ focusRelease: "release",
+ klarDebug: "debug",
+ klarNightly: "nightly",
+ klarBeta: "beta",
+ klarRelease: "release",
+ withGeckoBinariesFocusDebug: "debug",
+ withGeckoBinariesFocusNightly: "nightly",
+ withGeckoBinariesFocusBeta: "beta",
+ withGeckoBinariesFocusRelease: "release",
+ withGeckoBinariesKlarDebug: "debug",
+ withGeckoBinariesKlarNightly: "nightly",
+ withGeckoBinariesKlarBeta: "beta",
+ withGeckoBinariesKlarRelease: "release",
+ withoutGeckoBinariesFocusDebug: "debug",
+ withoutGeckoBinariesFocusNightly: "nightly",
+ withoutGeckoBinariesFocusBeta: "beta",
+ withoutGeckoBinariesFocusRelease: "release",
+ withoutGeckoBinariesKlarDebug: "debug",
+ withoutGeckoBinariesKlarNightly: "nightly",
+ withoutGeckoBinariesKlarBeta: "beta",
+ withoutGeckoBinariesKlarRelease: "release",
+ ]
+ // This is generated by the FML and should be checked into git.
+ // It will be fetched by Experimenter (the Nimbus experiment website)
+ // and used to inform experiment configuration.
+ experimenterManifest = ".experimenter.yaml"
+}
+
+dependencies {
+ implementation platform(ComponentsDependencies.androidx_compose_bom)
+ androidTestImplementation platform(ComponentsDependencies.androidx_compose_bom)
+
+ implementation ComponentsDependencies.androidx_appcompat
+ implementation ComponentsDependencies.androidx_browser
+ implementation ComponentsDependencies.androidx_cardview
+ implementation ComponentsDependencies.androidx_compose_ui
+ implementation ComponentsDependencies.androidx_compose_ui_tooling
+ implementation ComponentsDependencies.androidx_compose_foundation
+ implementation ComponentsDependencies.androidx_compose_material
+ implementation ComponentsDependencies.androidx_compose_runtime_livedata
+ implementation ComponentsDependencies.androidx_constraintlayout
+ implementation FocusDependencies.androidx_constraint_layout_compose
+ implementation ComponentsDependencies.androidx_core_ktx
+ implementation ComponentsDependencies.androidx_fragment
+ implementation ComponentsDependencies.androidx_lifecycle_process
+ implementation ComponentsDependencies.androidx_lifecycle_viewmodel
+ implementation ComponentsDependencies.androidx_palette
+ implementation ComponentsDependencies.androidx_preferences
+ implementation ComponentsDependencies.androidx_recyclerview
+ implementation ComponentsDependencies.androidx_savedstate
+ implementation FocusDependencies.androidx_splashscreen
+ implementation FocusDependencies.androidx_transition
+ implementation ComponentsDependencies.androidx_work_runtime
+ implementation ComponentsDependencies.androidx_data_store_preferences
+
+ implementation FocusDependencies.google_play
+
+ implementation ComponentsDependencies.google_material
+
+ implementation ComponentsDependencies.thirdparty_sentry
+
+ implementation project(':browser-engine-gecko')
+ implementation project(':browser-domains')
+ implementation project(':browser-errorpages')
+ implementation project(':browser-icons')
+ implementation project(':browser-menu')
+ implementation project(':browser-state')
+ implementation project(':browser-toolbar')
+
+ implementation project(':concept-awesomebar')
+ implementation project(':concept-engine')
+ implementation project(':concept-fetch')
+ implementation project(':concept-menu')
+
+ implementation project(':compose-awesomebar')
+
+ implementation project(':feature-awesomebar')
+ implementation project(':feature-app-links')
+ implementation project(':feature-customtabs')
+ implementation project(':feature-contextmenu')
+ implementation project(':feature-downloads')
+ implementation project(':feature-findinpage')
+ implementation project(':feature-intent')
+ implementation project(':feature-prompts')
+ implementation project(':feature-session')
+ implementation project(':feature-search')
+ implementation project(':feature-tabs')
+ implementation project(':feature-toolbar')
+ implementation project(':feature-top-sites')
+ implementation project(':feature-sitepermissions')
+ implementation project(':lib-crash')
+ implementation project(':lib-crash-sentry')
+ implementation project(':lib-state')
+ implementation project(':feature-media')
+ implementation project(':lib-auth')
+ implementation project(':lib-publicsuffixlist')
+
+ implementation project(':service-glean'), {
+ exclude group: 'org.mozilla.telemetry', module: 'glean-native'
+ }
+ implementation project(':service-location')
+ implementation project(':service-nimbus')
+
+ implementation project(':support-ktx')
+ implementation project(':support-utils')
+ implementation project(':support-rusthttp')
+ implementation project(':support-rustlog')
+ implementation project(':support-license')
+
+ implementation project(':ui-autocomplete')
+ implementation project(':ui-colors')
+ implementation project(':ui-icons')
+ implementation project(':ui-tabcounter')
+ implementation project(':ui-widgets')
+ implementation project(':feature-webcompat')
+ implementation project(':feature-webcompat-reporter')
+ implementation project(':support-webextensions')
+ implementation project(':support-locale')
+ implementation project(':compose-cfr')
+
+ implementation ComponentsDependencies.kotlin_coroutines
+ debugImplementation ComponentsDependencies.leakcanary
+
+ focusImplementation FocusDependencies.adjust
+ focusImplementation FocusDependencies.install_referrer // Required by Adjust
+
+ testImplementation "org.mozilla.telemetry:glean-native-forUnitTests:${project.ext.glean_version}"
+
+ testImplementation FocusDependencies.testing_junit_api
+ testRuntimeOnly FocusDependencies.testing_junit_engine
+ testImplementation FocusDependencies.testing_junit_params
+ testImplementation ComponentsDependencies.testing_robolectric
+ testImplementation ComponentsDependencies.testing_mockito
+ testImplementation ComponentsDependencies.testing_coroutines
+ testImplementation ComponentsDependencies.androidx_work_testing
+ testImplementation ComponentsDependencies.androidx_arch_core_testing
+ testImplementation project(':support-test')
+ testImplementation project(':support-test-libstate')
+ androidTestImplementation ComponentsDependencies.androidx_espresso_core, {
+ exclude group: 'com.android.support', module: 'support-annotations'
+ }
+ androidTestImplementation FocusDependencies.espresso_idling_resource
+ androidTestImplementation FocusDependencies.espresso_web, {
+ exclude group: 'com.android.support', module: 'support-annotations'
+ }
+ androidTestImplementation FocusDependencies.espresso_intents
+
+
+ androidTestImplementation ComponentsDependencies.testing_mockwebserver
+ testImplementation ComponentsDependencies.testing_mockwebserver
+ testImplementation project(':lib-fetch-okhttp')
+
+ androidTestImplementation FocusDependencies.fastlane
+ androidTestImplementation FocusDependencies.falcon // Required by fastlane
+
+ androidTestImplementation FocusDependencies.espresso_contrib, {
+ exclude module: 'appcompat-v7'
+ exclude module: 'support-v4'
+ exclude module: 'support-annotations'
+ exclude module: 'recyclerview-v7'
+ exclude module: 'design'
+ exclude module: 'espresso-core'
+ }
+ testImplementation ComponentsDependencies.androidx_test_core
+ testImplementation ComponentsDependencies.androidx_test_runner
+ testImplementation ComponentsDependencies.androidx_test_rules
+
+ androidTestImplementation ComponentsDependencies.androidx_test_core
+ androidTestImplementation ComponentsDependencies.androidx_test_junit
+ androidTestImplementation ComponentsDependencies.androidx_test_uiautomator
+ androidTestImplementation ComponentsDependencies.androidx_test_runner
+ androidTestUtil FocusDependencies.androidx_orchestrator
+
+ lintChecks project(':tooling-lint')
+}
+// -------------------------------------------------------------------------------------------------
+// Dynamically set versionCode (See tools/build/versionCode.gradle
+// -------------------------------------------------------------------------------------------------
+
+android.applicationVariants.configureEach { variant ->
+ def buildType = variant.buildType.name
+
+ println("----------------------------------------------")
+ println("Variant name: " + variant.name)
+ println("Application ID: " + [variant.applicationId, variant.buildType.applicationIdSuffix].findAll().join())
+ println("Build type: " + variant.buildType.name)
+ println("Flavor: " + variant.flavorName)
+
+ if (buildType == "release" || buildType == "nightly" || buildType == "beta") {
+ def baseVersionCode = generatedVersionCode
+ def versionName = buildType == "nightly" ?
+ "${Config.nightlyVersionName(project)}" :
+ "${Config.releaseVersionName(project)}"
+ println("versionName override: $versionName")
+
+ // The Google Play Store does not allow multiple APKs for the same app that all have the
+ // same version code. Therefore we need to have different version codes for our ARM and x86
+ // builds. See https://developer.android.com/studio/publish/versioning
+
+ // Our generated version code now has a length of 9 (See tools/gradle/versionCode.gradle).
+ // Our x86 builds need a higher version code to avoid installing ARM builds on an x86 device
+ // with ARM compatibility mode.
+
+ // AAB builds need a version code that is distinct from any APK builds. Since AAB and APK
+ // builds may run in parallel, AAB and APK version codes might be based on the same
+ // (minute granularity) time of day. To avoid conflicts, we ensure the minute portion
+ // of the version code is even for APKs and odd for AABs.
+
+ variant.outputs.each { output ->
+ def abi = output.getFilter(FilterConfiguration.FilterType.ABI.name())
+ def aab = project.hasProperty("aab")
+ // We use the same version code generator, that we inherited from Fennec, across all channels - even on
+ // channels that never shipped a Fennec build.
+
+ // ensure baseVersionCode is an even number
+ if (baseVersionCode % 2) {
+ baseVersionCode = baseVersionCode + 1
+ }
+
+ def versionCodeOverride = baseVersionCode
+
+ if (aab) {
+ // AAB version code is odd
+ versionCodeOverride = versionCodeOverride + 1
+ println("versionCode for AAB = $versionCodeOverride")
+ } else {
+ if (abi == "x86_64") {
+ versionCodeOverride = versionCodeOverride + 6
+ } else if (abi == "x86") {
+ versionCodeOverride = versionCodeOverride + 4
+ } else if (abi == "arm64-v8a") {
+ versionCodeOverride = versionCodeOverride + 2
+ } else if (abi == "armeabi-v7a") {
+ versionCodeOverride = versionCodeOverride + 0
+ } else {
+ throw new RuntimeException("Unknown ABI: " + abi)
+ }
+ println("versionCode for $abi = $versionCodeOverride")
+ }
+
+ if (versionName != null) {
+ output.versionNameOverride = versionName
+ }
+ output.versionCodeOverride = versionCodeOverride
+
+ }
+
+ }
+}
+
+// -------------------------------------------------------------------------------------------------
+// MLS: Read token from local file if it exists (Only release builds)
+// -------------------------------------------------------------------------------------------------
+
+android.applicationVariants.configureEach {
+ print("MLS token: ")
+ try {
+ def token = new File("${rootDir}/.mls_token").text.trim()
+ buildConfigField 'String', 'MLS_TOKEN', '"' + token + '"'
+ println "(Added from .mls_token file)"
+ } catch (FileNotFoundException ignored) {
+ buildConfigField 'String', 'MLS_TOKEN', '""'
+ println("X_X")
+ }
+}
+
+// -------------------------------------------------------------------------------------------------
+// Adjust: Read token from local file if it exists (Only release builds)
+// -------------------------------------------------------------------------------------------------
+
+android.applicationVariants.configureEach { variant ->
+ def variantName = variant.getName()
+
+ print("Adjust token: ")
+
+ if (variantName.contains("Release") && variantName.contains("focus")) {
+ try {
+ def token = new File("${rootDir}/.adjust_token").text.trim()
+ buildConfigField 'String', 'ADJUST_TOKEN', '"' + token + '"'
+ println "(Added from .adjust_token file)"
+ } catch (FileNotFoundException ignored) {
+ if (gradle.hasProperty("localProperties.autosignReleaseWithDebugKey")) {
+ buildConfigField 'String', 'ADJUST_TOKEN', '"fake"'
+ println("fake - only for local development")
+ } else {
+ buildConfigField 'String', 'ADJUST_TOKEN', 'null'
+ println("X_X")
+ }
+ }
+ } else {
+ buildConfigField 'String', 'ADJUST_TOKEN', 'null'
+ println("--")
+ }
+}
+
+// -------------------------------------------------------------------------------------------------
+// Sentry: Read token from local file if it exists (Only release builds)
+// -------------------------------------------------------------------------------------------------
+
+android.applicationVariants.configureEach {
+ print("Sentry token: ")
+ try {
+ def token = new File("${rootDir}/.sentry_token").text.trim()
+ buildConfigField 'String', 'SENTRY_TOKEN', '"' + token + '"'
+ println "(Added from .sentry_token file)"
+ } catch (FileNotFoundException ignored) {
+ buildConfigField 'String', 'SENTRY_TOKEN', '""'
+ println("X_X")
+ }
+}
+
+// -------------------------------------------------------------------------------------------------
+// L10N: Generate list of locales
+// Focus provides its own (Android independent) locale switcher. That switcher requires a list
+// of locale codes. We generate that list here to avoid having to manually maintain a list of locales:
+// -------------------------------------------------------------------------------------------------
+
+def getEnabledLocales() {
+ def resDir = file('src/main/res')
+
+ def potentialLanguageDirs = resDir.listFiles(new FilenameFilter() {
+ @Override
+ boolean accept(File dir, String name) {
+ return name.startsWith("values-")
+ }
+ })
+
+ def langs = potentialLanguageDirs.findAll {
+ // Only select locales where strings.xml exists
+ // Some locales might only contain e.g. sumo URLS in urls.xml, and should be skipped (see es vs es-ES/es-MX/etc)
+ return file(new File(it, "strings.xml")).exists()
+ } .collect {
+ // And reduce down to actual values-* names
+ return it.name
+ } .collect {
+ return it.substring("values-".length())
+ } .collect {
+ if (it.length() > 3 && it.contains("-r")) {
+ // Android resource dirs add an "r" prefix to the region - we need to strip that for java usage
+ // Add 1 to have the index of the r, without the dash
+ def regionPrefixPosition = it.indexOf("-r") + 1
+
+ return it.substring(0, regionPrefixPosition) + it.substring(regionPrefixPosition + 1)
+ } else {
+ return it
+ }
+ }.collect {
+ return '"' + it + '"'
+ }
+
+ // en-US is the default language (in "values") and therefore needs to be added separately
+ langs << "\"en-US\""
+
+ return langs.sort { it }
+}
+
+// -------------------------------------------------------------------------------------------------
+// Nimbus: Read endpoint from local.properties of a local file if it exists
+// -------------------------------------------------------------------------------------------------
+
+print("Nimbus endpoint: ")
+android.applicationVariants.configureEach { variant ->
+ def variantName = variant.getName()
+
+ if (!variantName.contains("Debug")) {
+ try {
+ def url = new File("${rootDir}/.nimbus").text.trim()
+ buildConfigField 'String', 'NIMBUS_ENDPOINT', '"' + url + '"'
+ println "(Added from .nimbus file)"
+ } catch (FileNotFoundException ignored) {
+ buildConfigField 'String', 'NIMBUS_ENDPOINT', 'null'
+ println("X_X")
+ }
+ } else if (gradle.hasProperty("localProperties.nimbus.remote-settings.url")) {
+ def url = gradle.getProperty("localProperties.nimbus.remote-settings.url")
+ buildConfigField 'String', 'NIMBUS_ENDPOINT', '"' + url + '"'
+ println "(Added from local.properties file)"
+ } else {
+ buildConfigField 'String', 'NIMBUS_ENDPOINT', 'null'
+ println("--")
+ }
+}
+
+def generatedLocaleListDir = 'src/main/java/org/mozilla/focus/generated'
+def generatedLocaleListFilename = 'LocalesList.kt'
+
+tasks.register('generateLocaleList') {
+ doLast {
+ def dir = file(generatedLocaleListDir)
+ dir.mkdir()
+ def localeList = file(new File(dir, generatedLocaleListFilename))
+
+ localeList.delete()
+ localeList.createNewFile()
+ localeList << "package org.mozilla.focus.generated" << "\n" << "\n"
+ localeList << "import java.util.Collections" << "\n"
+ localeList << "\n"
+ localeList << "/**"
+ localeList << "\n"
+ localeList << " * Provides a list of bundled locales based on the language files in the res folder."
+ localeList << "\n"
+ localeList << " */"
+ localeList << "\n"
+ localeList << "object LocalesList {" << "\n"
+ localeList << " " << "val BUNDLED_LOCALES: List<String> = Collections.unmodifiableList("
+ localeList << "\n"
+ localeList << " " << "listOf("
+ localeList << "\n"
+ localeList << " "
+ localeList << getEnabledLocales().join(",\n" + " ")
+ localeList << ",\n"
+ localeList << " )," << "\n"
+ localeList << " )" << "\n"
+ localeList << "}" << "\n"
+ }
+}
+
+tasks.configureEach { task ->
+ if (name.contains("compile")) {
+ task.dependsOn generateLocaleList
+ }
+}
+
+clean.doLast {
+ file(generatedLocaleListDir).deleteDir()
+}
+
+if (project.hasProperty("coverage")) {
+ tasks.withType(Test).configureEach {
+ jacoco.includeNoLocationClasses = true
+ jacoco.excludes = ['jdk.internal.*']
+ }
+
+ android.applicationVariants.configureEach { variant ->
+ tasks.register("jacoco${variant.name.capitalize()}TestReport", JacocoReport) {
+
+ dependsOn(["test${variant.name.capitalize()}UnitTest"])
+ reports {
+ html.required = true
+ xml.required = true
+ }
+
+ def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*',
+ '**/*Test*.*', 'android/**/*.*', '**/*$[0-9].*']
+ def kotlinTree = fileTree(dir: "$project.layout.buildDirectory/tmp/kotlin-classes/${variant.name}", excludes: fileFilter)
+ def javaTree = fileTree(dir: "$project.layout.buildDirectory/intermediates/classes/${variant.flavorName}/${variant.buildType.name}",
+ excludes: fileFilter)
+ def mainSrc = "$project.projectDir/src/main/java"
+ sourceDirectories.setFrom(files([mainSrc]))
+ classDirectories.setFrom(files([kotlinTree, javaTree]))
+ executionData.setFrom(fileTree(dir: project.layout.buildDirectory, includes: [
+ "jacoco/test${variant.name.capitalize()}UnitTest.exec", 'outputs/code-coverage/connected/*coverage.ec'
+ ]))
+ }
+ }
+
+ android {
+ buildTypes {
+ debug {
+ testCoverageEnabled true
+ applicationIdSuffix ".coverage"
+ }
+ }
+ }
+}
+
+if (gradle.hasProperty('localProperties.autoPublish.glean.dir')) {
+ ext.gleanSrcDir = gradle."localProperties.autoPublish.glean.dir"
+ apply from: "../${gleanSrcDir}/build-scripts/substitute-local-glean.gradle"
+}
+
+// -------------------------------------------------------------------------------------------------
+// Task for printing APK information for the requested variant
+// Taskgraph Usage: "./gradlew printVariants
+// -------------------------------------------------------------------------------------------------
+tasks.register('printVariants') {
+ doLast {
+ def variants = android.applicationVariants.collect { variant -> [
+ apks: variant.outputs.collect { output -> [
+ abi: output.getFilter(FilterConfiguration.FilterType.ABI.name()),
+ fileName: output.outputFile.name
+ ]},
+ build_type: variant.buildType.name,
+ name: variant.name,
+ ]}
+ // AndroidTest is a special case not included above
+ variants.add([
+ apks: [[
+ abi: 'noarch',
+ fileName: 'app-debug-androidTest.apk',
+ ]],
+ build_type: 'androidTest',
+ name: 'androidTest',
+ ])
+ println 'variants: ' + JsonOutput.toJson(variants)
+ }
+}
+
+// Enable expiration by major version.
+ext.gleanExpireByVersion = 1
+
+afterEvaluate {
+
+ // Format test output. Copied from Fenix, which was ported from AC #2401
+ tasks.withType(Test).configureEach {
+ systemProperty "robolectric.logging", "stdout"
+ systemProperty "logging.test-mode", "true"
+
+ testLogging.events = []
+
+ def out = services.get(StyledTextOutputFactory).create("tests")
+
+ beforeSuite { descriptor ->
+ if (descriptor.getClassName() != null) {
+ out.style(Style.Header).println("\nSUITE: " + descriptor.getClassName())
+ }
+ }
+
+ beforeTest { descriptor ->
+ out.style(Style.Description).println(" TEST: " + descriptor.getName())
+ }
+
+ onOutput { descriptor, event ->
+ logger.lifecycle(" " + event.message.trim())
+ }
+
+ afterTest { descriptor, result ->
+ switch (result.getResultType()) {
+ case ResultType.SUCCESS:
+ out.style(Style.Success).println(" SUCCESS")
+ break
+
+ case ResultType.FAILURE:
+ def testId = descriptor.getClassName() + "." + descriptor.getName()
+ out.style(Style.Failure).println(" TEST-UNEXPECTED-FAIL | " + testId + " | " + result.getException())
+ break
+
+ case ResultType.SKIPPED:
+ out.style(Style.Info).println(" SKIPPED")
+ break
+ }
+ logger.lifecycle("")
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/lint-baseline.xml b/mobile/android/focus-android/app/lint-baseline.xml
new file mode 100644
index 0000000000..b230739f68
--- /dev/null
+++ b/mobile/android/focus-android/app/lint-baseline.xml
@@ -0,0 +1,7196 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 8.2.2" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.2)" variant="all" version="8.2.2">
+
+ <issue
+ id="ScopedStorage"
+ message="READ_EXTERNAL_STORAGE is deprecated (and is not granted) when targeting Android 13+. If you need to query or interact with MediaStore or media files on the shared storage, you should instead use one or more new storage permissions: `READ_MEDIA_IMAGES`, `READ_MEDIA_VIDEO` or `READ_MEDIA_AUDIO`."
+ errorLine1=" &lt;uses-permission android:name=&quot;android.permission.READ_EXTERNAL_STORAGE&quot; />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="9"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="ScopedStorage"
+ message="WRITE_EXTERNAL_STORAGE is deprecated (and is not granted) when targeting Android 13+. If you need to write to shared storage, use the `MediaStore.createWriteRequest` intent."
+ errorLine1=" &lt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot; />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="10"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="ScopedStorage"
+ message="WRITE_EXTERNAL_STORAGE is deprecated (and is not granted) when targeting Android 13+. If you need to write to shared storage, use the `MediaStore.createWriteRequest` intent."
+ errorLine1=" &lt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot; />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/debug/AndroidManifest.xml"
+ line="12"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="ScopedStorage"
+ message="READ_EXTERNAL_STORAGE is deprecated (and is not granted) when targeting Android 13+. If you need to query or interact with MediaStore or media files on the shared storage, you should instead use one or more new storage permissions: `READ_MEDIA_IMAGES`, `READ_MEDIA_VIDEO` or `READ_MEDIA_AUDIO`."
+ errorLine1=" &lt;uses-permission android:name=&quot;android.permission.READ_EXTERNAL_STORAGE&quot; />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/debug/AndroidManifest.xml"
+ line="13"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="CommitTransaction"
+ message="This transaction should be completed with a `commit()` call"
+ errorLine1=" .beginTransaction()"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/org/mozilla/focus/navigation/MainActivityNavigation.kt"
+ line="250"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ApplySharedPref"
+ message="Consider using `apply()` instead; `commit` writes its data to persistent storage immediately, whereas `apply` will handle it in the background"
+ errorLine1=" .commit()"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/org/mozilla/focus/utils/Settings.kt"
+ line="178"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="ApplySharedPref"
+ message="Consider using `apply()` instead; `commit` writes its data to persistent storage immediately, whereas `apply` will handle it in the background"
+ errorLine1=" .commit()"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/org/mozilla/focus/utils/Settings.kt"
+ line="412"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="ApplySharedPref"
+ message="Consider using `apply()` instead; `commit` writes its data to persistent storage immediately, whereas `apply` will handle it in the background"
+ errorLine1=" .commit()"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/org/mozilla/focus/utils/Settings.kt"
+ line="420"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `usesCleartextTraffic` is only used in API level 23 and higher (current min is 21)"
+ errorLine1=" android:usesCleartextTraffic=&quot;true&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="67"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `textFontWeight` is only used in API level 28 and higher (current min is 21)"
+ errorLine1=" android:textFontWeight=&quot;600&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_crash_reporter.xml"
+ line="79"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `android:foreground` has no effect on API levels lower than 23 (current min is 21)"
+ errorLine1=" android:foreground=&quot;?selectableItemBackground&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/item_custom_domain.xml"
+ line="13"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `font` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:font=&quot;@font/metropolis_black&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="11"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontStyle` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontStyle=&quot;normal&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="12"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontWeight` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontWeight=&quot;900&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="13"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `font` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:font=&quot;@font/metropolis_extrabold&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="20"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontStyle` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontStyle=&quot;normal&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="21"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontWeight` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontWeight=&quot;800&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="22"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `font` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:font=&quot;@font/metropolis_bold&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="29"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontStyle` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontStyle=&quot;normal&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="30"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontWeight` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontWeight=&quot;700&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="31"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `font` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:font=&quot;@font/metropolis_semibold&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="38"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontStyle` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontStyle=&quot;normal&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="39"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontWeight` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontWeight=&quot;600&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="40"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `font` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:font=&quot;@font/metropolis_medium&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="47"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontStyle` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontStyle=&quot;normal&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="48"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontWeight` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontWeight=&quot;500&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="49"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `font` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:font=&quot;@font/metropolis_regular&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="56"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontStyle` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontStyle=&quot;normal&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="57"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontWeight` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontWeight=&quot;400&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="58"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `font` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:font=&quot;@font/metropolis_thin&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="65"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontStyle` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontStyle=&quot;normal&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="66"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontWeight` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontWeight=&quot;200&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="67"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `font` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:font=&quot;@font/metropolis_light&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="74"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontStyle` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontStyle=&quot;normal&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="75"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontWeight` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:fontWeight=&quot;100&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/font/metropolis.xml"
+ line="76"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `android:foreground` has no effect on API levels lower than 23 (current min is 21)"
+ errorLine1=" android:foreground=&quot;@drawable/preference_multiselect_search_engine_foreground&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/search_engine_checkbox_button.xml"
+ line="13"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="AndroidSrcXmlDetector"
+ message="Using android:src to define resource instead of app:srcCompat"
+ errorLine1=" android:src=&quot;@drawable/mozac_ic_chevron_right_24&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/cookies_preference.xml"
+ line="50"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="AndroidSrcXmlDetector"
+ message="Using android:tint to tint ImageView instead of app:tint with AppCompatImageView"
+ errorLine1=" android:tint=&quot;@color/photonWhite&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/dialog_add_to_homescreen2.xml"
+ line="93"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="AndroidSrcXmlDetector"
+ message="Using android:src to define resource instead of app:srcCompat"
+ errorLine1=" android:src=&quot;@drawable/ic_reorder&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/item_custom_domain.xml"
+ line="33"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="AndroidSrcXmlDetector"
+ message="Using android:src to define resource instead of app:srcCompat"
+ errorLine1=" android:src=&quot;@drawable/ic_menu&quot; />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/item_indicator_menu_button.xml"
+ line="15"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="AndroidSrcXmlDetector"
+ message="Using android:src to define resource instead of app:srcCompat"
+ errorLine1=" android:src=&quot;@drawable/highlight_dot&quot; />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/item_indicator_menu_button.xml"
+ line="24"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="AndroidSrcXmlDetector"
+ message="Using android:src to define resource instead of app:srcCompat"
+ errorLine1=" android:src=&quot;@drawable/mozac_ic_cross_24&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/item_session.xml"
+ line="42"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="AndroidSrcXmlDetector"
+ message="Using android:src to define resource instead of app:srcCompat"
+ errorLine1=" android:src=&quot;@drawable/mozac_ic_forward_24&quot;/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/menu_navigation.xml"
+ line="19"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="AndroidSrcXmlDetector"
+ message="Using android:src to define resource instead of app:srcCompat"
+ errorLine1=" android:src=&quot;@drawable/mozac_ic_arrow_clockwise_24&quot;/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/menu_navigation.xml"
+ line="28"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="AndroidSrcXmlDetector"
+ message="Using android:src to define resource instead of app:srcCompat"
+ errorLine1=" android:src=&quot;@drawable/mozac_ic_stop&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/menu_navigation.xml"
+ line="35"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="AppBundleLocaleChanges"
+ message="Found dynamic locale changes, but did not find corresponding Play Core library calls for downloading languages and splitting by language is not disabled in the `bundle` configuration"
+ errorLine1=" configuration.setLocale(currentLocale)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/org/mozilla/focus/locale/Locales.kt"
+ line="104"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
+ errorLine1=" const val LAYOUT_ID = R.layout.item_app"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/org/mozilla/focus/open/AppViewHolder.kt"
+ line="43"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
+ errorLine1=" const val LAYOUT_ID = R.layout.item_install_banner"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/org/mozilla/focus/open/InstallBannerViewHolder.kt"
+ line="37"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
+ errorLine1="const val SECTION_LAYOUT_ID = R.layout.studies_section_item"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesViewHolder.kt"
+ line="18"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
+ errorLine1="const val ACTIVE_STUDY_LAYOUT_ID = R.layout.active_study_item"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesViewHolder.kt"
+ line="19"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="RedundantLabel"
+ message="Redundant label can be removed"
+ errorLine1=" android:label=&quot;@string/app_name&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="110"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="RedundantLabel"
+ message="Redundant label can be removed"
+ errorLine1=" android:label=&quot;@string/app_name&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="135"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
+ errorLine1=" android:width=&quot;640dp&quot;"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/res/drawable-land/dark_background.xml"
+ line="8"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
+ errorLine1=" android:width=&quot;360dp&quot;"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/res/drawable/dark_background.xml"
+ line="8"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
+ errorLine1=" android:width=&quot;640dp&quot;"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/res/drawable-land-night/home_background.xml"
+ line="8"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
+ errorLine1=" android:width=&quot;640dp&quot;"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/res/drawable-land/home_background.xml"
+ line="8"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
+ errorLine1=" android:width=&quot;360dp&quot;"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/res/drawable-night/home_background.xml"
+ line="8"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
+ errorLine1=" android:width=&quot;360dp&quot;"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/res/drawable/home_background.xml"
+ line="8"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
+ errorLine1=" android:width=&quot;300dp&quot;"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/res/drawable/ic_error_session_crashed.xml"
+ line="7"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
+ errorLine1=" android:width=&quot;384dp&quot;"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/res/drawable/wordmark2.xml"
+ line="7"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="&quot;media&quot; is a common misspelling; did you mean &quot;medier&quot;?"
+ errorLine1=" &lt;string name=&quot;preference_privacy_block_social&quot;>Blokker sosiale media-sporere&lt;/string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-nb-rNO/strings.xml"
+ line="296"
+ column="68"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Repeated word &quot;zaman&quot; in message: possible typo"
+ errorLine1=" &lt;string name=&quot;preference_studies_summary&quot;>Firefox zaman zaman araştırmalar yükleyip çalıştırabilir.&lt;/string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-tr/strings.xml"
+ line="834"
+ column="55"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Ha\&apos;át\&apos;íí \&apos;ániidígo \&apos;ádaalyaa dóó łahgo \&apos;ádaalyaa?&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-nv/strings.xml"
+ line="12"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Lou bees&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-wo/strings.xml"
+ line="12"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Ինչն է նոր&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hy-rAM/strings.xml"
+ line="14"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Novedatz&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-an/strings.xml"
+ line="15"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Is Geal Gach Nua&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ga-rIE/strings.xml"
+ line="15"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Kabar Anyar&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-jv/strings.xml"
+ line="15"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Musuq imakuna&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-quy/strings.xml"
+ line="15"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Yeniliklər&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="16"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>নতুন কি আছে&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="16"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>གནས་ཚུལ་གསར་པ།&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="16"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>નવું શું છે&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="16"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Axi it&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="16"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Perkembangan Terbaru&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="16"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Baam yak&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pai/strings.xml"
+ line="16"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Ndezvipi zvitsva&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="16"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Seet ci sutura&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-wo/strings.xml"
+ line="24"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Գաղտնի որոնում&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hy-rAM/strings.xml"
+ line="27"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Buscar en privau&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-an/strings.xml"
+ line="28"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Cuardach Príobháideach&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ga-rIE/strings.xml"
+ line="28"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Asuy mask\&apos;ay&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-quy/strings.xml"
+ line="28"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Kit alim tsinat&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="30"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>ཕྱིར་མི་བསྒྲགས་པའི་ཐོག་འཚོལ་བཤེར།&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="32"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_tracking_protection&quot;>Protección contra lo seguimiento&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-an/strings.xml"
+ line="34"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_tracking_protection&quot;>Cosaint ar Lorgaireacht&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ga-rIE/strings.xml"
+ line="34"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_tracking_protection&quot;>Tarichiqkunamanta jark\&apos;ana&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-quy/strings.xml"
+ line="34"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Məxfi Axtar&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="34"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>ব্যক্তিগতভাবে অনুসন্ধান&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="34"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>ખાનગી શોધ&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="34"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Cari secara Rahsia&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="34"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Jabchu tpaay chŕmee&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pai/strings.xml"
+ line="34"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Tsvaga pachivande&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="34"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_tracking_protection&quot;>K\&apos;anix abal yab ka exláj jant\&apos;oj a aliyamal&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="36"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_tracking_protection&quot;>རྗེས་འདེད་སྲུང་སྐྱོབ།&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="37"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_tracking_protection&quot;>İzlənmə Qoruması&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="40"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_tracking_protection&quot;>ট্র্যাকিং সুরক্ষা&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="40"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_tracking_protection&quot;>ટ્રેકિંગ રક્ષણ&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="40"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_tracking_protection&quot;>Perlindungan Penjejakan&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="40"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_tracking_protection&quot;>Kabwik ŕmechu ŕboochu&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pai/strings.xml"
+ line="40"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_tracking_protection&quot;>Kuchengetedzwa pakuteverwa&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="40"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_general_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_general_summary&quot;>Ok\&apos;ox eyendhanél, xeklek, káwintal&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="40"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_general_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_general_summary&quot;>སྔོན་སྒྲིག་བཤར་ཆས། རེའུ་མིག་བཟོ་རྟགས། སྐད་ཡིག&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="41"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_general_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_general_summary&quot;>Əsas səyyah, vərəqlər və dil&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="44"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_general_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_general_summary&quot;>ডিফল্ট ব্রাউজার, ট্যাব, ভাষা&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="44"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_general_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_general_summary&quot;>ડિફૉલ્ટ બ્રાઉઝર, ટૅબ્સ, ભાષા&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="44"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_general_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_general_summary&quot;>Pelayar, tab, bahasa piawai&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="44"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_general_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_general_summary&quot;>Sal amchu yooch, muul chmichu, kwaawchu&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pai/strings.xml"
+ line="44"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_general_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_general_summary&quot;>Bhurauza rechigarire, matebhu, mutauro&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="44"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Wat’s nuut?&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-af/strings.xml"
+ line="47"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Qué hai nuevo&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ast/strings.xml"
+ line="47"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>kuna yatiyäwis utji&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ay/strings.xml"
+ line="47"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Túumbenilo\&apos;ob&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-yua/strings.xml"
+ line="47"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>కొత్తది ఏమిటి&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-te/strings.xml"
+ line="49"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_topsite_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_topsite_summary&quot;>ka lek\&apos;wtsiy abal kin kwetém kidhbay 450 i URLs abal ebál, axi lej exladh, ti jolataláb ju\&apos;taj it alim.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="49"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>ဘာအသစ်တွေ ပါဝင်ပါသလဲ။&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-my/strings.xml"
+ line="50"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Ce este nou&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ro/strings.xml"
+ line="50"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_user_list_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_user_list_summary&quot;>ka lek\&apos;wtsiy abal kin kwetém kidhbay 450 i URLs abal ebál, axi lej exladh, ti jolataláb ju\&apos;taj it alim.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="50"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_no_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_no_option&quot;>Ora&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-jv/strings.xml"
+ line="50"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot; moz:RemovedIn=&quot;116&quot; tools:ignore=&quot;UnusedResources&quot;>नया की छै&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-anp/strings.xml"
+ line="51"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_yes_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_yes_option&quot;>Ya&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-jv/strings.xml"
+ line="51"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Ne jańalıq&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-kaa/strings.xml"
+ line="55"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_topsite_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_topsite_summary&quot;>Ünvan sətrində məşhur 450 saytı avtomatik tamamlamaq üçün aktivləşdirin.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="55"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_topsite_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_topsite_summary&quot;>অ্যাড্রেস বারে 450 টিরও বেশি জনপ্রিয় URL স্বয়ংপূরণ করা সক্ষম করুন।&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="55"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_topsite_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_topsite_summary&quot;>સરનામાં બારમાં 450 કરતાં વધુ લોકપ્રિય URLs ને સ્વતઃપૂર્ણ કરવા માટે સક્રીય કરો.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="55"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_topsite_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_topsite_summary&quot;>Dayakan untuk autolengkap lebih daripada 450 URL popular di bar alamat.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="55"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_topsite_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_topsite_summary&quot;>Nmakchum 450 chayoomm chublwiich paa katee uchu URLs wachu tñurchuhal.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pai/strings.xml"
+ line="55"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_topsite_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_topsite_summary&quot;>Batidza kuti otokombuliti iitike pamanzwi anosvika 450 akakurumbira URLs mu adhiresi bha.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="55"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>ما الجديد&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Novedades&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-es-rMX/strings.xml"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>امکانات جدید&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-fa/strings.xml"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>क्या नया है&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hi-rIN/strings.xml"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot; moz:RemovedIn=&quot;116&quot; tools:ignore=&quot;UnusedResources&quot;>Što je novo&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hr/strings.xml"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot; moz:RemovedIn=&quot;116&quot; tools:ignore=&quot;UnusedResources&quot;>Yang Baru&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-in/strings.xml"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Pandr\&apos;yw nowydh&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-kw/strings.xml"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Kas naujo&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>नवीन काय आहे&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Tay Yankwik&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ppl/strings.xml"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Шта је ново&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sr/strings.xml"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Nuin si hua nanj&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-trs/strings.xml"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Mis on uut?&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="57"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>नयाँ के छ&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ne-rNP/strings.xml"
+ line="57"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>نواں کیا ہے؟&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-skr/strings.xml"
+ line="57"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Jimpanhi ampe&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-tsz/strings.xml"
+ line="57"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>نیا کیا ہے&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ur/strings.xml"
+ line="57"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Ko kùb&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-zam/strings.xml"
+ line="57"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_user_list_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_user_list_summary&quot;>Ünvan sətrində məşhur 450 saytı avtomatik tamamlamaq üçün aktivləşdirin.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="57"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_user_list_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_user_list_summary&quot;>অ্যাড্রেস বারে 450 টিরও বেশি জনপ্রিয় URL স্বয়ংপূরণ করা সক্ষম করুন।&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="57"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_user_list_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_user_list_summary&quot;>સરનામાં બારમાં 450 કરતાં વધુ લોકપ્રિય URLs ને સ્વતઃપૂર્ણ કરવા માટે સક્રીય કરો.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="57"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_user_list_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_user_list_summary&quot;>Dayakan untuk autolengkap lebih daripada 450 URL popular di bar alamat.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="57"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_user_list_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_user_list_summary&quot;>Mnmakchum 450 chayoomm chublwich paa katee URLs tñur chmichu hal chmii.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pai/strings.xml"
+ line="57"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_user_list_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_user_list_summary&quot;>Batidza kuti otokombuliti iitike pamanzwi anosvika 450 akakurumbira URLs mu adhiresi bha.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="57"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;menu_whats_new&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;menu_whats_new&quot;>Ka\&apos;t ootzib\&apos;al&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ixl/strings.xml"
+ line="58"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_no_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_no_option&quot;>Ոչ&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hy-rAM/strings.xml"
+ line="59"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>Tuduhaké tip layar&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-jv/strings.xml"
+ line="60"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_yes_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_yes_option&quot;>Այո&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hy-rAM/strings.xml"
+ line="61"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_no_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_no_option&quot;>Níl&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ga-rIE/strings.xml"
+ line="66"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_yes_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_yes_option&quot;>Tá&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ga-rIE/strings.xml"
+ line="67"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_no_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_no_option&quot;>No&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-an/strings.xml"
+ line="72"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_no_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_no_option&quot;>Mana&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-quy/strings.xml"
+ line="72"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_yes_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_yes_option&quot;>Sí&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-an/strings.xml"
+ line="74"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_yes_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_yes_option&quot;>Ari&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-quy/strings.xml"
+ line="74"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_no_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_no_option&quot;>མིན།&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="75"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_yes_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_yes_option&quot;>འགྲིག&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="76"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_security_biometric_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_security_biometric_summary&quot;>གལ་ཏེ་URLསྔོན་ནས་མཉེན་ཆས་ཀྱིས་ཁ་ཕྱེ་ཡོད་ཚེ་མཛུབ་ཐེལ་བེད་སྤྱོད་དེ་%1$sཁ་འབྱེད། གསངས་ཐབས་སྤྱོད་འགོ་རྩོམ་ཡོང་།&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="78"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_no_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_no_option&quot;>Ibaj&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="79"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_yes_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_yes_option&quot;>Aníts&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="82"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_security_biometric_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_security_biometric_summary&quot;>&quot;A ch\&apos;uchub ne\&apos;ets kin japiy %1$s max an URL k\&apos;wajatits japidh ta eyendhanélil. Ne\&apos;ets ka japin an tsinat alix. \n\n&quot;&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="84"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Soek privaat&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-af/strings.xml"
+ line="87"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_no_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_no_option&quot;>Xeyr&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="89"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_no_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_no_option&quot;>না&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="89"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_no_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_no_option&quot;>ના&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="89"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_no_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_no_option&quot;>Tidak&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="89"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_no_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_no_option&quot;>Pem&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pai/strings.xml"
+ line="89"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_no_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_no_option&quot;>Kwete&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="89"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_yes_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_yes_option&quot;>Bəli&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="92"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_yes_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_yes_option&quot;>হ্যাঁ&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="92"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_yes_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_yes_option&quot;>હા&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="92"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_yes_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_yes_option&quot;>Ya&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="92"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_yes_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_yes_option&quot;>E\&apos;e&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pai/strings.xml"
+ line="92"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_privacy_should_block_cookies_yes_option&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_yes_option&quot;>Hongu&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="92"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_security_biometric_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_security_biometric_summary&quot;>Əgər ünvan artıq tətbiqdə açıqdırsa barmaq iziniz %1$s səyyahının kilidini aça bilər. Görünməzlik aktivləşdiriləcək.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="94"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_security_biometric_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_security_biometric_summary&quot;>একটি URL যদি ইতিমধ্যে অ্যাপ এ খোলা থাকে আপনার আঙ্গুলের ছাপ %1$s আনলক করতে পারবে। স্টিল্থ্ চালু করা হবে।&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="94"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_security_biometric_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_security_biometric_summary&quot;>જો એપ્લિકેશનમાં કોઈ URL પહેલેથી ખુલ્લું હોય તો તમારા આંગળીના નીશાનથી %1$s ને અનલૉક કરી શકો છો. ગોપનીયતા ચાલુ હશે.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="94"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_security_biometric_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_security_biometric_summary&quot;>Cap jari anda boleh membuka %1$s jika URL telah dibuka dalam aplikasi. Halimunan akan diaktifkan.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="94"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_security_biometric_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_security_biometric_summary&quot;>Mŕal yal hay chsol kyaaw yuyi %1$s o URL ŕit kur sol ñwam. Sigiil hay yemik soola.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pai/strings.xml"
+ line="94"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_security_biometric_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_security_biometric_summary&quot;>Mifananidzo yako yeminwe inogona kuzarura %1$s kana URL isati yavhurwa mu-app. Simba richashandurwa.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="94"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Guetar de mou priváu&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ast/strings.xml"
+ line="94"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Jiwasak thaqhaña&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ay/strings.xml"
+ line="94"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>བརྙན་ཡོལ་གཙོ་བའི་ཐབས་མཆོག་འཆར།&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="96"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="105"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Kaxta\&apos;ak men chen teech&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-yua/strings.xml"
+ line="105"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>అంతరంగికంగా వెతుకు&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-te/strings.xml"
+ line="106"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>Ana Ekranı məsləhətlərini göstər&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="115"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>হোম স্ক্রিন টিপস দেখান&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="115"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>મુખ્ય સ્ક્રીન ટીપ્સ બતાવો&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="115"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>Papar panduan skrin utama&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="115"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>Pantallhak paa chknauwch sak chmiich&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pai/strings.xml"
+ line="115"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>Ratidza mazano ezvikwangwani&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="115"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>သီးသန့်လုံခြုံစွာ ရှာဖွေပါ&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-my/strings.xml"
+ line="117"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Caută într-un mod privat&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ro/strings.xml"
+ line="117"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>ابحث مع الحفاظ على الخصوصية&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="123"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>निजी तौर पर खोज&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hi-rIN/strings.xml"
+ line="123"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Ieškoti privačiai&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="123"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>गुप्ततेने शोधा&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="123"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>निजी रूपमा खोज्नुहोस्&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ne-rNP/strings.xml"
+ line="124"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;text_selection_search_action&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Otsi privaatselt&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="125"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;dialog_addtohomescreen_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_tracking_protection&quot;>Wii ñall suy ubbeeku kaaraange lank-toppaate gi du dox&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-wo/strings.xml"
+ line="144"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_tracking_protection&quot;>मागोवा सुरक्षा&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="154"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;dialog_addtohomescreen_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_tracking_protection&quot;>Դյուրանցումը կբացվի Հետագծման պաշտպանությունը անջատած&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hy-rAM/strings.xml"
+ line="155"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;dialog_addtohomescreen_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_tracking_protection&quot;>མྱུར་ལམ་གྱིས་ཁ་འབྱེད་ཚེ་རྗེས་འདེད་སྲུང་སྐྱོབ་མི་སྤྱོད།&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="157"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_general_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_general_summary&quot;>पूर्वनिर्धारित ब्राउझर, टॅब, भाषा&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="166"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;dialog_addtohomescreen_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_tracking_protection&quot;>Este alcorce s\&apos;ubrirá quan la protección contra seguimiento siga desactivada&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-an/strings.xml"
+ line="168"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;dialog_addtohomescreen_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_tracking_protection&quot;>Chiqan yaykuna kicharikunqa kay wañuchisqa tarichiq jark\&apos;akuywan&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-quy/strings.xml"
+ line="168"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;dialog_addtohomescreen_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_tracking_protection&quot;>An dhubat bél ne\&apos;ets ka japin yab k\&apos;anidh&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="181"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_title&quot;>%1$s སྒོ་ཕྱེ།&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="182"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_description&quot;>མཛུབ་ཐེལ་ཚོར་ཤེས་ལ་ཐུག་ནས་མུ་མཐུད།&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="183"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_new_session&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_new_session&quot;>གླིང་མོལ་གསར་པ།&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="184"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_title&quot;>འཚོལ་བཤེར་འབྲེལ་ཡོད་འོས་སྦྱོར་དགོས་སམ།&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="188"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_subtitle&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle&quot;>ཁྱེད་ལ་སྤྲོ་བ་ཡོད་པའི་ནང་དོན་མཁོ་འདོན་ཆེད་དུ། %1$s ཡིས་རང་འཇུག་པའི་འཚོལ་བྱའི་ནང་དོན་རང་འདེམ་པའི་འཚོལ་བཤེར་དྲ་བར་འདོན་སྤྲོད་བྱ་དགོས།. %2$s.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="189"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_subtitle_learnmore&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle_learnmore&quot;>དེ་བས་མང་།&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="190"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;dialog_addtohomescreen_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_tracking_protection&quot;>Qısayol İzlənmə Qoruması sönülü olaraq açılacaq&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="193"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;dialog_addtohomescreen_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_tracking_protection&quot;>শর্টকাট ট্র্যাকিং সুরক্ষা নিষ্ক্রিয়তার মাধ্যমে খুলবে&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="193"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;dialog_addtohomescreen_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_tracking_protection&quot;>શોર્ટકટ ટ્રેકિંગ પ્રોટેક્શન અક્ષમ સાથે ખુલશે&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="193"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;dialog_addtohomescreen_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_tracking_protection&quot;>Perlindungan Penjejakan dinyahdayakan apabila dibuka menggunakan pintasan&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="193"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;dialog_addtohomescreen_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_tracking_protection&quot;>Mir mir januk jabchuha ñsool ŕbok janchu ha kos bootem sola&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pai/strings.xml"
+ line="193"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;dialog_addtohomescreen_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_tracking_protection&quot;>Shortcut ichazaruka neTracking Protection yakavharwa&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="193"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_request_desktop&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_request_desktop&quot;>&quot;དྲ་ངོས་གང་ག་གཟིགས་འདོད་དམ། %1$s དཀར་ཆག་ &amp;gt; ཅོག་ངོས་དྲ་ཚིགས་རེ་ཞུ་བྱེད།&quot;&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="197"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_topsite_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_topsite_summary&quot;>450 हुन अधिक लोकप्रिय URL पत्ता पट्टीमध्ये स्वयंपूर्ण करणे सक्षम करा.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="198"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_explain_allowlist&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_explain_allowlist&quot;>ཡིད་རྟོན་དྲ་ཚིགས་ཡིན་ནམ།\n ཆོག་ཐོ་ཡིས་དྲ་ཚིགས་རྗེས་འདེད་སྲུང་སྐྱོབ་དང་ཡིད་རྟོན་མི་སྤྱོད།&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="198"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_safe_browsing&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_safe_browsing&quot;>བདེ་འཇགས་བཤར་ལྟ།&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bo/strings.xml"
+ line="199"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_autocomplete_user_list_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_user_list_summary&quot;>450 हुन अधिक लोकप्रिय URL पत्ता पट्टीमध्ये स्वयंपूर्ण करणे सक्षम करा.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="204"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_title&quot;>Ka japiy %1$s&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="214"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_title&quot;>Soolch %1$s&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pai/strings.xml"
+ line="214"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_description&quot;>Ka taka\&apos; an ajum k\&apos;ot\&apos;bil ch\&apos;uchub abal kit otsits.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="215"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_new_session&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_new_session&quot;>It eyendhanél&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="216"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_title&quot;>¿A le\&apos; ka lek\&apos;wtsiy an eyendhanél axi ti uchál jant\&apos;o ka aliy?&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="220"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_subtitle&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle&quot;>Abal kit olchin jant\&apos;oj ka aliy, %1$s a yejenchal ka abna\&apos; axi a dhuchál ti eyendhaxtaláb abal kit almáts %2$s.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="221"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_subtitle_learnmore&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle_learnmore&quot;>Ka exla\&apos; más&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="222"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_title&quot;>%1$s kilidini aç&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="226"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_title&quot;>আনলক %1$s&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="226"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_title&quot;>%1$sને ખોલો&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="226"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_title&quot;>Buka %1$s&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="226"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_title&quot;>Vhura %1$s&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="226"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_description&quot;>Davam etmək üçün barmaq izi oxuyucusuna toxunun.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="227"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_description&quot;>চালিয়ে যেতে আঙ্গুলের ছাপ সেন্সর স্পর্শ করুন।&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="227"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_description&quot;>ચાલુ રાખવા માટે ફિંગરપ્રિન્ટ સેન્સરને સ્પર્શ કરો.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="227"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_description&quot;>Sentuh sensor cap jari untuk meneruskan.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="227"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_description&quot;>Bata panoiswa chigunwe kuti zvivhure.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="227"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_new_session&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_new_session&quot;>Yeni Sessiya&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="228"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_new_session&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_new_session&quot;>নতুন সেশন&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="228"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_new_session&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_new_session&quot;>નવું સત્ર&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="228"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_new_session&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_new_session&quot;>Sesi Baru&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="228"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_new_session&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_new_session&quot;>Sesheni Itsva&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="228"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_title&quot;>Axtarış məsləhətlərini aktiv etmək istərdiniz?&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="232"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_title&quot;>আপনি কি অনুসন্ধান পরামর্শ সক্রিয় করতে চান?&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="232"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_title&quot;>શું તમે શોધ સૂચનો ચાલુ કરવા માંગો છો?&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="232"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_title&quot;>Adakah anda mahu mengaktifkan cadangan carian?&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="232"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_title&quot;>Ungada kubatidza betsero yekutsvaga here?&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="232"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_request_desktop&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_request_desktop&quot;>A le\&apos; ka meta\&apos; an xeklek ta mexajil%1$s Takuxtaláb &amp;gt; Ka konoy an xeklek ta mexajil&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hus/strings.xml"
+ line="232"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_subtitle&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle&quot;>Axtarış məsləhətlərini almaq üçün %1$s ünvan sətrinə yazdıqlarınızı seçdiyiniz axtarış mühərriyinə göndərməlidir. %2$s.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="233"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_subtitle&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle&quot;>অনুসন্ধানের পরামর্শ পেতে হলে, %1$s আপনি অ্যাড্রেস বারে যা টাইপ করেন সেটি আপনার বাছাইকৃত অনুসন্ধান ইঞ্জিনের নিকট পাঠাতে হবে। %2$s।&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="233"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_subtitle&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle&quot;>શોધ સૂચનો મેળવવા માટે, તમે જે શોધ એન્જિન પસંદ કર્યું છે તે સરનામાં બારમાં તમે શું લખો છો તે %1$s ને મોકલવાની જરૂર છે. %2$s.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="233"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_subtitle&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle&quot;>Untuk mendapatkan cadangan carian, %1$s perlu menghantar apa yang anda taip dalam bar alamat kepada enjin carian yang dipilih. %2$s.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="233"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_subtitle&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle&quot;>Kuti uwane betsero yekutsvaga, %1$s inoda kutumira zvawanyora kune chikamu chinonyorwa mashoko ekutsvaga kuinjini yekutsvaga yawasarudza. %2$s.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="233"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_subtitle_learnmore&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle_learnmore&quot;>Ətraflı öyrən&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="234"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_subtitle_learnmore&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle_learnmore&quot;>আরও জানুন&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="234"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_subtitle_learnmore&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle_learnmore&quot;>વધુ શીખો&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="234"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_subtitle_learnmore&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle_learnmore&quot;>Ketahui selanjutnya&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="234"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;enable_search_suggestion_subtitle_learnmore&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle_learnmore&quot;>Dzidza zvimwe&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="234"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_request_desktop&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_request_desktop&quot;>Bütöv masaüstü saytını görmək istəyirsiniz?%1$s Menyu &amp;gt; Masaüstü saytını istə&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="244"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_request_desktop&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_request_desktop&quot;>এর বদলে সম্পূর্ণ ডেস্কটপ সাইট দেখবেন?%1$s মেনু &amp;gt; ডেস্কটপ সাইট অনুরোধ করুন&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="244"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_request_desktop&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_request_desktop&quot;>તેના બદલે સંપૂર્ણ ડેસ્કટૉપ સાઇટ જુઓ?%1$s મેનૂ &amp;gt; ડેસ્કટૉપ સાઇટની વિનંતી કરો&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="244"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_request_desktop&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_request_desktop&quot;>Mahu paparan laman desktop?%1$s Menu &amp;gt; Pinta laman desktop&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="244"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_request_desktop&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_request_desktop&quot;>Pane kuti uone yakazara desktop site?%1$s Menyu &amp;gt; Kumbira nzvimbo ye desktop&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="244"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_explain_allowlist&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_explain_allowlist&quot;>Güvəndiyiniz saytdır?\n İcazə siyahısı tanıdığınız və güvəndiyiniz saytlarda İzlənmə Qorumasını söndürür.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="246"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_explain_allowlist&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_explain_allowlist&quot;>বিশ্বস্ত সাইট?\n Allowlist আপনার পরিচিত এবং বিশ্বাসযোগ্য সাইটের জন্য ট্র্যাকিং সুরক্ষা অক্ষম করে।&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="246"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_explain_allowlist&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_explain_allowlist&quot;>વિશ્વસનીય સાઇટ?\n તમે જાણો છો અને વિશ્વાસ કરો છો તે સાઇટ્સ માટે પરવાનગી-સૂચિ એ ટ્રેકિંગ સુરક્ષાને નિષ્ક્રીય કરે છે.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="246"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_explain_allowlist&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_explain_allowlist&quot;>Laman yang dipercayai?\n Allowlist menyahaktifkan Perlindungan Penjejakan untuk laman yang anda kenali dan percayai.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="246"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_explain_allowlist&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_explain_allowlist&quot;>Nzvimbo yakatendwa?\n Chibvumirano chinodzivisa Kuchengetedzwa Kwekuchengetedza kwemasayithi ounoziva uye kuvimba.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="246"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_safe_browsing&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_safe_browsing&quot;>Təhlükəsiz Səyahət&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="250"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_safe_browsing&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_safe_browsing&quot;>নিরাপদ ব্রাউজিং&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-bn/strings.xml"
+ line="250"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_safe_browsing&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_safe_browsing&quot;>સુરક્ષિત બ્રાઉઝિંગ&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-gu-rIN/strings.xml"
+ line="250"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_safe_browsing&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_safe_browsing&quot;>Pelayaran Selamat&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="250"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_safe_browsing&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_safe_browsing&quot;>Kutsvaga Kwakachengeteka&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-sn/strings.xml"
+ line="250"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_security_biometric_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_security_biometric_summary&quot;>အကယ်၍ URL ကို အက်ပ်ထဲတွင် ဖွင့်ပြီးသားဖြစ်ပါက သင့်လက်ဗွေသည် %1$s ကို ဖွင့်မည်။ Stealth စနစ် အသက်ဝင်ပါမည်။&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-my/strings.xml"
+ line="256"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-yua/strings.xml"
+ line="264"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>Amosar conseyos na pantalla d\&apos;aniciu&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ast/strings.xml"
+ line="267"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_security_biometric_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_security_biometric_summary&quot;>यदि ऐप्प में पहले ही कोई URL खुली हो तो आपकी फिंगरप्रिंट %1$s को अनलॉक कर सकती है. गोपनीयता चालू हो जायेगी।&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hi-rIN/strings.xml"
+ line="279"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_security_biometric_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_security_biometric_summary&quot;>जर एखादी URL आधीच अँप मध्ये उघडली असेल तर आपल्या बोटाचा ठसा %1$s उघडू शकतो. स्टेल्थ चालू होईल.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="297"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;105&quot; name=&quot;preference_homescreen_tips&quot; tools:ignore=&quot;UnusedResources&quot;>ముంగిలి తెర చిట్కాలను చూపించు&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-te/strings.xml"
+ line="300"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_security_biometric_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_security_biometric_summary&quot;>يمكن للبصمة إلغاء قفل %1$s إن كان مفتوحًا في التطبيق أحد العناوين. سيُفعّل وضع التخفّي.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="300"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_security_biometric_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_security_biometric_summary&quot;>Naudojant jūsų piršto antspaudą, galima atrakinti „%1$s“ programą, kai joje jau yra atvertas tinklalapis. Bus įjungtas slaptumas.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="300"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_security_biometric_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_security_biometric_summary&quot;>यदि एपमा पहिला नै URL खोलिएको छ भने तपाईंको फिङ्गगरप्रिण्टले %1$s अनलक गर्न सक्छ।"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ne-rNP/strings.xml"
+ line="302"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_security_biometric_summary&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;102&quot; name=&quot;preference_security_biometric_summary&quot; tools:ignore=&quot;UnusedResources&quot;>Sinu sõrmejälg saab %1$se lahti lukustada, kui mingi URl on juba äpis avatud."
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="306"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>စတင်အသုံးပြုရာ ဖန်သားပြင်တွင် အကြံပြုချက်များ ပြပါ&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-my/strings.xml"
+ line="313"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>मूल पटल युक्तियाँ दिखाएँ&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hi-rIN/strings.xml"
+ line="343"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>मुख्य पृष्ठाच्या सूचना दाखवा&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="361"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>اعرض الفوائد في شاشة البداية&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="364"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>Rodyti pradžios ekrano patarimus&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="365"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>गृह स्क्रिन सुझावहरु देखाउनुहोस्&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ne-rNP/strings.xml"
+ line="369"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_homescreen_tips&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_homescreen_tips&quot;>Kuvatakse avakuva näpunäiteid&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="373"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;onboarding_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;106&quot; name=&quot;onboarding_title&quot;>%1$sకి స్వాగతం!&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-te/strings.xml"
+ line="429"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;onboarding_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;onboarding_title&quot;>Tere tulemast %1$sesse!&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="478"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;onboarding_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;onboarding_description&quot;>Järgmise taseme privaatne lehitsemine, puhuks kui vajad seda&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="481"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_new_session&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;103&quot; name=&quot;biometric_auth_new_session&quot;>Sesión&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ast/strings.xml"
+ line="484"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;onboarding_incognito_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;onboarding_incognito_title&quot;>Kus inkognito kohtub nähtamatusega&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="484"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;onboarding_incognito_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;onboarding_incognito_description&quot;>%s on esmajoones privaatsusele orienteeritud brauser, millesse on sisse ehitatud eriti tugev jälitamise ja küpsiste vastane kaitse.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="488"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;onboarding_history_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;onboarding_history_title&quot;>Lehitse nii nagu seda poleks kunagi juhtunud&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="491"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;onboarding_history_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;100&quot; name=&quot;onboarding_history_description&quot; tools:ignore=&quot;UnusedResources&quot;>Üks puudutus kustutab lehitsemise ajaloo ja küpsised ning takistab reklaamidel sinu jälitamist.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="494"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;onboarding_history_description2&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;onboarding_history_description2&quot;>Üks puudutus kustutab lehitsemise ajaloo ja küpsised ning takistab reklaamidel sinu jälitamist.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="495"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;onboarding_protection_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;onboarding_protection_title&quot;>Privaatsus, mis sobib igas olukorras&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="498"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;onboarding_protection_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;onboarding_protection_description&quot;>Kui sinu lehitsemine vajab muutust, siis on privaatsuse taset lihtne suurendada või vähendada.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="501"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;onboarding_start_browsing&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;onboarding_start_browsing&quot;>Alusta veebilehitsemist&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="504"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;dialog_addtohomescreen_tracking_protection&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_tracking_protection&quot;>मागोवा सुरक्षा निष्क्रिय राहून शॉर्टकट उघडतील&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="528"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_title&quot;>%1$s ကို ဖွင့်ရန်&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-my/strings.xml"
+ line="559"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_description&quot;>ဆက်သွားရန် လက်ဗွေအာရုံခံစနစ်ကို ထိတွေ့ပါ။&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-my/strings.xml"
+ line="562"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_new_session&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_new_session&quot;>Session အသစ်&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-my/strings.xml"
+ line="566"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;cfr_for_cookie_banner_underline_settings&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;cfr_for_cookie_banner_underline_settings&quot; moz:RemovedIn=&quot;111&quot; tools:ignore=&quot;UnusedResources&quot;>sazlawlar&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-kaa/strings.xml"
+ line="569"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;103&quot; name=&quot;biometric_auth_title&quot;>%1$s‌కు తాళంతీయండి&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-te/strings.xml"
+ line="571"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;103&quot; name=&quot;biometric_auth_description&quot;>కొనసాగించడానికి వేలిముద్ర సెన్సారును తాకండి.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-te/strings.xml"
+ line="574"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_new_session&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;103&quot; name=&quot;biometric_auth_new_session&quot;>కొత్త సెషన్&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-te/strings.xml"
+ line="578"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_title&quot;>%1$s को खोलें&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hi-rIN/strings.xml"
+ line="620"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_description&quot;>जारी रखने के लिए फिंगरप्रिंट संवेदक स्पर्श करें।&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hi-rIN/strings.xml"
+ line="623"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_new_session&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_new_session&quot;>नया सत्र&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hi-rIN/strings.xml"
+ line="627"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_safe_browsing&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;97&quot; name=&quot;preference_category_safe_browsing&quot;>လုံခြုံသော ရှာဖွေခြင်း&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-my/strings.xml"
+ line="627"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_title&quot;>%1$s उघडा&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="639"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_description&quot;>पुढे चालू ठेवण्यासाठी बोटाच्या ठश्याच्या सेन्सर ला स्पर्श करा.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="642"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_new_session&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_new_session&quot;>नवीन सत्र&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="646"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_title&quot;>ألغِ قفل %1$s&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="684"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_description&quot;>المس مجسّ البصمة للمتابعة.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="687"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_title&quot;>Atrakinti „%1$s“&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="687"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_description&quot;>Palieskite piršto atspaudo jutiklį.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="690"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_disable_tracking_protection2&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_disable_tracking_protection2&quot;>साइट अनपेक्षितरित्या वागत आहे?\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="690"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_new_session&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_new_session&quot;>جلسة جديدة&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="691"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_new_session&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;biometric_auth_new_session&quot;>Naujas seansas&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="694"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_safe_browsing&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_safe_browsing&quot;>सुरक्षित ब्राउजिंग&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-hi-rIN/strings.xml"
+ line="695"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_request_desktop2&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_request_desktop2&quot;>साइटची पूर्ण आवृत्ती पाहू इच्छिता?\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="712"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_safe_browsing&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;preference_category_safe_browsing&quot;>आपले ब्राउझिंग सुरक्षित असो&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="728"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;cookie_banner_exception_panel_description_state_off_for_site&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;cookie_banner_exception_panel_description_state_off_for_site&quot; moz:RemovedIn=&quot;111&quot; tools:ignore=&quot;UnusedResources&quot;>%1$s weli kiejekua kitawelkwepilia isel ne itajtanilis ne cookie. Su se taishpejpenalis pal tatawelkwepilia tesu kanaj, %1$s weliskia kikwi muchi ne cookies pal kikutamima ne panti.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ppl/strings.xml"
+ line="732"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_disable_tracking_protection3&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_disable_tracking_protection3&quot;>أتظنّ أن محتوى الموقع ناقص أو أنه غريب؟\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="735"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;103&quot; name=&quot;biometric_auth_title&quot;>Lukusta %1$s lahti&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="737"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_disable_tracking_protection3&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_disable_tracking_protection3&quot;>Svetainėje trūksta turinio, arba ji veikia netinkamai?\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="738"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;cfr_for_cookie_banner&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;cfr_for_cookie_banner&quot; moz:RemovedIn=&quot;111&quot; tools:ignore=&quot;UnusedResources&quot;>%1$s kiejekua kitawelkwepilia ne itajtanilis ne cookie pal kikutamima ne ipajpanti ne cookie takakasua.\n\nShiktukti ken mugustuj ne ipanti ne cookie tik tachijchiwalis.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ppl/strings.xml"
+ line="739"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;cfr_for_cookie_banner_underline_settings&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;cfr_for_cookie_banner_underline_settings&quot; moz:RemovedIn=&quot;111&quot; tools:ignore=&quot;UnusedResources&quot;>tachijchiwalis&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ppl/strings.xml"
+ line="744"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_description&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;103&quot; name=&quot;biometric_auth_description&quot;>Jätkamiseks puuduta sõrmejäljeandurit.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="749"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;biometric_auth_new_session&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;103&quot; name=&quot;biometric_auth_new_session&quot;>Uus seanss&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="753"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_request_desktop2&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_request_desktop2&quot;>أتريد الاطلاع على النسخة الكاملة من الموقع؟\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="757"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_request_desktop2&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_request_desktop2&quot;>Norite matysi pilną svetainė versiją?\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="760"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_explain_allowlist3&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_explain_allowlist3&quot;>أتريد تعطيل الحماية الموسّعة من التعقب في المواقع التي تثق بها؟\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="765"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;errorpage_httpsonly_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;errorpage_httpsonly_title&quot; moz:RemovedIn=&quot;111&quot; tools:ignore=&quot;UnusedResources&quot;>Siz soraǵan sayt HTTPSdı qollap-quwatlamaydı&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-kaa/strings.xml"
+ line="767"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_explain_allowlist3&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_explain_allowlist3&quot;>Norite išjungti išplėstą apsaugą nuo stebėjimo patikimoje svetainėje?\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="768"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_fresh_look&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_fresh_look&quot;>تسأل عن الشكل؟ طبعًا لدينا مظهر جديد كليًا!\n اقرأ المزيد عنه وعن التحديثات الأخرى على %1$s.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="771"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_fresh_look&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_fresh_look&quot;>Kad jau klausiate, mes tikrai turime naują išvaizdą!\n Sužinokite apie tai, ir apie kitus „%1$s“ atnaujinimus.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="774"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_about_shortcuts&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_about_shortcuts&quot;>احفظ اختصارات المواقع التي تزورها بكثرة:\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="775"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_about_shortcuts&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_about_shortcuts&quot;>Sukurkite leistukus dažniausiai lankomoms svetainėms:\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="778"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_safe_browsing&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;97&quot; name=&quot;preference_category_safe_browsing&quot;>التصفّح الآمن&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="788"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_category_safe_browsing&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;97&quot; name=&quot;preference_category_safe_browsing&quot;>Saugusis naršymas&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="791"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_https_only_summary2&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;98&quot; name=&quot;preference_https_only_summary2&quot; tools:ignore=&quot;UnusedResources&quot;>سيُحاول التطبيق الاتصال تلقائيا بالمواقع مستعملًا ميفاق HTTPS لرفع الأمان. توفّر لك اتصالات HTTPS اتصالًا آمنًا ومعمّى بالمواقع التي تزورها.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="797"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_disable_tracking_protection3&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_disable_tracking_protection3&quot;>Saidil on sisu puudu või käitub imelikult?\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="798"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;preference_https_only_summary2&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string moz:removedIn=&quot;98&quot; name=&quot;preference_https_only_summary2&quot; tools:ignore=&quot;UnusedResources&quot;>Siekiant didesnio saugumo, automatiškai bandoma jungtis prie svetainių naudojant HTTPS. HTTPS ryšys užtikrina saugų, šifruotą prisijungimą prie jūsų lankomų svetainių.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="800"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_request_desktop2&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_request_desktop2&quot;>Soovid näha saidi täisversiooni?\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="826"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_explain_allowlist3&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_explain_allowlist3&quot;>Kas soovid usaldusväärse saidi jaoks jälitamisvastase kaitse välja lülitada?\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="834"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_fresh_look&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_fresh_look&quot;>Jah, meil on uus välimus!\n Loe selle ja teiste %1$se uuenduste kohta.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="840"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;tip_about_shortcuts&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;tip_about_shortcuts&quot;>Loo otseteed saitidele, mida külastad enim:\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="844"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;errorpage_httpsonly_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;errorpage_httpsonly_title&quot;>لا يدعم الموقع الذي طلبته ميفاق HTTPS&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="888"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;errorpage_httpsonly_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;errorpage_httpsonly_title&quot;>Bandoma atverti svetainė nepalaiko HTTPS&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="890"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;errorpage_httpsonly_message&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;errorpage_httpsonly_message&quot;>يحاول %1$s مبدئيا الاتصال باستعمال HTTPS لرفع مستوى الأمان. لتغيير هذا الإعداد أو للاطلاع على المزيد، انتقل إلى الإعدادات ← الخصوصية والأمان ← الأمان.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="891"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;errorpage_httpsonly_message&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;errorpage_httpsonly_message&quot;>Pagal numatytuosius nustatymus, siekiant didesnio saugumo, „%1$s“ bando jungtis naudojant HTTPS. Norėdami pakeisti šį nustatymą, arba sužinoti daugiau, eikite į meniu „Nustatymai“ &amp;gt; „Privatumas ir saugumas“ &amp;gt; „Saugumas“.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="892"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;errorpage_httpsonly_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;errorpage_httpsonly_title&quot;>Soovitud sait ei toeta HTTPSi&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="948"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;errorpage_httpsonly_message&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;errorpage_httpsonly_message&quot;>Vaikimisi üritab %1$s turvalisuse suurendamiseks saitidega ühenduda HTTPSi abil. Selle sätte muutmiseks või lisateabe saamiseks ava Sätted &amp;gt; Privaatsus ja turvalisus &amp;gt; Turvalisus.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="950"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;cfr_for_toolbar_shield_icon&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;cfr_for_toolbar_shield_icon&quot;>Näib, et see sait üritas sind jälitada. Saidi sätete ja jälitajate blokkimise statistika vaatamiseks puuduta kilpi.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="958"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;cfr_for_toolbar_delete_icon&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;cfr_for_toolbar_delete_icon&quot;>Vabane sellel seansil oma isiklikest andmetest, lehitsemise ajaloost ja muust, puudutades prügikasti nuppu. Proovi!&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="971"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;errorpage_httpsonly_title&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;errorpage_httpsonly_title&quot; moz:RemovedIn=&quot;111&quot; tools:ignore=&quot;UnusedResources&quot;>Ne sitioj taja tiktajtan tesu kiselia HTTPS&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ppl/strings.xml"
+ line="1009"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ExtraTranslation"
+ message="&quot;errorpage_httpsonly_message&quot; is translated here but not found in default locale"
+ errorLine1=" &lt;string name=&quot;errorpage_httpsonly_message&quot; moz:RemovedIn=&quot;111&quot; tools:ignore=&quot;UnusedResources&quot;>Ken achtitalijtuk, %1$s kiejekua musalua wan kikwi HTTPS pal mutajpia ukchupi. Pal tikpata ne tachijchiwalis u pal timumachtia ukchupi, shu tik Tachijchiwalis&amp;gt; Ichtakayu wan Tajpialis &amp;gt; Nejmachnemilis&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ppl/strings.xml"
+ line="1015"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="DataExtractionRules"
+ message="The attribute `android:allowBackup` is deprecated from Android 12 and higher and may be removed in future versions. Consider adding the attribute `android:dataExtractionRules` specifying an `@xml` resource which configures cloud backups and device transfers on Android 12 and higher."
+ errorLine1=" android:allowBackup=&quot;false&quot;"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="61"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="NotifyDataSetChanged"
+ message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort."
+ errorLine1=" notifyDataSetChanged()"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/org/mozilla/focus/autocomplete/AutocompleteListFragment.kt"
+ line="211"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="NotifyDataSetChanged"
+ message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort."
+ errorLine1=" notifyDataSetChanged()"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/org/mozilla/focus/exceptions/ExceptionsListFragment.kt"
+ line="216"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (1138 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M6.99998 6.00006V6.40406L5.55798 4.96206C6.90298 3.72306 8.60098 2.86106 10.489 2.56006L11.054 3.05806C11.022 3.34406 10.999 3.63306 10.999 3.92806C10.999 7.47406 13.307 10.4771 16.5 11.5291V12.7511L17 13.2511H18.5L19 12.7511V11.9341H19.006C19.649 11.9341 20.264 11.8331 20.862 11.6891L21.492 12.2441C21.416 14.6101 20.47 16.7521 18.972 18.3761L13.25 12.6541V11.2501L12.75 10.7501H11.346L8.59598 8.00006H8.99998L9.49998 7.50006V6.00006L8.99998 5.50006H7.49998L6.99998 6.00006ZM18.159 21.7801C18.305 21.9261 18.497 22.0001 18.689 22.0001C18.881 22.0001 19.073 21.9271 19.219 21.7801C19.512 21.4871 19.512 21.0121 19.219 20.7191L3.13402 4.63406C2.84102 4.34106 2.36602 4.34106 2.07302 4.63406C1.78002 4.92706 1.78002 5.40206 2.07302 5.69506L3.69672 7.31866C2.93108 8.68361 2.49194 10.2558 2.49194 11.9341C2.49194 17.1851 6.74894 21.4421 11.9999 21.4421C13.6787 21.4421 15.253 21.005 16.6194 20.2406L18.159 21.7801ZM4.99994 12.7501V11.2501L5.49994 10.7501H6.99994L7.49994 11.2501V12.7501L6.99994 13.2501H5.49994L4.99994 12.7501ZM9.49994 18.0001L8.99994 18.5001H7.49994L6.99994 18.0001V16.5001L7.49994 16.0001H8.99994L9.49994 16.5001V18.0001Z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_cookies_disable.xml"
+ line="11"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (1627 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M153.55,53.855h-3a0.5,0.5 0,0 1,0 -1h3a0.5,0.5 0,0 1,0 1zM142.55,53.855h-8.07a0.5,0.5 0,0 1,-0.452 -0.285,38.288 38.288,0 0,0 -1.976,-3.334 0.5,0.5 0,0 1,0.837 -0.549c0.393,0.6 1.445,2.295 1.889,3.168h7.771a0.5,0.5 0,0 1,0 1zM76.062,53.143h-3a0.5,0.5 0,0 1,0 -1h3a0.5,0.5 0,0 1,0 1zM65.062,53.143h-12a0.5,0.5 0,0 1,0 -1h12a0.5,0.5 0,0 1,0 1zM77.9,51.653a0.5,0.5 0,0 1,-0.473 -0.339c-0.1,-0.29 -0.2,-0.616 -0.311,-0.972a0.5,0.5 0,1 1,0.958 -0.287c0.1,0.344 0.2,0.656 0.3,0.937a0.5,0.5 0,0 1,-0.312 0.635,0.515 0.515,0 0,1 -0.162,0.026zM108.4,46.5a0.506,0.506 0,0 1,-0.468 -0.32,23.563 23.563,0 0,0 -2.181,-4.037 0.5,0.5 0,0 1,0.834 -0.553,27.46 27.46,0 0,1 1.718,2.983 10.516,10.516 0,0 1,3.679 -5.017,0.5 0.5,0 1,1 0.571,0.82 10.183,10.183 0,0 0,-3.663 5.724,0.5 0.5,0 0,1 -0.4,0.394 0.492,0.492 0,0 1,-0.09 0.006zM126.743,43.534a0.5,0.5 0,0 1,-0.339 -0.133q-0.361,-0.333 -0.734,-0.65a0.5,0.5 0,1 1,0.646 -0.762q0.39,0.33 0.766,0.678a0.5,0.5 0,0 1,-0.339 0.867zM76.821,41.81a0.563,0.563 0,0 1,-0.09 -0.008,0.5 0.5,0 0,1 -0.4,-0.582c0.792,-4.351 3.544,-7.229 8.181,-8.555a0.5,0.5 0,1 1,0.275 0.961c-4.24,1.213 -6.754,3.828 -7.473,7.773a0.5,0.5 0,0 1,-0.493 0.411zM122.713,40.589a0.5,0.5 0,0 1,-0.236 -0.06,12.614 12.614,0 0,0 -2.667,-1.082 0.5,0.5 0,0 1,0.262 -0.965,13.589 13.589,0 0,1 2.879,1.166 0.5,0.5 0,0 1,-0.237 0.94zM99.953,35.925a0.5,0.5 0,0 1,-0.28 -0.086q-0.4,-0.271 -0.82,-0.525a0.5,0.5 0,1 1,0.517 -0.855q0.444,0.267 0.865,0.553a0.5,0.5 0,0 1,-0.281 0.914zM95.483,33.725a0.5,0.5 0,0 1,-0.154 -0.024,16.412 16.412,0 0,0 -2.832,-0.647 0.5,0.5 0,0 1,0.137 -0.99,17.452 17.452,0 0,1 3,0.687 0.5,0.5 0,0 1,-0.154 0.976z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_error_session_crashed.xml"
+ line="36"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (3444 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M182.316,98.659a18.015,18.015 0,0 1,-9.94 -2.7,21.661 21.661,0 0,0 -21.783,0 19.662,19.662 0,0 1,-19.879 0,21.655 21.655,0 0,0 -21.78,0 19.65,19.65 0,0 1,-19.873 0,19.92 19.92,0 0,0 -10.886,-2.937 19.931,19.931 0,0 0,-10.889 2.938,18.005 18.005,0 0,1 -9.937,2.7 18,18 0,0 1,-9.936 -2.7,19.926 19.926,0 0,0 -10.888,-2.937 1,1 0,0 0,0 2,18 18,0 0,1 9.936,2.7 19.926,19.926 0,0 0,10.888 2.938,19.932 19.932,0 0,0 10.89,-2.938 18,18 0,0 1,9.937 -2.7,18 18,0 0,1 9.934,2.7 21.649,21.649 0,0 0,21.777 0,19.657 19.657,0 0,1 19.876,0 21.659,21.659 0,0 0,21.782 0,19.666 19.666,0 0,1 19.881,0 19.937,19.937 0,0 0,10.892 2.938,1 1,0 0,0 0,-2zM248.459,88.419a0.5,0.5 0,0 0,-0.7 -0.084,19.457 19.457,0 0,1 -9.2,3.162 11.427,11.427 0,0 1,-3.738 -0.029c2,-0.62 3.759,-1.488 4.548,-2.628 0.953,-1.376 0.377,-2.177 0.086,-2.457 -0.88,-0.849 -2.82,-0.664 -4.236,0.4 -1.065,0.8 -2.892,2.666 -2.477,4.2a29.546,29.546 0,0 1,-4.815 0.685,0.5 0.5,0 0,0 0.024,1h0.025a30.5,30.5 0,0 0,5.355 -0.79c0.88,0.715 2.643,0.915 5.337,0.616 6.261,-0.7 9.574,-3.263 9.712,-3.371a0.5,0.5 0,0 0,0.079 -0.704zM235.813,87.58a3.515,3.515 0,0 1,2.052 -0.735,1.318 1.318,0 0,1 0.891,0.259c0.31,0.3 0,0.859 -0.215,1.168 -0.734,1.06 -2.664,1.894 -4.832,2.472 -0.233,-0.777 0.881,-2.244 2.104,-3.164zM132.534,91.029a17.836,17.836 0,0 0,2.88 1.09,0.5 0.5,0 0,0 0.27,-0.963 16.942,16.942 0,0 1,-2.722 -1.031,0.5 0.5,0 1,0 -0.428,0.9zM113.649,88.229a0.483,0.483 0,0 0,0.168 -0.029,18.775 18.775,0 0,1 6.459,-1 20.224,20.224 0,0 1,5.081 0.581,0.5 0.5,0 1,0 0.249,-0.969 21.191,21.191 0,0 0,-5.33 -0.612,19.728 19.728,0 0,0 -6.795,1.062 0.5,0.5 0,0 0,0.168 0.971zM149.249,91.177a0.5,0.5 0,0 0,0.208 -0.046c0.81,-0.373 1.565,-0.782 2.3,-1.178a18.324,18.324 0,0 1,8.719 -2.718,0.5 0.5,0 0,0 -0.057,-1 19.381,19.381 0,0 0,-9.139 2.837c-0.716,0.388 -1.458,0.789 -2.237,1.148a0.5,0.5 0,0 0,0.209 0.954zM168.178,88.125a19.413,19.413 0,0 1,2.681 1.165,0.5 0.5,0 0,0 0.457,-0.891 20.737,20.737 0,0 0,-2.815 -1.222,0.5 0.5,0 0,0 -0.323,0.947zM139.461,92.781c0.328,0.02 0.666,0.034 1.017,0.043h0.013a0.5,0.5 0,0 0,0.013 -1,26.883 26.883,0 0,1 -0.981,-0.041 0.5,0.5 0,0 0,-0.061 1zM104.536,92.265a0.516,0.516 0,0 0,0.121 -0.015c0.345,-0.086 0.674,-0.18 0.992,-0.28a0.5,0.5 0,1 0,-0.3 -0.953q-0.448,0.142 -0.932,0.263a0.5,0.5 0,0 0,0.12 0.985zM174.427,91.141c0.3,0.141 0.619,0.276 0.944,0.4a0.486,0.486 0,0 0,0.184 0.035,0.5 0.5,0 0,0 0.184,-0.965c-0.308,-0.122 -0.6,-0.25 -0.893,-0.383a0.5,0.5 0,0 0,-0.418 0.908zM206.4,86.346a24.722,24.722 0,0 0,-2.812 -0.152h-0.246a0.5,0.5 0,0 0,0.006 1h0.239a23.378,23.378 0,0 1,2.7 0.146h0.058a0.5,0.5 0,0 0,0.057 -1zM211.357,87.632a18.905,18.905 0,0 0,-0.957 -0.373,0.5 0.5,0 1,0 -0.337,0.941c0.313,0.112 0.614,0.231 0.906,0.354a0.5,0.5 0,0 0,0.388 -0.922zM224.421,91.832a20.357,20.357 0,0 1,-4.951 -0.548,0.5 0.5,0 0,0 -0.241,0.971 21.357,21.357 0,0 0,5.192 0.577,0.5 0.5,0 1,0 0,-1zM78.626,87.193A18.422,18.422 0,0 1,88.8 89.95l0.942,0.506a0.5,0.5 0,0 0,0.468 -0.885l-0.934,-0.5a19.489,19.489 0,0 0,-10.649 -2.878,0.5 0.5,0 0,0 0,1zM195.367,87.829c-0.863,0.392 -1.662,0.824 -2.435,1.242a18.337,18.337 0,0 1,-8.572 2.708,0.5 0.5,0 0,0 0.031,1h0.032a19.407,19.407 0,0 0,8.985 -2.827c0.758,-0.409 1.542,-0.833 2.373,-1.211a0.5,0.5 0,1 0,-0.413 -0.91zM97.544,92.762c0.6,0.044 1.243,0.066 1.905,0.066q0.6,0 1.148,-0.022a0.5,0.5 0,0 0,0.479 -0.521,0.493 0.493,0 0,0 -0.52,-0.479 26.789,26.789 0,0 1,-2.94 -0.042,0.493 0.493,0 0,0 -0.535,0.462 0.5,0.5 0,0 0,0.463 0.536z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_error_session_crashed.xml"
+ line="39"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (940 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M93.5,151.647a18.413,18.413 0,0 1,10.172 2.757c0.313,0.17 0.627,0.34 0.945,0.507a0.5,0.5 0,1 0,0.465 -0.885c-0.314,-0.165 -0.624,-0.333 -0.934,-0.5a19.486,19.486 0,0 0,-10.648 -2.879,0.5 0.5,0 0,0 0,1zM112.419,157.214c0.518,0.038 1.067,0.056 1.631,0.062v-1a24.239,24.239 0,0 1,-1.56 -0.06,0.5 0.5,0 0,0 -0.073,1zM196.805,164.314a17.993,17.993 0,0 1,-9.934 -2.7,24.348 24.348,0 0,0 -4.74,-2.115q-0.039,1.039 -0.087,2.073a24.339,24.339 0,0 1,3.875 1.8,19.91 19.91,0 0,0 10.886,2.938 1,1 0,1 0,0 -2zM113.521,164.314a18,18 0,0 1,-9.935 -2.7,19.924 19.924,0 0,0 -10.887,-2.937 19.92,19.92 0,0 0,-10.886 2.938,18 18,0 0,1 -9.935,2.7 18,18 0,0 1,-9.934 -2.7,19.92 19.92,0 0,0 -10.886,-2.937 1,1 0,0 0,0 2,18 18,0 0,1 9.934,2.7 19.92,19.92 0,0 0,10.886 2.938,19.922 19.922,0 0,0 10.887,-2.937 19.644,19.644 0,0 1,19.869 0,19.923 19.923,0 0,0 10.887,2.938c0.222,0 0.432,-0.006 0.645,-0.011q-0.027,-1 -0.047,-2c-0.202,0.002 -0.397,0.007 -0.603,0.007z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_error_session_crashed.xml"
+ line="42"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (896 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M209.235,68.394h-12a0.5,0.5 0,0 1,0 -1h12a0.5,0.5 0,0 1,0 1zM254.817,68.21h-1.8a0.5,0.5 0,0 1,0 -1h1.8a0.5,0.5 0,0 1,0 1zM244.017,68.21h-1a0.5,0.5 0,0 1,0 -1h1a0.5,0.5 0,0 1,0 1zM240.526,65.329a0.5,0.5 0,0 1,-0.39 -0.187,18.3 18.3,0 0,0 -2,-2.129 0.5,0.5 0,1 1,0.668 -0.744,19.181 19.181,0 0,1 2.109,2.246 0.5,0.5 0,0 1,-0.389 0.813zM228.009,64.7a0.5,0.5 0,0 1,-0.466 -0.32,13.846 13.846,0 0,0 -3.855,-5.164 0.5,0.5 0,1 1,0.623 -0.781,14.475 14.475,0 0,1 3.623,4.438 5.416,5.416 0,0 1,3.107 -3.029,0.5 0.5,0 0,1 0.326,0.945 5,5 0,0 0,-2.867 3.51,0.5 0.5,0 0,1 -0.447,0.4zM210.369,62.664h-0.051a0.5,0.5 0,0 1,-0.447 -0.548,6.448 6.448,0 0,1 1.057,-3.035 0.5,0.5 0,1 1,0.824 0.566,5.457 5.457,0 0,0 -0.886,2.57 0.5,0.5 0,0 1,-0.497 0.444zM214.562,57.625a0.5,0.5 0,0 1,-0.151 -0.977,10.123 10.123,0 0,1 1.018,-0.264 0.5,0.5 0,0 1,0.2 0.98,8.89 8.89,0 0,0 -0.916,0.236 0.512,0.512 0,0 1,-0.151 0.022z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_error_session_crashed.xml"
+ line="45"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (2415 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M212.21,123.577a0.479,0.479 0,0 0,0.167 -0.029,18.777 18.777,0 0,1 6.456,-1 0.5,0.5 0,0 0,0 -1,19.725 19.725,0 0,0 -6.791,1.06 0.5,0.5 0,0 0,0.167 0.971zM203.092,127.616a0.516,0.516 0,0 0,0.121 -0.015c0.345,-0.086 0.674,-0.18 0.992,-0.28a0.5,0.5 0,1 0,-0.3 -0.953q-0.448,0.142 -0.932,0.263a0.5,0.5 0,0 0,0.12 0.985zM222.437,122.652h0.025a30.515,30.515 0,0 0,5.356 -0.79c0.881,0.714 2.644,0.916 5.336,0.616 6.261,-0.7 9.575,-3.264 9.712,-3.372a0.5,0.5 0,0 0,-0.619 -0.785,19.464 19.464,0 0,1 -9.2,3.163 11.451,11.451 0,0 1,-3.737 -0.029c2,-0.621 3.758,-1.488 4.548,-2.629 0.952,-1.375 0.377,-2.176 0.086,-2.457 -0.88,-0.846 -2.82,-0.664 -4.236,0.4 -1.065,0.8 -2.892,2.667 -2.476,4.2a29.559,29.559 0,0 1,-4.815 0.685,0.5 0.5,0 0,0 0.024,1zM230.304,117.565a3.514,3.514 0,0 1,2.051 -0.735,1.319 1.319,0 0,1 0.892,0.259c0.31,0.3 0,0.859 -0.214,1.168 -0.734,1.06 -2.664,1.894 -4.832,2.473 -0.234,-0.777 0.881,-2.248 2.099,-3.165zM196.104,128.115c0.6,0.044 1.242,0.066 1.9,0.066q0.6,0 1.15,-0.022a0.5,0.5 0,0 0,0.479 -0.521,0.5 0.5,0 0,0 -0.52,-0.479 26.784,26.784 0,0 1,-2.94 -0.042,0.494 0.494,0 0,0 -0.535,0.462 0.5,0.5 0,0 0,0.468 0.536zM261.144,128.745a19.926,19.926 0,0 0,-10.888 2.938,19.646 19.646,0 0,1 -19.87,0 21.646,21.646 0,0 0,-21.775 0,19.648 19.648,0 0,1 -19.871,0 27.517,27.517 0,0 0,-3.86 -1.825,8.043 8.043,0 0,1 -1.24,1.6l-0.067,0.067a23.017,23.017 0,0 1,4.215 1.913,21.646 21.646,0 0,0 21.775,0 19.648,19.648 0,0 1,19.871 0,21.644 21.644,0 0,0 21.774,0 18,18 0,0 1,9.936 -2.7,1 1,0 0,0 0,-2zM246.044,142.127q-0.448,0.142 -0.932,0.263a0.5,0.5 0,0 0,0.12 0.985,0.516 0.516,0 0,0 0.121,-0.015c0.345,-0.086 0.674,-0.18 0.992,-0.28a0.5,0.5 0,1 0,-0.3 -0.953zM187.36,125.3c0.313,0.17 0.626,0.34 0.944,0.507a0.5,0.5 0,0 0,0.466 -0.885c-0.313,-0.165 -0.624,-0.333 -0.936,-0.5a30.785,30.785 0,0 0,-3.129 -1.539,7.669 7.669,0 0,1 0.688,1.4c0.675,0.317 1.317,0.669 1.967,1.017zM241.26,142.915a26.531,26.531 0,0 1,-2.94 -0.042,0.5 0.5,0 0,0 -0.073,1c0.6,0.044 1.241,0.066 1.9,0.066q0.6,0 1.152,-0.022a0.5,0.5 0,0 0,0.479 -0.521,0.517 0.517,0 0,0 -0.52,-0.477zM260.969,137.304a19.715,19.715 0,0 0,-6.786 1.058,0.5 0.5,0 0,0 0.167,0.971 0.479,0.479 0,0 0,0.167 -0.029,18.767 18.767,0 0,1 6.451,-1 0.5,0.5 0,0 0,0 -1zM230.91,140.682c-0.314,-0.165 -0.624,-0.333 -0.934,-0.5a19.5,19.5 0,0 0,-10.648 -2.877,0.5 0.5,0 0,0 0,1 18.429,18.429 0,0 1,10.172 2.756c0.313,0.17 0.627,0.34 0.945,0.507a0.5,0.5 0,1 0,0.465 -0.885z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_error_session_crashed.xml"
+ line="57"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (999 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M186.068,174.772c1.01,-10.949 1.759,-25.609 0.451,-38.9l0.514,-0.514c5.006,-5.033 4.911,-12.421 -0.216,-17.577a12.97,12.97 0,0 0,-17.732 -0.631l-4.1,-1.107s0.429,-2.85 -0.321,-3.725a2.606,2.606 0,0 0,-1.935 -0.82s0.81,-4.055 -1.065,-5.555c-2.071,-1.656 -7.945,3 -7.945,3 -3.551,1.84 -9.684,4.594 -12.2,4.956 -2.875,0.413 -9.386,2.182 -15.237,3.867l-0.414,-0.417a12.97,12.97 0,0 0,-18.4 0,13.094 13.094,0 0,0 0,18.425l1.835,1.845a281.627,281.627 0,0 0,-0.386 35.906,21.818 21.818,0 0,0 -5.216,17.689c0.914,6.436 4.8,9.96 8.711,12.237a45.905,45.905 0,0 0,2.483 7.891,48.514 48.514,0 0,0 1.584,5.944c2.971,8.511 6.707,12.826 11.1,12.826a6.214,6.214 0,0 0,3.926 -1.4c1.7,-1.391 2.456,-3.106 2.576,-9.037 4.45,0.407 9.479,0.63 14.506,0.63 3.466,0 7.989,-0.107 12.491,-0.521 -0.062,5.242 0.283,7.251 2.332,8.929a6.041,6.041 0,0 0,3.818 1.358c5.994,0 9.9,-8.623 11.693,-13.763a54.51,54.51 0,0 0,2.272 -9.4,22.5 22.5,0 0,0 0.282,-1.662c5.6,-3.181 9.206,-8.133 10.03,-13.929a18.73,18.73 0,0 0,-5.437 -16.545z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_error_session_crashed.xml"
+ line="60"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (845 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M180.923,176.649c1.356,-13.432 2.047,-29.548 0.435,-42.9l2.282,-2.282c3.039,-3.056 2.813,-7.153 -0.227,-10.209a7.753,7.753 0,0 0,-11.006 0l-1.5,1.506 -10.849,-2.927V116.9l-5.485,0.652 1.837,-4.185s-9.323,4.837 -13.862,5.489c-3.256,0.468 -12.518,3.116 -17.495,4.577l-2.6,-2.612a7.753,7.753 0,0 0,-11.006 0,7.856 7.856,0 0,0 0,11.067l3.588,3.608c-1,8.19 -1.392,24.339 -0.5,39.878a16.356,16.356 0,0 0,-5.384 14.9c0.691,4.861 3.718,7.353 8.133,9.5a43.736,43.736 0,0 0,2.876 9.68,46.786 46.786,0 0,0 1.529,5.906c2.594,7.432 5.5,10.17 6.8,9.108 0.621,-0.509 0.764,-5.158 0.623,-10.882 10.036,1.55 27.191,1.879 37.611,0.037 -0.141,5.711 -0.339,10.337 0.281,10.845 1.3,1.062 4.686,-2.654 7.28,-10.086a49.724,49.724 0,0 0,2.075 -8.686c0.24,-1.009 0.389,-2.865 0.65,-4.129 4.971,-2.094 8.871,-5.932 9.619,-11.195 1.06,-7.448 -2.858,-11.281 -5.705,-13.723z&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_error_session_crashed.xml"
+ line="63"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (2843 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M183.016,175.823c1.106,-11.346 2.011,-27.289 0.441,-41.342l1.6,-1.6c3.752,-3.772 3.659,-9.13 -0.223,-13.034a9.753,9.753 0,0 0,-13.842 0l-0.68,0.683 -8.249,-2.225v-1.4a2,2 0,0 0,-2.236 -1.986l-2.011,0.239 0.431,-0.982a2,2 0,0 0,-2.752 -2.579c-2.511,1.3 -9.781,4.79 -13.226,5.284 -3.123,0.449 -11.319,2.756 -16.631,4.3l-1.759,-1.769a9.752,9.752 0,0 0,-13.842 0,9.869 9.869,0 0,0 0,13.888l2.909,2.925c-0.839,7.717 -1.311,22.481 -0.456,38.32a18.247,18.247 0,0 0,-5.315 16.012c0.785,5.528 4.3,8.4 7.952,10.359a0.973,0.973 0,0 0,0.379 0.315l0.044,0.018a44.416,44.416 0,0 0,2.707 8.865,47.481 47.481,0 0,0 1.548,5.908c1.391,3.985 4.288,10.669 8.067,10.669a2.948,2.948 0,0 0,1.888 -0.672c0.741,-0.607 1.506,-1.232 1.4,-10.127a149.239,149.239 0,0 0,17.72 0.992,122.747 122.747,0 0,0 15.786,-0.912c-0.187,7.245 -0.156,9.04 1.075,10.048a2.777,2.777 0,0 0,1.78 0.631c3.395,0 6.7,-6 8.655,-11.606a51.053,51.053 0,0 0,2.149 -8.956c0.138,-0.606 0.239,-1.364 0.346,-2.163 0.043,-0.324 0.087,-0.653 0.133,-0.968a21.447,21.447 0,0 0,2.278 -1.27c0.384,-0.2 0.763,-0.42 1.127,-0.66a0.978,0.978 0,0 0,0.307 -0.341,15.378 15.378,0 0,0 6.094,-10.03 15.622,15.622 0,0 0,-5.594 -14.834zM186.631,190.377a13.725,13.725 0,0 1,-6.578 9.6c-4.748,2.479 -11.193,2.162 -11.262,2.162a1,1 0,0 0,-0.111 2c0.065,0 0.426,0.022 1,0.022a30.255,30.255 0,0 0,7.052 -0.837c-0.121,0.893 -0.231,1.788 -0.373,2.385a49.721,49.721 0,0 1,-2.075 8.686c-2.3,6.6 -5.231,10.265 -6.767,10.265a0.788,0.788 0,0 1,-0.513 -0.178c-0.588,-0.481 -0.44,-4.669 -0.3,-9.971a92.144,92.144 0,0 0,3.713 -0.719,0.5 0.5,0 1,0 -0.213,-0.977 95.1,95.1 0,0 1,-10.957 1.71c-3.286,0.248 -6.816,0.369 -10.368,0.369 -3.15,0 -6.3,-0.1 -9.3,-0.267a93.424,93.424 0,0 1,-15 -2.351,0.5 0.5,0 0,0 -0.265,0.965c0.06,0.016 1.8,0.483 4.818,1.03 0.114,5.411 -0.04,9.722 -0.637,10.211a0.956,0.956 0,0 1,-0.621 0.22c-1.47,0 -3.942,-2.918 -6.179,-9.328a46.793,46.793 0,0 1,-1.529 -5.906,37.051 37.051,0 0,1 -2.391,-7.444 43.727,43.727 0,0 0,9.71 1.22h0.005a1,1 0,0 0,0.005 -2c-0.065,0 -6.126,-0.055 -10.213,-1.46 -4.41,-2.147 -7.435,-4.639 -8.125,-9.5a16.356,16.356 0,0 1,5.384 -14.9c-0.888,-15.538 -0.5,-31.687 0.5,-39.878l-3.588,-3.608a7.856,7.856 0,0 1,0 -11.067,7.752 7.752,0 0,1 11.006,0l1.839,1.849c-6.694,2.774 -7.5,6.758 -7.537,6.949a0.5,0.5 0,0 0,0.983 0.183c0.008,-0.043 0.855,-3.866 7.552,-6.438 5.027,-1.473 14.049,-4.046 17.255,-4.507 4.54,-0.652 13.862,-5.489 13.862,-5.489l-1.837,4.185 5.485,-0.652v2.935l10.7,2.888c5.988,2.057 5.959,4.674 5.957,4.737a0.5,0.5 0,0 0,0.448 0.538h0.05a0.5,0.5 0,0 0,0.5 -0.45c0.014,-0.139 0.235,-3.223 -6.035,-5.565l0.726,-0.73a7.753,7.753 0,0 1,11.006 0c3.039,3.056 3.266,7.154 0.227,10.209l-2.282,2.282c1.562,12.943 0.959,28.472 -0.314,41.645l-3.794,-3.566a0.5,0.5 0,1 0,-0.685 0.729l4.357,4.1 0.01,0.009 1.883,1.77c0.011,0.01 0.025,0.014 0.037,0.024a13.352,13.352 0,0 1,3.779 11.911z&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_error_session_crashed.xml"
+ line="199"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (921 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M170.579,168.566a0.439,0.439 0,0 0,-0.054 -0.187,0.471 0.471,0 0,0 -0.049,-0.078 0.485,0.485 0,0 0,-0.074 -0.073c-0.014,-0.012 -0.022,-0.028 -0.038,-0.038l-8.958,-5.92a0.5,0.5 0,0 0,-0.261 -0.083l-25.205,-0.746c-0.011,0 -0.021,0.005 -0.032,0.006a0.488,0.488 0,0 0,-0.115 0.021,17.081 17.081,0 0,0 -0.113,0.036l-8.846,4.957c-0.01,0.006 -0.013,0.018 -0.022,0.024a0.494,0.494 0,0 0,-0.189 0.208,0.5 0.5,0 0,0 -0.042,0.2l-0.08,7.691a0.5,0.5 0,0 0,0.495 0.5H127a0.5,0.5 0,0 0,0.5 -0.5l0.075,-7.174 14.4,0.657H142a0.5,0.5 0,0 0,0.022 -1l-13.17,-0.6 7.2,-4.033 24.924,0.737 7.375,4.874 -11.173,-0.325a0.514,0.514 0,0 0,-0.515 0.485,0.5 0.5,0 0,0 0.485,0.515l12.929,0.376h0.015a0.49,0.49 0,0 0,0.214 -0.053,0.481 0.481,0 0,0 0.05,-0.033 0.488,0.488 0,0 0,0.124 -0.113c0.008,-0.01 0.021,-0.015 0.029,-0.026s0.008,-0.024 0.014,-0.035a0.621,0.621 0,0 0,0.06 -0.187c0,-0.013 0.008,-0.024 0.009,-0.038a0.475,0.475 0,0 0,-0.013 -0.045z&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_error_session_crashed.xml"
+ line="339"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (942 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M12,2C12.3601,2 12.6925,2.1937 12.87,2.507L15.6377,7.3912L21.1738,8.3682C21.5166,8.4287 21.8033,8.6631 21.9307,8.9871C22.058,9.3111 22.0077,9.678 21.7979,9.9558L18.0539,14.9111L18.9878,20.8445C19.0467,21.2186 18.8892,21.5938 18.581,21.8139C18.2728,22.0339 17.8668,22.061 17.5321,21.8838L12,18.955L6.4679,21.8838C6.1332,22.061 5.7271,22.0339 5.419,21.8139C5.1108,21.5938 4.9533,21.2186 5.0122,20.8445L5.9461,14.9111L2.2021,9.9558C1.9923,9.678 1.942,9.3111 2.0693,8.9871C2.1967,8.6631 2.4834,8.4287 2.8262,8.3682L8.3623,7.3912L11.13,2.507C11.3075,2.1937 11.6399,2 12,2ZM12,5.0283L9.87,8.7871C9.7229,9.0467 9.4676,9.227 9.1738,9.2789L4.7828,10.0538L7.7979,14.0442C7.9615,14.2608 8.03,14.5345 7.9878,14.8026L7.2986,19.181L11.5321,16.9397C11.8248,16.7848 12.1752,16.7848 12.4679,16.9397L16.7014,19.181L16.0122,14.8026C15.97,14.5345 16.0385,14.2608 16.2021,14.0442L19.2171,10.0538L14.8262,9.2789C14.5324,9.227 14.2771,9.0467 14.13,8.7871L12,5.0283Z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_favorite.xml"
+ line="11"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (1213 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M15.171,18.905C15.309,19.012 15.472,19.065 15.634,19.065C15.857,19.065 16.077,18.967 16.224,18.779C22.187,11.194 20.62,6.279 19.155,4.025C17.121,0.892 12.879,-0.683 9.073,0.282C5.405,1.21 3.014,4.251 2.677,8.417C2.644,8.83 2.952,9.192 3.365,9.226C3.765,9.238 4.14,8.951 4.174,8.538C4.46,4.989 6.38,2.511 9.442,1.736C12.644,0.92 16.202,2.232 17.898,4.842C19.144,6.76 20.431,11.001 15.045,17.851C14.789,18.177 14.846,18.649 15.171,18.905ZM7.66,19.722C7.33,19.722 7.028,19.503 6.936,19.17C6.827,18.771 7.062,18.358 7.461,18.248C14.876,16.217 15.19,8.71 15.2,8.392C15.454,6.774 14.228,5.308 12.478,5.027C10.739,4.75 9.104,5.753 8.86,7.274L8.589,8.789C8.203,10.944 6.334,12.508 4.145,12.508H1.25C0.836,12.508 0.5,12.172 0.5,11.758C0.5,11.344 0.836,11.008 1.25,11.008H4.146C5.608,11.008 6.856,9.964 7.114,8.526L7.383,7.024C7.757,4.701 10.149,3.129 12.718,3.547C15.284,3.959 17.068,6.196 16.692,8.533C16.699,8.533 16.357,17.368 7.859,19.696C7.792,19.713 7.726,19.722 7.66,19.722ZM5.188,16H1.25C0.836,16 0.5,15.664 0.5,15.25C0.5,14.836 0.836,14.5 1.25,14.5H5.188C8.58,14.5 11.338,11.74 11.338,8.349V7.722C11.338,7.308 11.674,6.972 12.088,6.972C12.502,6.972 12.838,7.308 12.838,7.722V8.349C12.839,12.567 9.407,16 5.188,16Z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_fingerprint.xml"
+ line="11"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (3555 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M31.359,14.615h0c-0.044,-0.289 -0.088,-0.459 -0.088,-0.459s-0.113,0.131 -0.3,0.378A10.77,10.77 0,0 0,30.6 12.5a13.846,13.846 0,0 0,-0.937 -2.411,10.048 10.048,0 0,0 -0.856,-1.468q-0.176,-0.263 -0.359,-0.51c-0.57,-0.931 -1.224,-1.5 -1.981,-2.576a7.806,7.806 0,0 1,-0.991 -2.685A10.844,10.844 0,0 0,25 4.607c-0.777,-0.784 -1.453,-1.341 -1.861,-1.721C21.126,1.006 21.36,0.031 21.36,0.031h0S17.6,4.228 19.229,8.6a8.4,8.4 0,0 0,2.8 3.733c1.576,1.3 3.273,2.323 4.168,4.937a8.377,8.377 0,0 0,-3.144 -3.317,7.573 7.573,0 0,1 0.6,3 7.124,7.124 0,0 1,-8.711 6.94,6.561 6.561,0 0,1 -1.765,-0.6 7.183,7.183 0,0 1,-2.115 -1.955l-0.01,-0.017 0.126,0.046a6.5,6.5 0,0 0,0.9 0.241,5.628 5.628,0 0,0 3.583,-0.423c1.126,-0.625 1.808,-1.088 2.361,-0.905l0.01,0c0.54,0.172 0.966,-0.352 0.58,-0.9a2.94,2.94 0,0 0,-2.848 -1.112c-1.127,0.164 -2.16,0.965 -3.637,0.189a3.129,3.129 0,0 1,-0.277 -0.163c-0.1,-0.057 0.317,0.087 0.22,0.022a7.33,7.33 0,0 1,-0.928 -0.554c-0.022,-0.018 0.223,0.07 0.2,0.052a3.581,3.581 0,0 1,-0.968 -0.979,1.741 1.741,0 0,1 -0.066,-1.554 1.371,1.371 0,0 1,0.6 -0.564c0.191,0.094 0.309,0.165 0.309,0.165s-0.087,-0.16 -0.134,-0.244c0.017,-0.006 0.032,0 0.049,-0.011 0.167,0.072 0.537,0.26 0.732,0.375a1.016,1.016 0,0 1,0.335 0.3s0.067,-0.033 0.017,-0.173a0.9,0.9 0,0 0,-0.346 -0.424l0.016,0a2.94,2.94 0,0 1,0.426 0.265,2.079 2.079,0 0,0 0.17,-0.9 1.178,1.178 0,0 0,-0.069 -0.5c-0.053,-0.1 0.03,-0.14 0.123,-0.035a0.976,0.976 0,0 0,-0.079 -0.238v-0.008h0s0.053,-0.069 0.077,-0.094a1.43,1.43 0,0 1,0.216 -0.176,9.973 9.973,0 0,1 1.465,-0.747c0.414,-0.181 0.757,-0.319 0.827,-0.359a2.3,2.3 0,0 0,0.293 -0.225,1.968 1.968,0 0,0 0.66,-1.14 1.6,1.6 0,0 0,0.017 -0.178v-0.05l0,-0.03v0l0,-0.012v0l0,-0.013h0c-0.06,-0.225 -0.448,-0.394 -2.476,-0.584a1.773,1.773 0,0 1,-1.45 -1.36l0,0.009c-0.029,0.074 -0.055,0.149 -0.081,0.225 0.026,-0.075 0.052,-0.15 0.081,-0.225l0,-0.016a5.138,5.138 0,0 1,1.986 -2.466c0.052,-0.042 -0.208,0.011 -0.156,-0.032a5.156,5.156 0,0 1,0.53 -0.224c0.091,-0.038 -0.39,-0.222 -0.815,-0.177a2.2,2.2 0,0 0,-0.756 0.178c0.1,-0.086 0.4,-0.2 0.329,-0.2a4.865,4.865 0,0 0,-1.542 0.583,0.314 0.314,0 0,1 0.03,-0.14 2.4,2.4 0,0 0,-0.964 0.744,1.275 1.275,0 0,0 0.01,-0.174 2.876,2.876 0,0 0,-0.473 0.444l-0.009,0.007a6.285,6.285 0,0 0,-3.517 -0.3l-0.01,-0.009 0.012,0a2.943,2.943 0,0 1,-0.625 -0.7L6.1,5.852 6.081,5.83c-0.077,-0.114 -0.156,-0.243 -0.237,-0.387 -0.058,-0.1 -0.117,-0.217 -0.176,-0.338 0,-0.008 -0.009,-0.011 -0.013,-0.012 -0.024,0 -0.041,0.111 -0.061,0.082l0,-0.006a4.308,4.308 0,0 1,-0.283 -1.687l-0.016,0.008a1.884,1.884 0,0 0,-0.714 0.934c-0.061,0.137 -0.1,0.212 -0.14,0.287 0,0.006 0,-0.01 0,-0.035 0.009,-0.069 0.039,-0.211 0.032,-0.2s-0.012,0.019 -0.019,0.029a1.733,1.733 0,0 0,-0.251 0.372,2.355 2.355,0 0,0 -0.15,0.382c-0.006,0.021 0,-0.018 0,-0.064s0.009,-0.128 0,-0.111l-0.022,0.043a9.5,9.5 0,0 0,-0.8 3.035A3.022,3.022 0,0 0,3.2 8.7v0.016a6.628,6.628 0,0 0,-0.817 1.1,15.606 15.606,0 0,0 -1.727,4.23 10.351,10.351 0,0 1,0.925 -1.621,15 15,0 0,0 -1.045,5.5 14.233,14.233 0,0 1,0.45 -1.629A13.807,13.807 0,0 0,2.234 22.76a15.037,15.037 0,0 0,5.951 6.748h0a13.016,13.016 0,0 0,3.468 1.662c0.162,0.059 0.326,0.117 0.494,0.173 -0.053,-0.021 -0.1,-0.044 -0.153,-0.067a15.7,15.7 0,0 0,4.5 0.662c5.394,0 7.175,-2.054 7.339,-2.259h0a2.73,2.73 0,0 0,0.637 -0.856h0q0.156,-0.064 0.315,-0.137l0.067,-0.03 0.121,-0.057a11.312,11.312 0,0 0,2.277 -1.426,5.5 5.5,0 0,0 2.123,-3.1h0a1.938,1.938 0,0 0,0.029 -1.428q0.083,-0.131 0.171,-0.28a12.706,12.706 0,0 0,1.907 -6.181v-0.006c0,-0.059 0,-0.118 0,-0.177A7.731,7.731 0,0 0,31.359 14.615Z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_firefox.xml"
+ line="11"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (1318 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;m4.0619,11c0.3733,-2.994 2.4011,-5.4742 5.1396,-6.4969 -0.0499,0.1367 -0.1001,0.2803 -0.1502,0.4307 -0.4736,1.4208 -0.9369,3.4437 -1.0331,6.0662zM10.9487,5.5662c0.2339,-0.7017 0.4652,-1.2202 0.6327,-1.5554 0.1386,-0.0071 0.2782,-0.0108 0.4186,-0.0108 0.1404,0 0.28,0.0036 0.4186,0.0108 0.1676,0.3353 0.3988,0.8537 0.6327,1.5554 0.4121,1.2364 0.8343,3.0468 0.9291,5.4338h-3.9608c0.0947,-2.387 0.5169,-4.1974 0.9291,-5.4338zM13.9804,13c-0.0948,2.387 -0.517,4.1974 -0.9291,5.4338 -0.2339,0.7017 -0.4651,1.2202 -0.6327,1.5554 -0.1386,0.0072 -0.2782,0.0108 -0.4186,0.0108 -0.1404,0 -0.28,-0.0036 -0.4186,-0.0108 -0.1676,-0.3352 -0.3988,-0.8537 -0.6327,-1.5554 -0.4121,-1.2364 -0.8343,-3.0468 -0.9291,-5.4338zM14.7985,19.4969c0.0499,-0.1368 0.1001,-0.2803 0.1502,-0.4307 0.4736,-1.4208 0.9369,-3.4437 1.0331,-6.0662h3.9563c-0.3733,2.994 -2.4011,5.4742 -5.1396,6.4969zM15.9818,11c-0.0962,-2.6225 -0.5595,-4.6455 -1.0331,-6.0662 -0.0501,-0.1504 -0.1003,-0.2939 -0.1502,-0.4307 2.7385,1.0227 4.7663,3.5029 5.1396,6.4969zM4.0619,13h3.9563c0.0962,2.6225 0.5595,4.6454 1.0331,6.0662 0.0269,0.0807 0.0538,0.1593 0.0807,0.236 0.0232,0.0664 0.0464,0.1313 0.0696,0.1947 -2.7385,-1.0227 -4.7663,-3.5029 -5.1396,-6.4969zM12,2c-5.5229,0 -10,4.4771 -10,10 0,5.5229 4.4771,10 10,10 5.5229,0 10,-4.4771 10,-10 0,-5.5229 -4.4771,-10 -10,-10z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_internet.xml"
+ line="11"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (2039 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;m9.8944,3.5528c-0.247,-0.494 -0.8477,-0.6942 -1.3416,-0.4472 -0.494,0.247 -0.6942,0.8477 -0.4472,1.3416l0.2764,0.5528h-5.382c-0.5523,0 -1,0.4477 -1,1 0,0.5523 0.4477,1 1,1h6.9797c0.0141,0.0003 0.0281,0.0003 0.0423,0h1.6451c-0.7152,2.1364 -1.7998,3.9404 -2.9531,5.4106 -0.6679,-0.6568 -1.3242,-1.5526 -1.7777,-2.7617 -0.1939,-0.5171 -0.7703,-0.7791 -1.2874,-0.5852 -0.5171,0.1939 -0.7791,0.7703 -0.5852,1.2874 0.5893,1.5715 1.4593,2.7316 2.3389,3.5735 -0.1204,0.1263 -0.2404,0.2491 -0.3596,0.3683 -0.9566,0.9566 -1.8526,1.6731 -2.5061,2.1484 -0.3264,0.2373 -0.5911,0.4137 -0.7712,0.5289 -0.09,0.0576 -0.1588,0.0999 -0.2034,0.1269l-0.0371,0.0221 -0.0114,0.0068 -0.0099,0.0058 -0.0012,0.0006c-0.4786,0.2744 -0.6447,0.8846 -0.3709,1.3637 0.274,0.4796 0.8849,0.6462 1.3644,0.3721l0.06,-0.0351 -0.0584,0.0343 0.0022,-0.0013 0.0063,-0.0037 0.0202,-0.0118c0.0168,-0.0098 0.0695,-0.0414 0.0695,-0.0414 0.0589,-0.0356 0.1425,-0.087 0.2478,-0.1544 0.2105,-0.1348 0.5083,-0.3334 0.8694,-0.5961 0.7216,-0.5248 1.7005,-1.3082 2.7439,-2.3516 0.1773,-0.1773 0.3567,-0.3624 0.5373,-0.5552 0.3924,0.2405 0.7462,0.4174 1.0292,0.5432 0.2008,0.0892 0.367,0.1532 0.4874,0.1961 0.0602,0.0214 0.1091,0.0377 0.1453,0.0492 0.0181,0.0058 0.033,0.0104 0.0446,0.0139l0.0148,0.0044 0.0055,0.0016 0.0023,0.0007 0.0019,0.0005c0.531,0.1518 1.0845,-0.1557 1.2362,-0.6868 0.1514,-0.5299 -0.1537,-1.082 -0.6827,-1.235l-0.0025,-0.0007 -0.0119,-0.0038c-0.0159,-0.0051 -0.0436,-0.0142 -0.082,-0.0279 -0.0769,-0.0274 -0.1958,-0.0728 -0.3466,-0.1399 -0.147,-0.0653 -0.3232,-0.1507 -0.5194,-0.2593 1.3691,-1.7529 2.6634,-3.955 3.4472,-6.6081h2.2364c0.5523,0 1,-0.4477 1,-1 0,-0.5523 -0.4477,-1 -1,-1h-2.9786c-0.0148,-0.0003 -0.0296,-0.0003 -0.0443,0h-2.3591zM18.6261,16h-3.2522l1.6261,-4.4025zM19.3649,18 L20.2558,20.4119c0.1722,0.4662 0.6898,0.7046 1.156,0.5324 0.4663,-0.1723 0.7047,-0.6898 0.5324,-1.1561l-3.6309,-9.8302c-0.4506,-1.2199 -2.176,-1.2199 -2.6266,0l-3.6309,9.8302c-0.1723,0.4663 0.0661,0.9838 0.5324,1.1561 0.4662,0.1722 0.9838,-0.0662 1.156,-0.5324l0.8909,-2.4119z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_language.xml"
+ line="11"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (1195 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M77.898,44.179c-1.132,-2.722 -3.423,-5.66 -5.223,-6.589a27.016,27.016 0,0 1,2.636 7.901l0.005,0.043c-2.944,-7.338 -7.936,-10.297 -12.013,-16.739 -0.206,-0.326 -0.412,-0.652 -0.613,-0.997 -0.115,-0.196 -0.206,-0.374 -0.287,-0.539a4.741,4.741 0,0 1,-0.388 -1.029,0.068 0.068,0 0,0 -0.059,-0.07 0.088,0.088 0,0 0,-0.049 0l-0.013,0.007 -0.019,0.01 0.011,-0.015a18.999,18.999 0,0 0,-8.963 14.461,13.027 13.027,0 0,0 -7.165,2.761 7.74,7.74 0,0 0,-0.674 -0.509,12.061 12.061,0 0,1 -0.073,-6.363 19.285,19.285 0,0 0,-6.267 4.843l-0.012,0c-1.032,-1.307 -0.959,-5.62 -0.9,-6.52a4.68,4.68 0,0 0,-0.869 0.461,18.97 18.97,0 0,0 -2.544,2.18 22.8,22.8 0,0 0,-2.431 2.916l-0.001,0.004 0.001,-0.004a21.974,21.974 0,0 0,-3.493 7.887c-0.012,0.056 -0.023,0.115 -0.035,0.172 -0.049,0.229 -0.225,1.376 -0.256,1.626 -0.002,0.019 -0.004,0.038 -0.006,0.057a24.809,24.809 0,0 0,-0.422 3.592c-0,0.044 -0.003,0.088 -0.003,0.133A26.037,26.037 0,0 0,79.469 58.264c0.044,-0.333 0.079,-0.668 0.118,-1.004A26.762,26.762 0,0 0,77.898 44.179ZM47.89,64.556c0.122,0.058 0.236,0.122 0.361,0.177l0.018,0.011C48.143,64.684 48.017,64.621 47.89,64.556ZM53.855,48.855 L53.855,48.855 53.855,48.855ZM75.319,45.541l-0.003,-0.025 0.004,0.028Z&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_launcher_foreground.xml"
+ line="11"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (910 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M28.012,54.477c2.009,11.871 12.77,20.935 24.985,21.281 11.306,0.32 18.529,-6.242 21.513,-12.644a23.567,23.567 0,0 0,0.81 -17.569l-0.001,-0.003 -0.003,-0.025c-0.003,-0.019 -0.004,-0.031 -0.004,-0.024l0.005,0.043c0.923,6.03 -2.144,11.872 -6.939,15.822l-0.014,0.034c-9.343,7.608 -18.284,4.59 -20.094,3.355 -0.126,-0.061 -0.253,-0.124 -0.379,-0.189 -5.447,-2.603 -7.698,-7.566 -7.215,-11.822a6.687,6.687 0,0 1,-6.168 -3.879,9.821 9.821,0 0,1 9.572,-0.384 12.964,12.964 0,0 0,9.775 0.384c-0.01,-0.212 -4.541,-2.014 -6.308,-3.754 -0.944,-0.93 -1.392,-1.378 -1.789,-1.715a7.74,7.74 0,0 0,-0.674 -0.509c-0.155,-0.106 -0.329,-0.22 -0.54,-0.357 -1.899,-1.234 -5.675,-1.166 -5.8,-1.163l-0.012,0c-1.032,-1.307 -0.959,-5.62 -0.9,-6.52a4.68,4.68 0,0 0,-0.869 0.461,18.97 18.97,0 0,0 -2.544,2.18 22.8,22.8 0,0 0,-2.431 2.916l-0.001,0.004 0.001,-0.004a21.974,21.974 0,0 0,-3.493 7.887C28.481,48.337 27.556,52.38 28.012,54.477Z&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_launcher_foreground.xml"
+ line="130"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (1537 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M77.898,44.179c-1.132,-2.722 -3.423,-5.66 -5.223,-6.589a27.016,27.016 0,0 1,2.636 7.901l0.005,0.043c-2.944,-7.338 -7.936,-10.297 -12.013,-16.739 -0.206,-0.326 -0.412,-0.652 -0.613,-0.997 -0.115,-0.196 -0.206,-0.374 -0.287,-0.539a4.741,4.741 0,0 1,-0.388 -1.029,0.068 0.068,0 0,0 -0.059,-0.07 0.088,0.088 0,0 0,-0.049 0l-0.013,0.007 -0.019,0.01 0.011,-0.015a18.999,18.999 0,0 0,-8.963 14.461c0.303,-0.021 0.606,-0.047 0.914,-0.047a13.14,13.14 0,0 1,11.408 6.661,8.989 8.989,0 0,0 -6.278,-1.524C68.333,50.396 65.819,66.518 52.843,65.909a11.563,11.563 0,0 1,-3.388 -0.653c-0.255,-0.095 -0.51,-0.2 -0.765,-0.313 -0.147,-0.067 -0.294,-0.135 -0.439,-0.21l0.018,0.011c-0.126,-0.061 -0.253,-0.124 -0.379,-0.189 0.122,0.058 0.236,0.122 0.361,0.177a10.992,10.992 0,0 1,-6.133 -8.52s1.202,-4.478 8.605,-4.478c0.8,0 3.088,-2.233 3.131,-2.881l-0,0 0,-0c-0.01,-0.212 -4.541,-2.014 -6.308,-3.754 -0.944,-0.93 -1.392,-1.378 -1.789,-1.715a7.74,7.74 0,0 0,-0.674 -0.509,12.061 12.061,0 0,1 -0.073,-6.363 19.285,19.285 0,0 0,-6.267 4.843l-0.012,0c-1.032,-1.307 -0.959,-5.62 -0.9,-6.52a4.68,4.68 0,0 0,-0.869 0.461,18.97 18.97,0 0,0 -2.544,2.18 22.8,22.8 0,0 0,-2.431 2.916l-0.001,0.004 0.001,-0.004a21.974,21.974 0,0 0,-3.493 7.887c-0.012,0.056 -0.023,0.115 -0.035,0.172 -0.049,0.229 -0.269,1.392 -0.3,1.642 -0.002,0.019 0.002,-0.019 0,0a30.284,30.284 0,0 0,-0.384 3.632c-0,0.044 -0.003,0.088 -0.003,0.133A26.037,26.037 0,0 0,79.469 58.264c0.044,-0.333 0.079,-0.668 0.118,-1.004A26.762,26.762 0,0 0,77.898 44.179ZM75.315,45.516 L75.32,45.544 75.319,45.541Z&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_launcher_foreground.xml"
+ line="200"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (1195 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M77.898,44.179c-1.132,-2.722 -3.423,-5.66 -5.223,-6.589a27.016,27.016 0,0 1,2.636 7.901l0.005,0.043c-2.944,-7.338 -7.936,-10.297 -12.013,-16.739 -0.206,-0.326 -0.412,-0.652 -0.613,-0.997 -0.115,-0.196 -0.206,-0.374 -0.287,-0.539a4.741,4.741 0,0 1,-0.388 -1.029,0.068 0.068,0 0,0 -0.059,-0.07 0.088,0.088 0,0 0,-0.049 0l-0.013,0.007 -0.019,0.01 0.011,-0.015a18.999,18.999 0,0 0,-8.963 14.461,13.027 13.027,0 0,0 -7.165,2.761 7.74,7.74 0,0 0,-0.674 -0.509,12.061 12.061,0 0,1 -0.073,-6.363 19.285,19.285 0,0 0,-6.267 4.843l-0.012,0c-1.032,-1.307 -0.959,-5.62 -0.9,-6.52a4.68,4.68 0,0 0,-0.869 0.461,18.97 18.97,0 0,0 -2.544,2.18 22.8,22.8 0,0 0,-2.431 2.916l-0.001,0.004 0.001,-0.004a21.974,21.974 0,0 0,-3.493 7.887c-0.012,0.056 -0.023,0.115 -0.035,0.172 -0.049,0.229 -0.225,1.376 -0.256,1.626 -0.002,0.019 -0.004,0.038 -0.006,0.057a24.809,24.809 0,0 0,-0.422 3.592c-0,0.044 -0.003,0.088 -0.003,0.133A26.037,26.037 0,0 0,79.469 58.264c0.044,-0.333 0.079,-0.668 0.118,-1.004A26.762,26.762 0,0 0,77.898 44.179ZM47.89,64.556c0.122,0.058 0.236,0.122 0.361,0.177l0.018,0.011C48.143,64.684 48.017,64.621 47.89,64.556ZM53.855,48.855 L53.855,48.855 53.855,48.855ZM75.319,45.541l-0.003,-0.025 0.004,0.028Z&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable-v24/ic_splash_screen.xml"
+ line="11"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (910 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M28.012,54.477c2.009,11.871 12.77,20.935 24.985,21.281 11.306,0.32 18.529,-6.242 21.513,-12.644a23.567,23.567 0,0 0,0.81 -17.569l-0.001,-0.003 -0.003,-0.025c-0.003,-0.019 -0.004,-0.031 -0.004,-0.024l0.005,0.043c0.923,6.03 -2.144,11.872 -6.939,15.822l-0.014,0.034c-9.343,7.608 -18.284,4.59 -20.094,3.355 -0.126,-0.061 -0.253,-0.124 -0.379,-0.189 -5.447,-2.603 -7.698,-7.566 -7.215,-11.822a6.687,6.687 0,0 1,-6.168 -3.879,9.821 9.821,0 0,1 9.572,-0.384 12.964,12.964 0,0 0,9.775 0.384c-0.01,-0.212 -4.541,-2.014 -6.308,-3.754 -0.944,-0.93 -1.392,-1.378 -1.789,-1.715a7.74,7.74 0,0 0,-0.674 -0.509c-0.155,-0.106 -0.329,-0.22 -0.54,-0.357 -1.899,-1.234 -5.675,-1.166 -5.8,-1.163l-0.012,0c-1.032,-1.307 -0.959,-5.62 -0.9,-6.52a4.68,4.68 0,0 0,-0.869 0.461,18.97 18.97,0 0,0 -2.544,2.18 22.8,22.8 0,0 0,-2.431 2.916l-0.001,0.004 0.001,-0.004a21.974,21.974 0,0 0,-3.493 7.887C28.481,48.337 27.556,52.38 28.012,54.477Z&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable-v24/ic_splash_screen.xml"
+ line="130"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (1537 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M77.898,44.179c-1.132,-2.722 -3.423,-5.66 -5.223,-6.589a27.016,27.016 0,0 1,2.636 7.901l0.005,0.043c-2.944,-7.338 -7.936,-10.297 -12.013,-16.739 -0.206,-0.326 -0.412,-0.652 -0.613,-0.997 -0.115,-0.196 -0.206,-0.374 -0.287,-0.539a4.741,4.741 0,0 1,-0.388 -1.029,0.068 0.068,0 0,0 -0.059,-0.07 0.088,0.088 0,0 0,-0.049 0l-0.013,0.007 -0.019,0.01 0.011,-0.015a18.999,18.999 0,0 0,-8.963 14.461c0.303,-0.021 0.606,-0.047 0.914,-0.047a13.14,13.14 0,0 1,11.408 6.661,8.989 8.989,0 0,0 -6.278,-1.524C68.333,50.396 65.819,66.518 52.843,65.909a11.563,11.563 0,0 1,-3.388 -0.653c-0.255,-0.095 -0.51,-0.2 -0.765,-0.313 -0.147,-0.067 -0.294,-0.135 -0.439,-0.21l0.018,0.011c-0.126,-0.061 -0.253,-0.124 -0.379,-0.189 0.122,0.058 0.236,0.122 0.361,0.177a10.992,10.992 0,0 1,-6.133 -8.52s1.202,-4.478 8.605,-4.478c0.8,0 3.088,-2.233 3.131,-2.881l-0,0 0,-0c-0.01,-0.212 -4.541,-2.014 -6.308,-3.754 -0.944,-0.93 -1.392,-1.378 -1.789,-1.715a7.74,7.74 0,0 0,-0.674 -0.509,12.061 12.061,0 0,1 -0.073,-6.363 19.285,19.285 0,0 0,-6.267 4.843l-0.012,0c-1.032,-1.307 -0.959,-5.62 -0.9,-6.52a4.68,4.68 0,0 0,-0.869 0.461,18.97 18.97,0 0,0 -2.544,2.18 22.8,22.8 0,0 0,-2.431 2.916l-0.001,0.004 0.001,-0.004a21.974,21.974 0,0 0,-3.493 7.887c-0.012,0.056 -0.023,0.115 -0.035,0.172 -0.049,0.229 -0.269,1.392 -0.3,1.642 -0.002,0.019 0.002,-0.019 0,0a30.284,30.284 0,0 0,-0.384 3.632c-0,0.044 -0.003,0.088 -0.003,0.133A26.037,26.037 0,0 0,79.469 58.264c0.044,-0.333 0.079,-0.668 0.118,-1.004A26.762,26.762 0,0 0,77.898 44.179ZM75.315,45.516 L75.32,45.544 75.319,45.541Z&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable-v24/ic_splash_screen.xml"
+ line="200"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (1636 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M57.8336,20.7447C56.5273,17.6147 53.8834,14.2285 51.807,13.16C53.4969,16.4651 54.4752,19.7801 54.8488,22.2543C54.8488,22.2543 54.8488,22.2713 54.8488,22.3041C51.4519,13.8586 45.6921,10.4525 40.9889,3.0371C40.7508,2.6615 40.514,2.2859 40.2759,1.8889C40.1433,1.6627 40.0377,1.4621 39.945,1.2686C39.7501,0.8923 39.5998,0.4945 39.4973,0.0834C39.4978,0.064 39.491,0.0452 39.4784,0.0305C39.4657,0.0157 39.4481,0.0062 39.4288,0.0038C39.4101,-0.0013 39.3904,-0.0013 39.3718,0.0038L39.3575,0.0123C39.3499,0.0152 39.3428,0.019 39.3361,0.0237L39.3475,0.0066C31.8022,4.4172 29.2424,12.5724 29.0071,16.6529C25.9924,16.8584 23.1099,17.9661 20.736,19.8313C20.4873,19.6219 20.2274,19.4263 19.9573,19.2451C19.2729,16.8552 19.2439,14.3258 19.8732,11.9208C16.7872,13.3222 14.3871,15.5388 12.643,17.4951H12.6487C11.458,15.9913 11.5421,11.0273 11.6091,9.9901C11.5949,9.9261 10.7207,10.4425 10.6109,10.5208C9.5599,11.2694 8.5773,12.1092 7.6746,13.0305C6.6477,14.0695 5.7094,15.1922 4.8696,16.3868C2.9357,19.1178 1.5631,22.2039 0.831,25.4669C0.8167,25.5309 0.8039,25.5992 0.791,25.6646C0.734,25.9278 0.5301,27.2481 0.4944,27.5355C0.4944,27.5569 0.4944,27.5782 0.4944,27.601C0.231,28.9655 0.068,30.3473 0.0067,31.7355C0.0067,31.7868 0.0067,31.8365 0.0067,31.8878C0.0067,48.4373 13.4559,61.8525 30.0453,61.8525C44.902,61.8525 57.2389,51.0921 59.6532,36.9542C59.7046,36.5715 59.7445,36.1859 59.7958,35.7989C60.3791,30.6628 59.7089,25.2606 57.8336,20.7447ZM23.2116,44.2003C23.3542,44.2672 23.484,44.3426 23.628,44.4038L23.648,44.4166C23.5025,44.3468 23.3571,44.2743 23.2116,44.2003ZM54.8602,22.3126V22.2827C54.8596,22.2936 54.8596,22.3045 54.8602,22.3154V22.3126Z&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/onboarding_logo.xml"
+ line="12"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (1116 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M0.2788,32.5978C2.5961,46.2562 15.0115,56.695 29.1052,57.0934C42.1495,57.4619 50.4834,49.9085 53.9188,42.5386C56.1434,37.7752 57.6878,29.9813 54.8543,22.3155V22.2856C54.8543,22.2643 54.8543,22.25 54.8543,22.2572C54.8543,22.2643 54.8543,22.2742 54.8543,22.307C55.9195,29.2486 52.38,35.9654 46.8483,40.5183L46.8312,40.5567C36.0516,49.3138 25.7369,45.8408 23.6477,44.418C23.5051,44.3483 23.3625,44.2758 23.2113,44.2018C16.9252,41.204 14.3298,35.4917 14.886,30.5931C9.5796,30.5931 7.7699,26.1271 7.7699,26.1271C7.7699,26.1271 12.5344,22.7381 18.8133,25.686C24.6303,28.4163 30.0921,26.1285 30.0921,26.1285C30.0807,25.8838 24.8527,23.8094 22.8192,21.8062C21.7296,20.7362 21.2134,20.2198 20.7556,19.8328C20.507,19.6234 20.247,19.4277 19.977,19.2466C19.7987,19.1243 19.5977,18.9934 19.3538,18.8354C17.1634,17.4127 12.8068,17.4938 12.6627,17.4966H12.6513C11.4606,15.9928 11.5447,11.0288 11.6117,9.9916C11.5975,9.9275 10.7233,10.444 10.6135,10.5223C9.5625,11.2708 8.5799,12.1107 7.6772,13.032C6.6503,14.071 5.712,15.1937 4.8721,16.3883C2.9385,19.1189 1.5659,22.2044 0.8335,25.4669C0.815,25.5295 -0.2474,30.1833 0.2788,32.5978Z&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/onboarding_logo.xml"
+ line="131"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (2094 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M57.8344,20.7447C56.5281,17.6147 53.8842,14.2285 51.8078,13.16C53.4977,16.4651 54.476,19.7801 54.8496,22.2543C54.8496,22.2543 54.8496,22.2713 54.8496,22.3041C51.4527,13.8586 45.6928,10.4525 40.9897,3.0371C40.7515,2.6615 40.5148,2.2859 40.2767,1.8889C40.144,1.6627 40.0385,1.4621 39.9458,1.2686C39.7509,0.8923 39.6006,0.4945 39.498,0.0834C39.4985,0.064 39.4918,0.0452 39.4792,0.0305C39.4665,0.0157 39.4488,0.0062 39.4296,0.0038C39.4109,-0.0013 39.3912,-0.0013 39.3725,0.0038L39.3583,0.0123C39.3507,0.0152 39.3435,0.019 39.3369,0.0237L39.3483,0.0066C31.803,4.4172 29.2432,12.5724 29.0079,16.6529C29.3573,16.6287 29.7067,16.5988 30.0632,16.5988C35.6933,16.5988 40.599,19.6876 43.2243,24.2661C41.6214,23.1421 38.7493,22.0323 35.9814,22.5118C46.7866,27.9012 43.886,46.4582 28.9138,45.7568C27.5804,45.7035 26.2627,45.4503 25.0049,45.0056C24.7112,44.896 24.4174,44.7751 24.1236,44.6456C23.9539,44.5688 23.7842,44.4905 23.6174,44.4038L23.6373,44.4166C23.4947,44.3468 23.3521,44.2743 23.201,44.2003C23.3436,44.2672 23.4733,44.3426 23.6174,44.4038C19.9481,42.5129 16.9149,38.9375 16.5413,34.5967C16.5413,34.5967 17.9274,29.442 26.4695,29.442C27.3936,29.442 30.0347,26.8725 30.0817,26.127C30.0703,25.8823 24.8424,23.8079 22.8088,21.8047C21.7193,20.7348 21.2031,20.2183 20.7453,19.8313C20.4966,19.6219 20.2367,19.4263 19.9667,19.2451C19.2823,16.8552 19.2532,14.3258 19.8825,11.9208C16.7965,13.3222 14.3965,15.5388 12.6524,17.4951H12.6495C11.4588,15.9913 11.5429,11.0273 11.6099,9.9901C11.5957,9.9261 10.7215,10.4425 10.6117,10.5208C9.5607,11.2694 8.5781,12.1092 7.6754,13.0305C6.6485,14.0695 5.7102,15.1922 4.8703,16.3868C2.9365,19.1178 1.5639,22.2039 0.8317,25.4669C0.8175,25.5309 0.8046,25.5992 0.7918,25.6646C0.7348,25.9278 0.4809,27.2666 0.4453,27.554C0.2132,28.9377 0.0651,30.3341 0.0018,31.7355C0.0018,31.7868 0.0018,31.8365 0.0018,31.8878C0.0018,48.4373 13.451,61.8525 30.0404,61.8525C44.8971,61.8525 57.234,51.0921 59.6483,36.9542C59.6997,36.5715 59.7396,36.1859 59.7909,35.7989C60.3799,30.6628 59.7096,25.2606 57.8344,20.7447ZM54.861,22.2827C54.8603,22.2936 54.8603,22.3045 54.861,22.3154V22.2827Z&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/onboarding_logo.xml"
+ line="201"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (927 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M7.128,2.5c-1.55,0 -2.187,0.123 -2.846,0.475a3.135,3.135 0,0 0,-1.307 1.307c-0.352,0.659 -0.475,1.296 -0.475,2.846v9.744c0,1.55 0.123,2.187 0.475,2.846a3.135,3.135 0,0 0,1.307 1.307c0.659,0.352 1.296,0.475 2.846,0.475h9.744c1.55,0 2.187,-0.123 2.846,-0.475a3.135,3.135 0,0 0,1.307 -1.307c0.352,-0.659 0.475,-1.296 0.475,-2.846L21.5,7.128c0,-1.55 -0.123,-2.187 -0.475,-2.846a3.135,3.135 0,0 0,-1.307 -1.307c-0.659,-0.352 -1.296,-0.475 -2.846,-0.475zM6.564,3.5h10.872c0.888,0 1.324,0.084 1.777,0.326 0.413,0.221 0.74,0.548 0.96,0.961 0.243,0.453 0.327,0.889 0.327,1.777v10.872c0,0.888 -0.084,1.324 -0.326,1.777 -0.221,0.413 -0.548,0.74 -0.961,0.96 -0.453,0.243 -0.889,0.327 -1.777,0.327L6.564,20.5c-0.888,0 -1.324,-0.084 -1.777,-0.326a2.317,2.317 0,0 1,-0.96 -0.961c-0.243,-0.453 -0.327,-0.889 -0.327,-1.777L3.5,6.564c0,-0.888 0.084,-1.324 0.326,-1.777 0.221,-0.413 0.548,-0.74 0.961,-0.96 0.453,-0.243 0.889,-0.327 1.777,-0.327z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/tab_number_border.xml"
+ line="14"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (1257 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M75.023,27.16c-1.643,-3.951 -4.969,-8.216 -7.582,-9.565a39.215,39.215 0,0 1,3.827 11.47l0.007,0.063C67.002,18.477 59.756,14.182 53.838,4.83c-0.299,-0.473 -0.598,-0.947 -0.89,-1.447 -0.166,-0.285 -0.3,-0.543 -0.416,-0.782a6.882,6.882 0,0 1,-0.564 -1.494,0.099 0.099,0 0,0 -0.086,-0.101 0.128,0.128 0,0 0,-0.071 0c-0.005,0.002 -0.013,0.008 -0.019,0.01 -0.008,0.003 -0.019,0.011 -0.028,0.015l0.015,-0.021C42.287,6.569 39.066,16.855 38.77,22.001a18.91,18.91 0,0 0,-10.401 4.008,11.236 11.236,0 0,0 -0.979,-0.739 17.509,17.509 0,0 1,-0.106 -9.236,27.994 27.994,0 0,0 -9.097,7.03l-0.018,0c-1.498,-1.898 -1.393,-8.157 -1.307,-9.464a6.794,6.794 0,0 0,-1.262 0.669,27.537 27.537,0 0,0 -3.693,3.164 33.098,33.098 0,0 0,-3.529 4.232l-0.002,0.006 0.002,-0.006a31.897,31.897 0,0 0,-5.071 11.449c-0.018,0.082 -0.033,0.167 -0.051,0.249 -0.071,0.333 -0.327,1.997 -0.372,2.36 -0.003,0.028 -0.005,0.055 -0.008,0.082a36.013,36.013 0,0 0,-0.613 5.214c-0,0.065 -0.004,0.128 -0.004,0.193a37.795,37.795 0,0 0,75.044 6.394c0.064,-0.484 0.115,-0.97 0.172,-1.458A38.847,38.847 0,0 0,75.023 27.16ZM31.464,56.74c0.177,0.084 0.343,0.177 0.524,0.258l0.026,0.016C31.83,56.926 31.647,56.834 31.464,56.74ZM40.121,33.948 L40.122,33.948 40.122,33.948ZM71.279,29.138l-0.005,-0.037 0.006,0.041Z&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/wordmark2.xml"
+ line="12"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (930 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M2.608,42.109c2.916,17.232 18.536,30.389 36.268,30.891C55.288,73.464 65.773,63.938 70.104,54.645A34.21,34.21 0,0 0,71.28 29.142l-0.001,-0.004 -0.005,-0.037c-0.004,-0.028 -0.006,-0.045 -0.006,-0.036l0.007,0.063C72.616,37.881 68.163,46.361 61.203,52.095l-0.021,0.049c-13.563,11.043 -26.541,6.663 -29.169,4.87 -0.183,-0.088 -0.367,-0.18 -0.55,-0.274C23.556,52.961 20.29,45.757 20.99,39.579A9.706,9.706 0,0 1,12.037 33.948a14.256,14.256 0,0 1,13.895 -0.557,18.818 18.818,0 0,0 14.19,0.557c-0.014,-0.307 -6.592,-2.923 -9.156,-5.45 -1.37,-1.35 -2.021,-2.001 -2.597,-2.489a11.236,11.236 0,0 0,-0.979 -0.739c-0.225,-0.153 -0.477,-0.319 -0.783,-0.518 -2.756,-1.791 -8.238,-1.693 -8.42,-1.688l-0.018,0c-1.498,-1.898 -1.393,-8.157 -1.307,-9.464a6.794,6.794 0,0 0,-1.262 0.669,27.537 27.537,0 0,0 -3.693,3.164 33.098,33.098 0,0 0,-3.529 4.232l-0.002,0.006 0.002,-0.006a31.897,31.897 0,0 0,-5.071 11.449C3.288,33.196 1.946,39.065 2.608,42.109Z&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/wordmark2.xml"
+ line="131"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (1621 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M75.023,27.16c-1.643,-3.951 -4.969,-8.216 -7.582,-9.565a39.215,39.215 0,0 1,3.827 11.47l0.007,0.063C67.002,18.477 59.756,14.182 53.838,4.83c-0.299,-0.473 -0.598,-0.947 -0.89,-1.447 -0.166,-0.285 -0.3,-0.543 -0.416,-0.782a6.882,6.882 0,0 1,-0.564 -1.494,0.099 0.099,0 0,0 -0.086,-0.101 0.128,0.128 0,0 0,-0.071 0c-0.005,0.002 -0.013,0.008 -0.019,0.01 -0.008,0.003 -0.019,0.011 -0.028,0.015l0.015,-0.021C42.287,6.569 39.066,16.855 38.77,22.001c0.44,-0.031 0.879,-0.068 1.327,-0.068a19.073,19.073 0,0 1,16.56 9.669,13.048 13.048,0 0,0 -9.112,-2.212c13.593,6.796 9.944,30.198 -8.892,29.314a16.786,16.786 0,0 1,-4.918 -0.948c-0.37,-0.138 -0.74,-0.291 -1.11,-0.454 -0.213,-0.097 -0.426,-0.196 -0.637,-0.304l0.026,0.016c-0.183,-0.088 -0.367,-0.18 -0.55,-0.274 0.177,0.084 0.343,0.177 0.524,0.258 -4.615,-2.385 -8.426,-6.893 -8.902,-12.367 0,0 1.744,-6.5 12.491,-6.5 1.162,0 4.483,-3.242 4.545,-4.182l-0.001,0 0.001,-0c-0.014,-0.307 -6.592,-2.923 -9.156,-5.45 -1.37,-1.35 -2.021,-2.001 -2.597,-2.489a11.236,11.236 0,0 0,-0.979 -0.739,17.509 17.509,0 0,1 -0.106,-9.236 27.994,27.994 0,0 0,-9.097 7.03l-0.018,0c-1.498,-1.898 -1.393,-8.157 -1.307,-9.464a6.794,6.794 0,0 0,-1.262 0.669,27.537 27.537,0 0,0 -3.693,3.164 33.098,33.098 0,0 0,-3.529 4.232l-0.002,0.006 0.002,-0.006a31.897,31.897 0,0 0,-5.071 11.449c-0.018,0.082 -0.033,0.167 -0.051,0.249 -0.071,0.333 -0.391,2.021 -0.436,2.383 -0.003,0.028 0.003,-0.028 0,0a43.958,43.958 0,0 0,-0.557 5.273c-0,0.065 -0.004,0.128 -0.004,0.193a37.795,37.795 0,0 0,75.044 6.394c0.064,-0.484 0.115,-0.97 0.172,-1.458A38.847,38.847 0,0 0,75.023 27.16ZM71.274,29.101l0.006,0.041 -0.001,-0.004Z&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/wordmark2.xml"
+ line="201"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (1337 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData=&quot;M96.972,23.989h21.427v5.795L103.119,29.784v7.858h15.28v5.751L103.119,43.392L103.119,56.036L96.972,56.036ZM125.688,21.75a3.447,3.447 0,0 1,3.557 3.6,3.579 3.579,0 0,1 -7.157,0.088A3.555,3.555 0,0 1,125.688 21.75ZM122.658,32.33h6.059L128.718,56.036h-6.059ZM146.281,38.915a4.897,4.897 0,0 0,-2.942 -1.054c-2.459,0 -3.864,1.58 -3.864,5.048v13.126h-6.015L133.46,32.33h5.752L139.212,35.754a5.65,5.65 0,0 1,5.664 -3.644,7.187 7.187,0 0,1 4.04,1.229ZM148.784,44.314a12.128,12.128 0,0 1,12.207 -12.467c7.113,0 12.163,5.048 12.163,12.072v2.502L154.711,46.422c0.659,2.985 2.986,4.961 6.542,4.961a6.355,6.355 0,0 0,5.884 -3.512l5.049,3.029c-2.503,3.688 -6.059,5.619 -11.109,5.619C153.394,56.518 148.784,51.382 148.784,44.314ZM154.799,41.636h12.47c-0.659,-3.029 -3.117,-4.697 -6.323,-4.697A6.09,6.09 0,0 0,154.799 41.637ZM174.646,32.33h4.259L178.905,31.144c0,-6.453 2.722,-9.131 8.694,-9.131h2.108v5.224h-1.712c-2.81,0 -3.425,0.966 -3.425,3.907L184.569,32.33h5.137v5.444h-5.006L184.701,56.036h-5.796L178.905,37.773h-4.259ZM190.848,44.183a12.139,12.139 0,0 1,12.382 -12.336,12.336 12.336,0 1,1 0,24.672A11.958,11.958 0,0 1,190.848 44.183ZM209.728,44.183a6.502,6.502 0,1 0,-12.997 0,6.502 6.502,0 1,0 12.997,0ZM223.779,43.919L215.217,32.33h7.113l5.049,7.287 5.181,-7.287h6.981l-8.694,11.546 9.133,12.16L232.912,56.036l-5.664,-7.726 -5.489,7.726h-7.069Z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/wordmark2.xml"
+ line="215"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="AutoboxingStateCreation"
+ message="Prefer `mutableIntStateOf` instead of `mutableStateOf`"
+ errorLine1=" mutableStateOf(sitePermissionOptionSelected.prefKeyId)"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsFragment.kt"
+ line="110"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="AutoboxingStateCreation"
+ message="Prefer `mutableIntStateOf` instead of `mutableStateOf`"
+ errorLine1=" mutableStateOf(AutoplayOption.BlockAudioOnly().prefKeyId)"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsFragmentCompose.kt"
+ line="64"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/settings_background` with a theme that also paints a background (inferred theme is `@style/Theme.App.Starting`)"
+ errorLine1=" android:background=&quot;@color/settings_background&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_about.xml"
+ line="9"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/settings_background` with a theme that also paints a background (inferred theme is `@style/Theme.App.Starting`)"
+ errorLine1=" android:background=&quot;@color/settings_background&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_autocomplete_add_domain.xml"
+ line="10"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/settings_background` with a theme that also paints a background (inferred theme is `@style/Theme.App.Starting`)"
+ errorLine1=" android:background=&quot;@color/settings_background&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_autocomplete_customdomains.xml"
+ line="10"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/photonGrey10` with a theme that also paints a background (inferred theme is `@style/Theme.App.Starting`)"
+ errorLine1=" android:background=&quot;@color/photonGrey10&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_crash_reporter.xml"
+ line="12"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/settings_background` with a theme that also paints a background (inferred theme is `@style/Theme.App.Starting`)"
+ errorLine1=" android:background=&quot;@color/settings_background&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_exceptions_domains.xml"
+ line="10"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/settings_background` with a theme that also paints a background (inferred theme is `@style/Theme.App.Starting`)"
+ errorLine1=" android:background=&quot;@color/settings_background&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_settings.xml"
+ line="11"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/settings_background` with a theme that also paints a background (inferred theme is `@style/Theme.App.Starting`)"
+ errorLine1=" android:background=&quot;@color/settings_background&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_studies.xml"
+ line="10"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Theme.App.Starting`)"
+ errorLine1=" android:background=&quot;?selectableItemBackground&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/item_add_custom_domain.xml"
+ line="14"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Theme.App.Starting`)"
+ errorLine1=" android:background=&quot;?android:attr/selectableItemBackground&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/search_engine_checkbox_button.xml"
+ line="12"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Theme.App.Starting`)"
+ errorLine1=" android:background=&quot;?android:attr/selectableItemBackground&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/search_engine_radio_button.xml"
+ line="10"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/settings_background` with a theme that also paints a background (inferred theme is `@style/Theme.App.Starting`)"
+ errorLine1=" android:background=&quot;@color/settings_background&quot;/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/toolbar.xml"
+ line="9"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.layout.activity_info` appears to be unused"
+ errorLine1="&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/activity_info.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.useragent_appname` appears to be unused"
+ errorLine1=" &lt;string name=&quot;useragent_appname&quot; translatable=&quot;false&quot;>Focus&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/app.xml"
+ line="9"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.background_snackbar` appears to be unused"
+ errorLine1="&lt;layer-list xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/background_snackbar.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.background` appears to be unused"
+ errorLine1=" &lt;color name=&quot;background&quot;>@color/colorPrimary&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="16"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.colorTextInactive` appears to be unused"
+ errorLine1=" &lt;color name=&quot;colorTextInactive&quot;>#80FFFFFF&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="19"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.statusBarBackground` appears to be unused"
+ errorLine1=" &lt;color name=&quot;statusBarBackground&quot;>@color/background&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="21"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.colorCursor` appears to be unused"
+ errorLine1=" &lt;color name=&quot;colorCursor&quot;>#ccffffff&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="23"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.homeGradient1` appears to be unused"
+ errorLine1=" &lt;color name=&quot;homeGradient1&quot;>#D3D4FA&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="38"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.homeGradient2` appears to be unused"
+ errorLine1=" &lt;color name=&quot;homeGradient2&quot;>#D7D6F9&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="39"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.homeGradient3` appears to be unused"
+ errorLine1=" &lt;color name=&quot;homeGradient3&quot;>#ECEAFA&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="40"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.homeGradient4` appears to be unused"
+ errorLine1=" &lt;color name=&quot;homeGradient4&quot;>#F5F4FE&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="41"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.homeGradient5` appears to be unused"
+ errorLine1=" &lt;color name=&quot;homeGradient5&quot;>#D9D3F5&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="42"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.homeGradient6` appears to be unused"
+ errorLine1=" &lt;color name=&quot;homeGradient6&quot;>#D6C9EB&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="43"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.colorProgressGradientCenter` appears to be unused"
+ errorLine1=" &lt;color name=&quot;colorProgressGradientCenter&quot;>#FFFF1AD9&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="47"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.colorErasePressed` appears to be unused"
+ errorLine1=" &lt;color name=&quot;colorErasePressed&quot;>@color/photonMagenta80&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="51"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.colorDotHighlight` appears to be unused"
+ errorLine1=" &lt;color name=&quot;colorDotHighlight&quot;>@color/photonBlue40&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="53"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.toolbar_color` appears to be unused"
+ errorLine1=" &lt;color name=&quot;toolbar_color&quot;>@color/colorPrimary&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="57"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.colorPoweredBy` appears to be unused"
+ errorLine1=" &lt;color name=&quot;colorPoweredBy&quot;>@color/photonLightGrey05&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="60"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.searchSuggestionsBackground` appears to be unused"
+ errorLine1=" &lt;color name=&quot;searchSuggestionsBackground&quot;>@color/photonLightGrey05&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="69"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.searchHintTextColor` appears to be unused"
+ errorLine1=" &lt;color name=&quot;searchHintTextColor&quot;>#ffffffff&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="76"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.searchHintBackgroundColor` appears to be unused"
+ errorLine1=" &lt;color name=&quot;searchHintBackgroundColor&quot;>@color/photonLightGrey05&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="77"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.urlBarInactiveBackgroundColor` appears to be unused"
+ errorLine1=" &lt;color name=&quot;urlBarInactiveBackgroundColor&quot;>#480f1126&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="78"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.doorhanger_link` appears to be unused"
+ errorLine1=" &lt;color name=&quot;doorhanger_link&quot;>#FF2AA1FE&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="98"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.preference_row_selected` appears to be unused"
+ errorLine1=" &lt;color name=&quot;preference_row_selected&quot;>#353852&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="109"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.trackingProtectionSheetBackground` appears to be unused"
+ errorLine1=" &lt;color name=&quot;trackingProtectionSheetBackground&quot;>@color/background&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="112"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.onboarding_text` appears to be unused"
+ errorLine1=" &lt;color name=&quot;onboarding_text&quot;>@color/photonDarkGrey05&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="117"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.onboarding_title` appears to be unused"
+ errorLine1=" &lt;color name=&quot;onboarding_title&quot;>@color/photonLightGrey05&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="118"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.mozac_additional_note_background` appears to be unused"
+ errorLine1=" &lt;color name=&quot;mozac_additional_note_background&quot;>@color/colorPrimary&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="125"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.mozac_additional_note_text_color` appears to be unused"
+ errorLine1=" &lt;color name=&quot;mozac_additional_note_text_color&quot;>@color/secondaryText&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="126"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.color.cfr_triangle_color` appears to be unused"
+ errorLine1=" &lt;color name=&quot;cfr_triangle_color&quot;>#FFFFFF&lt;/color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/colors.xml"
+ line="132"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.integer.progress_shift_duration` appears to be unused"
+ errorLine1=" &lt;integer name=&quot;progress_shift_duration&quot;>500&lt;/integer>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/configuration.xml"
+ line="13"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.context_menu_navigation_view_background` appears to be unused"
+ errorLine1="&lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/context_menu_navigation_view_background.xml"
+ line="4"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.layout.custom_tab_menu_item` appears to be unused"
+ errorLine1="&lt;TextView style=&quot;@android:style/TextAppearance.Material.Menu&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/custom_tab_menu_item.xml"
+ line="9"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.dark_background` appears to be unused"
+ errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/dark_background.xml"
+ line="6"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.menu_elevation` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;menu_elevation&quot;>8dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="6"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.firstrun_container_width` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;firstrun_container_width&quot;>@dimen/match_parent&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="16"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.customtabs_toolbar_icon_size` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;customtabs_toolbar_icon_size&quot;>24dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="19"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.design_navigation_padding_top_default` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;design_navigation_padding_top_default&quot; tools:override=&quot;true&quot;>0dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="22"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.design_navigation_separator_vertical_padding` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;design_navigation_separator_vertical_padding&quot; tools:override=&quot;true&quot;>0dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="23"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.design_navigation_padding_bottom` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;design_navigation_padding_bottom&quot; tools:override=&quot;true&quot;>0dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="24"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.fingerprint_icon_size` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;fingerprint_icon_size&quot;>64dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="29"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.fingerprint_status_layout_margin_vertical` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;fingerprint_status_layout_margin_vertical&quot;>48dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="30"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.tabs_button_text_size` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;tabs_button_text_size&quot;>12dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="32"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.dialogHorizontalPadding` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;dialogHorizontalPadding&quot;>24dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="36"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.doorhanger_width` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;doorhanger_width&quot;>300dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="52"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.doorhanger_input_width` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;doorhanger_input_width&quot;>250dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="53"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.doorhanger_offsetX` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;doorhanger_offsetX&quot;>12dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="54"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.doorhanger_offsetY` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;doorhanger_offsetY&quot;>67dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="55"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.doorhanger_drawable_padding` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;doorhanger_drawable_padding&quot;>5dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="56"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.doorhanger_subsection_padding` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;doorhanger_subsection_padding&quot;>8dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="57"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.doorhanger_section_padding_small` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;doorhanger_section_padding_small&quot;>10dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="58"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.doorhanger_section_padding_medium` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;doorhanger_section_padding_medium&quot;>20dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="59"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.doorhanger_section_padding_large` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;doorhanger_section_padding_large&quot;>30dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="60"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.doorhanger_icon_size` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;doorhanger_icon_size&quot;>60dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="61"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.doorhanger_rounded_corner_radius` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;doorhanger_rounded_corner_radius&quot;>4dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="62"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.doorhanger_small_icon` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;doorhanger_small_icon&quot;>16dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="63"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.browser_menu_height` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;browser_menu_height&quot;>280dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="65"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.menu_blocking_switch_container_height` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;menu_blocking_switch_container_height&quot;>88dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="67"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.menu_blocking_switch_height` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;menu_blocking_switch_height&quot;>20dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="68"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.menu_blocking_switch_width` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;menu_blocking_switch_width&quot;>46dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="69"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.menu_blocking_switch_margin` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;menu_blocking_switch_margin&quot;>12dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="70"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.search_suggestions_padding_start` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;search_suggestions_padding_start&quot;>56dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="72"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.dimen.search_suggestions_padding_with_icon` appears to be unused"
+ errorLine1=" &lt;dimen name=&quot;search_suggestions_padding_with_icon&quot;>16dp&lt;/dimen>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="73"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.xml.experiments_settings` appears to be unused"
+ errorLine1="&lt;androidx.preference.PreferenceScreen xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
+ errorLine2="^">
+ <location
+ file="src/main/res/xml/experiments_settings.xml"
+ line="6"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.anim.fab_reveal` appears to be unused"
+ errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/anim/fab_reveal.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.find_in_page_background` appears to be unused"
+ errorLine1="&lt;layer-list xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/find_in_page_background.xml"
+ line="4"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.firstrun_button_background` appears to be unused"
+ errorLine1="&lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/firstrun_button_background.xml"
+ line="6"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.layout.focus_preference_left_checkbox` appears to be unused"
+ errorLine1="&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/focus_preference_left_checkbox.xml"
+ line="4"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.foreground_list_item_erase` appears to be unused"
+ errorLine1="&lt;ripple"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/foreground_list_item_erase.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.layout.fragment_about_libraries` appears to be unused"
+ errorLine1="&lt;LinearLayout"
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/fragment_about_libraries.xml"
+ line="6"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.layout.fragment_info` appears to be unused"
+ errorLine1="&lt;FrameLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/fragment_info.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.highlight_dot` appears to be unused"
+ errorLine1="&lt;shape"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/highlight_dot.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.ic_arrowhead_down` appears to be unused"
+ errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/ic_arrowhead_down.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.ic_arrowhead_up` appears to be unused"
+ errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/ic_arrowhead_up.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.ic_check` appears to be unused"
+ errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/ic_check.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.ic_developer` appears to be unused"
+ errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/ic_developer.xml"
+ line="4"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.ic_download` appears to be unused"
+ errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/ic_download.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.ic_firefox` appears to be unused"
+ errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/ic_firefox.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.ic_info` appears to be unused"
+ errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/ic_info.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.ic_internet` appears to be unused"
+ errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/ic_internet.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.ic_language` appears to be unused"
+ errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/ic_language.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.mipmap.ic_launcher_round` appears to be unused">
+ <location
+ file="src/main/res/mipmap-hdpi/ic_launcher_round.png"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.ic_menu` appears to be unused"
+ errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/ic_menu.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.ic_mozilla` appears to be unused"
+ errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/ic_mozilla.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.layout.item_indicator_menu_button` appears to be unused"
+ errorLine1="&lt;merge xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/item_indicator_menu_button.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.layout.menu_item` appears to be unused"
+ errorLine1="&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/menu_item.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.menu_item_dark_background` appears to be unused"
+ errorLine1="&lt;layer-list xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/menu_item_dark_background.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.layout.menu_navigation` appears to be unused"
+ errorLine1="&lt;LinearLayout"
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/menu_navigation.xml"
+ line="6"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.mozac_ic_broken_lock` appears to be unused"
+ errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/mozac_ic_broken_lock.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.pref_key_privacy_block_cryptomining` appears to be unused"
+ errorLine1=" &lt;string name=&quot;pref_key_privacy_block_cryptomining&quot; translatable=&quot;false&quot;>&lt;xliff:g id=&quot;preference_key&quot;>pref_privacy_block_cryptomining&lt;/xliff:g>&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/preference_keys.xml"
+ line="18"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.pref_key_privacy_block_fingerprinting` appears to be unused"
+ errorLine1=" &lt;string name=&quot;pref_key_privacy_block_fingerprinting&quot; translatable=&quot;false&quot;>&lt;xliff:g id=&quot;preference_key&quot;>pref_privacy_block_fingerprinting&lt;/xliff:g>&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/preference_keys.xml"
+ line="19"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.pref_key_privacy_ever_changed_etp` appears to be unused"
+ errorLine1=" &lt;string name=&quot;pref_key_privacy_ever_changed_etp&quot; translatable=&quot;false&quot;>&lt;xliff:g id=&quot;preference_key&quot;>pref_key_privacy_ever_changed_etp&lt;/xliff:g>&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/preference_keys.xml"
+ line="22"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.pref_key_performance_block_images` appears to be unused"
+ errorLine1=" &lt;string name=&quot;pref_key_performance_block_images&quot; translatable=&quot;false&quot;>&lt;xliff:g id=&quot;preference_key&quot;>pref_performance_block_images&lt;/xliff:g>&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/preference_keys.xml"
+ line="29"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.has_opened_new_tab` appears to be unused"
+ errorLine1=" &lt;string name=&quot;has_opened_new_tab&quot; translatable=&quot;false&quot;>&lt;xliff:g id=&quot;preference_key&quot;>has_opened_new_tab&lt;/xliff:g>&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/preference_keys.xml"
+ line="72"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.pref_key_category_safe_browsing` appears to be unused"
+ errorLine1=" &lt;string name=&quot;pref_key_category_safe_browsing&quot; translatable=&quot;false&quot;>&lt;xliff:g id=&quot;preference_key&quot;>safe_browsing_category&lt;/xliff:g>&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/preference_keys.xml"
+ line="76"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.teaser` appears to be unused"
+ errorLine1=" &lt;string name=&quot;teaser&quot;>Automatic private browsing.\nBrowse. Erase. Repeat.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="20"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.feedback_erase` appears to be unused"
+ errorLine1=" &lt;string name=&quot;feedback_erase&quot;>Your browsing history has been erased.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="23"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.search_hint` appears to be unused"
+ errorLine1=" &lt;string name=&quot;search_hint&quot;>Search for %1$s&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="30"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_category_tracking_protection` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_category_tracking_protection&quot;>Protección contra lo seguimiento&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-an/strings.xml"
+ line="34"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.menu_report_site_issue` appears to be unused"
+ errorLine1=" &lt;string name=&quot;menu_report_site_issue&quot;>Report Site Issue&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="36"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_general_summary` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_general_summary&quot;>Əsas səyyah, vərəqlər və dil&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="44"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_autocomplete_topsite_summary` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_topsite_summary&quot;>Ünvan sətrində məşhur 450 saytı avtomatik tamamlamaq üçün aktivləşdirin.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="55"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_autocomplete_user_list_summary` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_user_list_summary&quot;>Ünvan sətrində məşhur 450 saytı avtomatik tamamlamaq üçün aktivləşdirin.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="57"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.menu_trackers_blocked_title` appears to be unused"
+ errorLine1=" &lt;string name=&quot;menu_trackers_blocked_title&quot;>Trackers blocked&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="68"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.menu_trackers_blocked_subtitle` appears to be unused"
+ errorLine1=" &lt;string name=&quot;menu_trackers_blocked_subtitle&quot;>Turning this off may fix some site problems&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="72"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_privacy_should_block_cookies_no_option` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_no_option&quot;>No&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-an/strings.xml"
+ line="72"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_privacy_should_block_cookies_yes_option` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_privacy_should_block_cookies_yes_option&quot;>Sí&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-an/strings.xml"
+ line="74"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.menu_content_blocking` appears to be unused"
+ errorLine1=" &lt;string name=&quot;menu_content_blocking&quot;>Content Blocking&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="75"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.menu_content_blocking_subtitle` appears to be unused"
+ errorLine1=" &lt;string name=&quot;menu_content_blocking_subtitle&quot;>Turn off to fix some sites&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="77"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.text_selection_search_action` appears to be unused"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action&quot;>Soek privaat&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-af/strings.xml"
+ line="87"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.shortcut_erase_and_open_long_label` appears to be unused"
+ errorLine1=" &lt;string name=&quot;shortcut_erase_and_open_long_label&quot;>Erase and open %1$s&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="122"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.text_selection_search_action_klar` appears to be unused"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action_klar&quot;>Search in Klar&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="131"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.text_selection_search_action_focus_beta` appears to be unused"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action_focus_beta&quot;>Search in Focus Beta&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="135"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.text_selection_search_action_focus_nightly` appears to be unused"
+ errorLine1=" &lt;string name=&quot;text_selection_search_action_focus_nightly&quot;>Search in Focus Nightly&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="139"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.dialog_addtohomescreen_tracking_protection` appears to be unused"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_tracking_protection&quot;>Este alcorce s\&apos;ubrirá quan la protección contra seguimiento siga desactivada&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-an/strings.xml"
+ line="168"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_category_data_collection_use` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_category_data_collection_use&quot;>Data Collection &amp;amp; Use&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="185"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_search_engine_default` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_search_engine_default&quot;>Default&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="196"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_category_autocomplete_manage_sites` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_category_autocomplete_manage_sites&quot;>Manage sites&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="225"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.enable_search_suggestion_title` appears to be unused"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_title&quot;>Axtarış məsləhətlərini aktiv etmək istərdiniz?&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="232"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.enable_search_suggestion_subtitle` appears to be unused"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle&quot;>Axtarış məsləhətlərini almaq üçün %1$s ünvan sətrinə yazdıqlarınızı seçdiyiniz axtarış mühərriyinə göndərməlidir. %2$s.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="233"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.enable_search_suggestion_subtitle_learnmore` appears to be unused"
+ errorLine1=" &lt;string name=&quot;enable_search_suggestion_subtitle_learnmore&quot;>Ətraflı öyrən&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="234"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_autocomplete_explanation_text` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_explanation_text&quot;>Your autocomplete list:&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="234"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_autocomplete_action_add2` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_action_add2&quot;>Add URL&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="237"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.custom_autocomplete_quick_add` appears to be unused"
+ errorLine1=" &lt;string name=&quot;custom_autocomplete_quick_add&quot;>Add custom URL&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="243"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.tip_request_desktop` appears to be unused"
+ errorLine1=" &lt;string name=&quot;tip_request_desktop&quot;>Bütöv masaüstü saytını görmək istəyirsiniz?%1$s Menyu &amp;gt; Masaüstü saytını istə&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="244"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.add_custom_autocomplete_label` appears to be unused"
+ errorLine1=" &lt;string name=&quot;add_custom_autocomplete_label&quot;>Add link to autocomplete&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="246"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.tip_explain_allowlist` appears to be unused"
+ errorLine1=" &lt;string name=&quot;tip_explain_allowlist&quot;>Güvəndiyiniz saytdır?\n İcazə siyahısı tanıdığınız və güvəndiyiniz saytlarda İzlənmə Qorumasını söndürür.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="246"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_autocomplete_custom_summary` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_custom_summary&quot;>Add and manage custom autocomplete URLs.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="261"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_autocomplete_add_example` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_autocomplete_add_example&quot;>Example: example.com&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="273"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_category_privacy` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_category_privacy&quot;>Privacy&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="292"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_category_performance` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_category_performance&quot;>Performance&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="330"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.content_description_clear_input` appears to be unused"
+ errorLine1=" &lt;string name=&quot;content_description_clear_input&quot;>Clear input&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="408"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.content_description_tab_counter` appears to be unused"
+ errorLine1=" &lt;string name=&quot;content_description_tab_counter&quot;>Tabs open: %1$s&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="422"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.content_description_lock` appears to be unused"
+ errorLine1=" &lt;string name=&quot;content_description_lock&quot;>Secure connection&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="426"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.accessibility_announcement_loading` appears to be unused"
+ errorLine1=" &lt;string name=&quot;accessibility_announcement_loading&quot;>Loading&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="430"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.accessibility_announcement_loading_finished` appears to be unused"
+ errorLine1=" &lt;string name=&quot;accessibility_announcement_loading_finished&quot;>Website loaded&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="434"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.content_description_menu` appears to be unused"
+ errorLine1=" &lt;string name=&quot;content_description_menu&quot;>More options&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="437"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.indicator_content_description_menu` appears to be unused"
+ errorLine1=" &lt;string name=&quot;indicator_content_description_menu&quot;>More options button&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="441"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.content_description_customtab_exit` appears to be unused"
+ errorLine1=" &lt;string name=&quot;content_description_customtab_exit&quot;>Return to previous app&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="456"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.content_description_trackers_blocked` appears to be unused"
+ errorLine1=" &lt;string name=&quot;content_description_trackers_blocked&quot;>Number of trackers blocked&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="460"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.content_description_blocking_switch` appears to be unused"
+ errorLine1=" &lt;string name=&quot;content_description_blocking_switch&quot;>Block trackers&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="464"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.your_rights` appears to be unused"
+ errorLine1=" &lt;string name=&quot;your_rights&quot;>Your Rights&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="466"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.external_app_prompt_title` appears to be unused"
+ errorLine1=" &lt;string name=&quot;external_app_prompt_title&quot;>Open link in another app&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="468"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.external_app_prompt` appears to be unused"
+ errorLine1=" &lt;string name=&quot;external_app_prompt&quot;>You can leave %1$s to open this link in %2$s.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="471"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.external_app_prompt_no_app_title` appears to be unused"
+ errorLine1=" &lt;string name=&quot;external_app_prompt_no_app_title&quot;>Find an app that can open link&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="473"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.external_app_prompt_no_app` appears to be unused"
+ errorLine1=" &lt;string name=&quot;external_app_prompt_no_app&quot;>None of the apps on your device are able to open this link. You can leave %1$s to search %2$s for an app that can.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="476"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.external_multiple_apps_matched_exit` appears to be unused"
+ errorLine1=" &lt;string name=&quot;external_multiple_apps_matched_exit&quot;>Exit Private Browsing?&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="478"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.onboarding_title` appears to be unused"
+ errorLine1=" &lt;string name=&quot;onboarding_title&quot;>Tere tulemast %1$sesse!&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="478"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.onboarding_description` appears to be unused"
+ errorLine1=" &lt;string name=&quot;onboarding_description&quot;>Järgmise taseme privaatne lehitsemine, puhuks kui vajad seda&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="481"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.onboarding_incognito_title` appears to be unused"
+ errorLine1=" &lt;string name=&quot;onboarding_incognito_title&quot;>Kus inkognito kohtub nähtamatusega&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="484"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.onboarding_incognito_description` appears to be unused"
+ errorLine1=" &lt;string name=&quot;onboarding_incognito_description&quot;>%s on esmajoones privaatsusele orienteeritud brauser, millesse on sisse ehitatud eriti tugev jälitamise ja küpsiste vastane kaitse.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="488"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.onboarding_history_title` appears to be unused"
+ errorLine1=" &lt;string name=&quot;onboarding_history_title&quot;>Lehitse nii nagu seda poleks kunagi juhtunud&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="491"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.onboarding_history_description2` appears to be unused"
+ errorLine1=" &lt;string name=&quot;onboarding_history_description2&quot;>Üks puudutus kustutab lehitsemise ajaloo ja küpsised ning takistab reklaamidel sinu jälitamist.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="495"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.onboarding_protection_title` appears to be unused"
+ errorLine1=" &lt;string name=&quot;onboarding_protection_title&quot;>Privaatsus, mis sobib igas olukorras&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="498"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.onboarding_protection_description` appears to be unused"
+ errorLine1=" &lt;string name=&quot;onboarding_protection_description&quot;>Kui sinu lehitsemine vajab muutust, siis on privaatsuse taset lihtne suurendada või vähendada.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="501"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.onboarding_start_browsing` appears to be unused"
+ errorLine1=" &lt;string name=&quot;onboarding_start_browsing&quot;>Alusta veebilehitsemist&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="504"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.content_blocking_disabled` appears to be unused"
+ errorLine1=" &lt;string name=&quot;content_blocking_disabled&quot;>-&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="546"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.dialog_addtohomescreen_action_yes` appears to be unused"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_action_yes&quot;>YES&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="551"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.dialog_addtohomescreen_action_no` appears to be unused"
+ errorLine1=" &lt;string name=&quot;dialog_addtohomescreen_action_no&quot;>NO&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="556"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.gv_prompt_username_hint` appears to be unused"
+ errorLine1=" &lt;string name=&quot;gv_prompt_username_hint&quot;>Username&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="611"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.gv_prompt_password_hint` appears to be unused"
+ errorLine1=" &lt;string name=&quot;gv_prompt_password_hint&quot;>Password&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="612"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.gv_prompt_clear` appears to be unused"
+ errorLine1=" &lt;string name=&quot;gv_prompt_clear&quot;>Clear&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="613"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.security_popup_secure_connection` appears to be unused"
+ errorLine1=" &lt;string name=&quot;security_popup_secure_connection&quot;>Secure Connection&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="617"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.security_popup_insecure_connection` appears to be unused"
+ errorLine1=" &lt;string name=&quot;security_popup_insecure_connection&quot;>Insecure Connection&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="618"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.security_popup_security_verified` appears to be unused"
+ errorLine1=" &lt;string name=&quot;security_popup_security_verified&quot;>Verified by: %1$s&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="620"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.site_security_icon_content_description` appears to be unused"
+ errorLine1=" &lt;string name=&quot;site_security_icon_content_description&quot;>Site Security&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="623"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.find_in_page_input` appears to be unused"
+ errorLine1=" &lt;string name=&quot;find_in_page_input&quot;>Find in page&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="630"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.find_in_page_result` appears to be unused"
+ errorLine1=" &lt;string name=&quot;find_in_page_result&quot;>%1$d/%2$d&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="634"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.accessibility_find_in_page_result` appears to be unused"
+ errorLine1=" &lt;string name=&quot;accessibility_find_in_page_result&quot;>%1$d out of %2$d&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="637"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.accessibility_next_result` appears to be unused"
+ errorLine1=" &lt;string name=&quot;accessibility_next_result&quot;>Find next result&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="640"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.accessibility_previous_result` appears to be unused"
+ errorLine1=" &lt;string name=&quot;accessibility_previous_result&quot;>Find previous result&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="642"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.accessibility_dismiss_find_in_page` appears to be unused"
+ errorLine1=" &lt;string name=&quot;accessibility_dismiss_find_in_page&quot;>Dismiss find in page&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="644"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_performance_request_desktop_site` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_performance_request_desktop_site&quot;>Request desktop site&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="647"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.biometric_auth_title` appears to be unused"
+ errorLine1=" &lt;string name=&quot;biometric_auth_title&quot;>ألغِ قفل %1$s&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="684"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.biometric_auth_description` appears to be unused"
+ errorLine1=" &lt;string name=&quot;biometric_auth_description&quot;>المس مجسّ البصمة للمتابعة.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="687"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.tip_disable_tracking_protection2` appears to be unused"
+ errorLine1=" &lt;string name=&quot;tip_disable_tracking_protection2&quot;>साइट अनपेक्षितरित्या वागत आहे?\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-mr/strings.xml"
+ line="690"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.biometric_auth_new_session` appears to be unused"
+ errorLine1=" &lt;string name=&quot;biometric_auth_new_session&quot;>جلسة جديدة&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="691"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.tip_disable_tracking_protection3` appears to be unused"
+ errorLine1=" &lt;string name=&quot;tip_disable_tracking_protection3&quot;>أتظنّ أن محتوى الموقع ناقص أو أنه غريب؟\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="735"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.tip_request_desktop2` appears to be unused"
+ errorLine1=" &lt;string name=&quot;tip_request_desktop2&quot;>أتريد الاطلاع على النسخة الكاملة من الموقع؟\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="757"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.tip_explain_allowlist3` appears to be unused"
+ errorLine1=" &lt;string name=&quot;tip_explain_allowlist3&quot;>أتريد تعطيل الحماية الموسّعة من التعقب في المواقع التي تثق بها؟\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="765"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.tip_fresh_look` appears to be unused"
+ errorLine1=" &lt;string name=&quot;tip_fresh_look&quot;>تسأل عن الشكل؟ طبعًا لدينا مظهر جديد كليًا!\n اقرأ المزيد عنه وعن التحديثات الأخرى على %1$s.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="771"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.tip_about_shortcuts` appears to be unused"
+ errorLine1=" &lt;string name=&quot;tip_about_shortcuts&quot;>احفظ اختصارات المواقع التي تزورها بكثرة:\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="775"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_category_safe_browsing` appears to be unused"
+ errorLine1=" &lt;string moz:removedIn=&quot;97&quot; name=&quot;preference_category_safe_browsing&quot;>التصفّح الآمن&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-ar/strings.xml"
+ line="788"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.biometric_auth_open_link_new_session` appears to be unused"
+ errorLine1=" &lt;string name=&quot;biometric_auth_open_link_new_session&quot;>Open Link in New Session&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="828"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.biometric_auth_not_recognized_error` appears to be unused"
+ errorLine1=" &lt;string name=&quot;biometric_auth_not_recognized_error&quot;>Fingerprint not recognized. Try again.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="835"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.biometric_auth_moved_too_quickly` appears to be unused"
+ errorLine1=" &lt;string name=&quot;biometric_auth_moved_too_quickly&quot;>Finger moved too fast. Try again.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="839"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.tip_disable_tracking_protection` appears to be unused"
+ errorLine1=" &lt;string name=&quot;tip_disable_tracking_protection&quot;>Site behaving unexpectedly?\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="864"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.tip_add_to_homescreen` appears to be unused"
+ errorLine1=" &lt;string name=&quot;tip_add_to_homescreen&quot;>&lt;![CDATA[Get one-tap access to sites you use most%1$s Menu > Add to Home screen]]&gt;&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="869"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.tip_set_default_browser` appears to be unused"
+ errorLine1=" &lt;string name=&quot;tip_set_default_browser&quot;>Open every link in %1$s\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="874"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.tip_autocomplete_url` appears to be unused"
+ errorLine1=" &lt;string name=&quot;tip_autocomplete_url&quot;>Autocomplete URLs for sites you use most\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="880"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.tip_open_in_new_tab` appears to be unused"
+ errorLine1=" &lt;string name=&quot;tip_open_in_new_tab&quot;>Open a link in a new tab\n"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="886"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.tip_disable_tips2` appears to be unused"
+ errorLine1=" &lt;string name=&quot;tip_disable_tips2&quot;>Turn off tips on the start screen&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="891"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.new_tab_opened_snackbar` appears to be unused"
+ errorLine1=" &lt;string name=&quot;new_tab_opened_snackbar&quot;>New tab opened&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="894"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.open_new_tab_snackbar` appears to be unused"
+ errorLine1=" &lt;string name=&quot;open_new_tab_snackbar&quot;>Switch&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="897"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_open_new_tab` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_open_new_tab&quot;>Switch to link in new tab immediately&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="903"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.preference_category_block_cookies` appears to be unused"
+ errorLine1=" &lt;string name=&quot;preference_category_block_cookies&quot;>Would you like to block cookies?&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="927"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.tab_crash_report_title` appears to be unused"
+ errorLine1=" &lt;string name=&quot;tab_crash_report_title&quot;>Tab Crashed&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="930"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.cfr_for_toolbar_shield_icon` appears to be unused"
+ errorLine1=" &lt;string name=&quot;cfr_for_toolbar_shield_icon&quot;>Näib, et see sait üritas sind jälitada. Saidi sätete ja jälitajate blokkimise statistika vaatamiseks puuduta kilpi.&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="958"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.cfr_for_toolbar_delete_icon` appears to be unused"
+ errorLine1=" &lt;string name=&quot;cfr_for_toolbar_delete_icon&quot;>Vabane sellel seansil oma isiklikest andmetest, lehitsemise ajaloost ja muust, puudutades prügikasti nuppu. Proovi!&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-et/strings.xml"
+ line="971"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.mozac_browser_errorpages_security_bad_cert_title` appears to be unused"
+ errorLine1=" &lt;string name=&quot;mozac_browser_errorpages_security_bad_cert_title&quot;>Connection not secure&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="1005"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.mozac_browser_errorpages_security_bad_cert_message` appears to be unused"
+ errorLine1=" &lt;string name=&quot;mozac_browser_errorpages_security_bad_cert_message&quot; >&lt;![CDATA["
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="1008"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.mozac_browser_errorpages_security_bad_cert_techInfo` appears to be unused"
+ errorLine1=" &lt;string name=&quot;mozac_browser_errorpages_security_bad_cert_techInfo&quot;>&lt;![CDATA["
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="1014"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.string.cfr_close_button_description` appears to be unused"
+ errorLine1=" &lt;string name=&quot;cfr_close_button_description&quot;>Close popup&lt;/string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="1029"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.style.SettingsTheme` appears to be unused"
+ errorLine1=" &lt;style name=&quot;SettingsTheme&quot; parent=&quot;Theme.MaterialComponents.DayNight.NoActionBar.Bridge&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/styles.xml"
+ line="117"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.style.SettingsActionButtonStyle` appears to be unused"
+ errorLine1=" &lt;style name=&quot;SettingsActionButtonStyle&quot; parent=&quot;@style/Widget.AppCompat.ActionButton&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/styles.xml"
+ line="130"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.style.InfoTheme` appears to be unused"
+ errorLine1=" &lt;style name=&quot;InfoTheme&quot; parent=&quot;SettingsTheme&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/styles.xml"
+ line="151"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.style.Mozac_Browser_Menu` appears to be unused"
+ errorLine1=" &lt;style name=&quot;Mozac.Browser.Menu&quot; parent=&quot;&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/styles.xml"
+ line="159"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.style.Mozac_Browser_Menu_Item_Text` appears to be unused"
+ errorLine1=" &lt;style name=&quot;Mozac.Browser.Menu.Item.Text&quot; parent=&quot;@android:style/TextAppearance.Material.Menu&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/styles.xml"
+ line="164"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.style.AppTheme_ContextMenuItem` appears to be unused"
+ errorLine1=" &lt;style name=&quot;AppTheme.ContextMenuItem&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/styles.xml"
+ line="174"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.style.ContextMenuTextAppearence` appears to be unused"
+ errorLine1=" &lt;style name=&quot;ContextMenuTextAppearence&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/styles.xml"
+ line="196"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.style.DoorHanger` appears to be unused"
+ errorLine1=" &lt;style name=&quot;DoorHanger&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/styles.xml"
+ line="204"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.style.DoorHanger_Medium` appears to be unused"
+ errorLine1=" &lt;style name=&quot;DoorHanger.Medium&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/styles.xml"
+ line="209"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.style.DoorHanger_Medium_Bold` appears to be unused"
+ errorLine1=" &lt;style name=&quot;DoorHanger.Medium.Bold&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/styles.xml"
+ line="213"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.style.DoorHanger_Medium_Light` appears to be unused"
+ errorLine1=" &lt;style name=&quot;DoorHanger.Medium.Light&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/styles.xml"
+ line="217"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.style.HintTextAppearance` appears to be unused"
+ errorLine1=" &lt;style name=&quot;HintTextAppearance&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/styles.xml"
+ line="221"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.style.ColorHandleTheme` appears to be unused"
+ errorLine1=" &lt;style name=&quot;ColorHandleTheme&quot;>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/styles.xml"
+ line="226"
+ column="12"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.tab_number_border` appears to be unused"
+ errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/tab_number_border.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.top_rounded_corners_bottom_sheet_background` appears to be unused"
+ errorLine1="&lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/top_rounded_corners_bottom_sheet_background.xml"
+ line="5"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="UnusedResources"
+ message="The resource `R.drawable.urlbar_background` appears to be unused"
+ errorLine1="&lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
+ errorLine2="^">
+ <location
+ file="src/main/res/drawable/urlbar_background.xml"
+ line="4"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MonochromeLauncherIcon"
+ message="The application adaptive icon is missing a monochrome tag"
+ errorLine1="&lt;adaptive-icon xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
+ errorLine2="^">
+ <location
+ file="src/debug/res/mipmap-anydpi-v26/ic_launcher.xml"
+ line="6"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MonochromeLauncherIcon"
+ message="The application adaptive icon is missing a monochrome tag"
+ errorLine1="&lt;adaptive-icon xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
+ errorLine2="^">
+ <location
+ file="src/main/res/mipmap-anydpi-v26/ic_launcher.xml"
+ line="6"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/ic_splash_screen.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/ic_splash_screen.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/onboarding_second_screen_icon.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/onboarding_second_screen_icon.png"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-xhdpi`: focus_search_widget.png, focus_search_widget_promote_dialog.png, focus_snackbar_background.xml">
+ <location
+ file="src/main/res/drawable-xhdpi"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-xxhdpi`: focus_search_widget.png, focus_search_widget_promote_dialog.png, focus_snackbar_background.xml">
+ <location
+ file="src/main/res/drawable-xxhdpi"/>
+ </issue>
+
+ <issue
+ id="IconMissingDensityFolder"
+ message="Missing density variation folders in `src/main/res`: drawable-mdpi">
+ <location
+ file="src/main/res"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` lambda should call `View#performClick` when a click is detected"
+ errorLine1=" handleView.setOnTouchListener { _, event ->"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/org/mozilla/focus/autocomplete/AutocompleteListFragment.kt"
+ line="307"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` lambda should call `View#performClick` when a click is detected"
+ errorLine1=" handleView.setOnTouchListener { _, event ->"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/org/mozilla/focus/exceptions/ExceptionsListFragment.kt"
+ line="301"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" &lt;ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/firstrun_page.xml"
+ line="41"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" &lt;ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/item_indicator_menu_button.xml"
+ line="7"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
+ errorLine1=" android:paddingEnd=&quot;?android:attr/listPreferredItemPaddingStart&quot; />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/item_custom_domain.xml"
+ line="35"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
+ errorLine1=" android:paddingEnd=&quot;?android:attr/listPreferredItemPaddingStart&quot; />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/item_custom_domain.xml"
+ line="40"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
+ errorLine1=" android:paddingStart=&quot;5dp&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/preference_manual_add_search_engine.xml"
+ line="45"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
+ errorLine1=" android:paddingLeft=&quot;5dp&quot;/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/preference_manual_add_search_engine.xml"
+ line="46"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Redundant attribute `paddingLeft`; already defining `paddingStart` with `targetSdkVersion` 34"
+ errorLine1=" android:paddingLeft=&quot;5dp&quot;/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/preference_manual_add_search_engine.xml"
+ line="46"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidTest/java/org/mozilla/focus/screenshots/FirstRunScreenshots.kt"
+ line="30"
+ column="5"/>
+ </issue>
+
+</issues>
diff --git a/mobile/android/focus-android/app/lint.xml b/mobile/android/focus-android/app/lint.xml
new file mode 100644
index 0000000000..f929411dd1
--- /dev/null
+++ b/mobile/android/focus-android/app/lint.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<lint>
+ <!-- While we are developing the app and importing/exporting strings from the l10n repository
+ there will always be missing or extra translations. -->
+ <issue id="MissingTranslation" severity="ignore" />
+ <issue id="PluralsCandidate" severity="ignore" />
+ <issue id="StringFormatCount" severity="ignore" />
+ <issue id="TypographyEllipsis" severity="ignore" />
+ <issue id="ExtraTranslation" severity="warning" />
+
+ <!-- Ignore support library lint bug: https://code.google.com/p/android/issues/detail?id=227098
+ (Present in 25.3.1, despite claims of being fixed in 23) -->
+ <issue id="InconsistentLayout">
+ <ignore path="**/appcompat-v7/**/res/layout/notification_template_custom_big.xml"/>
+ </issue>
+
+ <issue id="InvalidPackage">
+ <!-- Sentry: it uses one SDK for desktop apps and Android apps so I assume it's
+ calling functions from desktop apps and silently ignoring those calls when
+ the functions are not available on Android. -->
+ <ignore path="**/sentry*.jar" />
+ <ignore path="**/junit*.jar" />
+ </issue>
+</lint>
diff --git a/mobile/android/focus-android/app/metrics.yaml b/mobile/android/focus-android/app/metrics.yaml
new file mode 100644
index 0000000000..e0fecc694e
--- /dev/null
+++ b/mobile/android/focus-android/app/metrics.yaml
@@ -0,0 +1,2458 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+---
+$schema: moz://mozilla.org/schemas/glean/metrics/2-0-0
+
+no_lint:
+ - CATEGORY_GENERIC
+ - COMMON_PREFIX
+
+browser:
+ is_default:
+ type: boolean
+ lifetime: application
+ description: |
+ Is Focus the default browser? This is true only if the user
+ changes the default browser through the app settings.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/4545
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5065#issuecomment-894328647
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ default_search_engine:
+ type: string
+ lifetime: application
+ description: |
+ A string containing the default search engine name.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/4545
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5065#issuecomment-894328647
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ send_in_pings:
+ - baseline
+ - metrics
+ no_lint:
+ - BASELINE_PING
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ locale_override:
+ type: string
+ lifetime: application
+ description: |
+ The locale that differs from the system locale if a user
+ specifically overrides it for the app.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/4545
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5065#issuecomment-894328647
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ - https://github.com/mozilla-mobile/firefox-android/pull/4040
+ data_sensitivity:
+ - technical
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ total_uri_count:
+ type: counter
+ description: |
+ Records count of URIs visited by the user in the current session,
+ including page reloads.
+ It does not include background page requests and URIs from embedded pages
+ but may be incremented without user interaction by website scripts
+ that programmatically redirect to a new location.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5518
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5523
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - mcarare@mozilla.com
+ send_in_pings:
+ - metrics
+ - baseline
+ no_lint:
+ - BASELINE_PING
+ expires: never
+ install_source:
+ type: string
+ lifetime: application
+ description: Used to identify the source the app was installed from.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5684
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5694
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - technical
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ back_button_pressed:
+ type: event
+ description: Back button has been presed on a browser tab.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5914
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5913
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ action_performed:
+ description: |
+ The action performed by pressing back button:
+ erase_to_home or erase_to_external_app.
+ type: string
+ report_site_issue_counter:
+ type: counter
+ description: |
+ A counter that indicates how many times a user has tapped
+ the report site issue from browser menu
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5897
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5898
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+
+perf.startup:
+ startup_type:
+ type: labeled_counter
+ description: |
+ Indicates how the browser was started. The label is divided into two
+ variables. `state` is how cached the browser is when started. `path` is
+ what code path we are expected to take. Together, they create a combined
+ label: `state_path`. For brevity, the specific states are documented in
+ the [Fenix perf
+ glossary](https://wiki.mozilla.org/index.php?title=Performance/Fenix/Glossary).
+ <br><br>
+ This implementation is intended to be simple, not comprehensive. We list
+ the implications below.
+
+ <br><br>
+ These ways of opening the app undesirably adds events to our primary
+ buckets (non-`unknown` cases):
+ <br>- App switcher cold/warm: `cold/warm_` + duplicates path from
+ previous launch
+ <br>- An Intent is sent internally that's uses `ACTION_MAIN` or
+ `ACTION_VIEW` could be: `*_main/view` (unknown if this ever happens)
+ <br>- A command-line launch uses `ACTION_MAIN` or `ACTION_VIEW` could be:
+ `*_main/view`
+
+ <br><br>
+ These ways of opening the app undesirably do not add their events to our
+ primary buckets:
+ <br>- Close and reopen the app very quickly: no event is recorded.
+
+ <br><br>
+ These ways of opening the app don't affect our primary buckets:
+ <br>- App switcher hot: `hot_unknown`
+ <br>- PWA (all states): `unknown_unknown`
+ <br>- Custom tab: `unknown_view`
+ <br>- Cold start where a service or other non-activity starts the process
+ (not manually tested) - this seems to happen if you have the homescreen
+ widget: `unknown_*`
+ <br>- Another activity is drawn before MainActivity or CustomTabActivity
+ (e.g. widget voice
+ search): `unknown_*`
+
+ <br>
+ In addition to the events above, the `unknown` state may be chosen when we
+ were unable to determine a cause due to implementation details or the API
+ was used incorrectly. We may be able to record the events listed above
+ into different buckets but we kept the implementation simple for now.
+ <br><br>
+ N.B.: for implementation simplicity, we duplicate the logic in app that
+ determines `path` so it's not perfectly accurate. In one way, we record we
+ is intended to happen rather than what actually happened (e.g. the user
+ may click a link so we record VIEW but the app does a MAIN by going to the
+ homescreen because the link was invalid).
+ labels:
+ - cold_main
+ - cold_view
+ - cold_unknown
+ - warm_main
+ - warm_view
+ - warm_unknown
+ - hot_main
+ - hot_view
+ - hot_unknown
+ - unknown_main
+ - unknown_view
+ - unknown_unknown
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/7079
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - perf-telemetry-alerts@mozilla.com
+ - mleclair@mozilla.com
+ expires: never
+
+activation:
+ activation_id:
+ type: uuid
+ lifetime: user
+ description: |
+ An alternate identifier, not correlated with the client_id, generated once
+ and only sent with the activation ping.
+ send_in_pings:
+ - activation
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/4545
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/issues/4901
+ data_sensitivity:
+ - highly_sensitive
+ notification_emails:
+ - android-probes@mozilla.com
+ - jalmeida@mozilla.com
+ expires: never
+
+legacy_ids:
+ client_id:
+ type: uuid
+ description: |
+ Sets the legacy client ID as part of the deletion-request ping.
+ **No longer reported set since Focus 124, where legacy telemetry was removed**.
+ send_in_pings:
+ - deletion-request
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/4545
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1805256
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5512#issuecomment-1023668181
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1805256
+ notification_emails:
+ - jalmeida@mozilla.com
+ - android-probes@mozilla.com
+ - tlong@mozilla.com
+ expires: never
+
+browser.search:
+ with_ads:
+ type: labeled_counter
+ description: |
+ Records counts of SERP pages with adverts displayed.
+ The key format is
+ `<provider-name>.in-content.[sap|sap-follow-on|organic].[code|none](.[channel])?`,
+ where:
+
+ * `provider-name` is the name of the provider,
+ * `sap|sap-follow-on|organic` is the search access point,
+ * `code` is set when the url matches any of the provider's code prefixes,
+ * `channel` is set to the url "channel" query parameter.
+ send_in_pings:
+ - metrics
+ bugs:
+ - https://github.com/mozilla-mobile/fenix/issues/4967
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1804057
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1799049
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1809447
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/4968#issuecomment-879256443
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/focus-android/pull/8109#issuecomment-1337394286
+ - https://github.com/mozilla-mobile/firefox-android/pull/523#issuecomment-1377494482
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ ad_clicks:
+ type: labeled_counter
+ description: |
+ Records clicks of adverts on SERP pages.
+ The key format is
+ `<provider-name>.in-content.[sap|sap-follow-on|organic].[code|none](.[channel])?`,
+ where:
+
+ * `provider-name` is the name of the provider,
+ * `sap|sap-follow-on|organic` is the search access point,
+ * `code` is set when the url matches any of the provider's code prefixes,
+ * `channel` is set to the url "channel" query parameter.
+ send_in_pings:
+ - metrics
+ - baseline
+ no_lint:
+ - BASELINE_PING
+ bugs:
+ - https://github.com/mozilla-mobile/fenix/issues/4967
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1804057
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1809447
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/4968#issuecomment-879256443
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/focus-android/pull/8109#issuecomment-1337394286
+ - https://github.com/mozilla-mobile/firefox-android/pull/523#issuecomment-1377494482
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ in_content:
+ type: labeled_counter
+ description: |
+ Records the type of interaction a user has on SERP pages.
+ send_in_pings:
+ - metrics
+ - baseline
+ no_lint:
+ - BASELINE_PING
+ bugs:
+ - https://github.com/mozilla-mobile/fenix/issues/4967
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1809447
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/4968#issuecomment-879256443
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/523#issuecomment-1377494482
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+
+ search_count:
+ type: labeled_counter
+ description: |
+ The labels for this counter are `<search-engine-name>.<source>`.
+
+ If the search engine is bundled with Focus `search-engine-name` will be
+ the name of the search engine. If it's a custom search engine (defined:
+ https://github.com/mozilla-mobile/fenix/issues/1607) the value will be
+ `custom`.
+
+ `source` will be: `action`, `suggestion`
+ send_in_pings:
+ - metrics
+ - baseline
+ no_lint:
+ - BASELINE_PING
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/6229
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/6238
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - technical
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+
+mozilla_products:
+ has_fenix_installed:
+ type: boolean
+ lifetime: application
+ description: |
+ If Fenix is installed on the users's device.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5295
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5303
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - technical
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ is_fenix_default_browser:
+ type: boolean
+ lifetime: application
+ description: |
+ Fenix is the default browser on user's device
+ send_in_pings:
+ - metrics
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5295
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5303
+ - https://github.com/mozilla-mobile/focus-android/pull/6315
+ - https://github.com/mozilla-mobile/firefox-android/pull/632
+ data_sensitivity:
+ - technical
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+
+autocomplete:
+ domain_added:
+ type: counter
+ description: |
+ A counter that indicates how many times a user has added
+ a website to the autocomplete list.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5885
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5886
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ domain_removed:
+ type: counter
+ description: |
+ A counter that indicates how many times a user has removed
+ a website from the autocomplete list.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5885
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5886
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ list_order_changed:
+ type: counter
+ description: |
+ A counter that indicates how many times a user has reordered
+ the autocomplete list.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5885
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5886
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ top_sites_setting_changed:
+ type: event
+ description: |
+ Autocomplete setting for top sites has changed.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5885
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5940
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ is_enabled:
+ description: The new setting true for ON, false for OFF
+ type: boolean
+ favorite_sites_setting_changed:
+ type: event
+ description: |
+ Autocomplete setting for favorite sites has changed.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5885
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5940
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ is_enabled:
+ description: The new setting true for ON, false for OFF
+ type: boolean
+
+shortcuts:
+ shortcuts_on_home_number:
+ type: quantity
+ description: |
+ The number of shortcuts the user has on home screen,
+ 0, 1, 2, 3 or 4 (maximum)
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5056
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5189
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ unit: shortcut(s)
+ shortcut_opened_counter:
+ type: counter
+ description: |
+ A counter that indicates how many times a user has opened
+ a website from a shortcut in the home screen.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5056
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5189
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ shortcut_added_counter:
+ type: counter
+ description: |
+ A counter that indicates how many times a user has added
+ a website to shortcuts.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5056
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5189
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ shortcut_removed_counter:
+ type: labeled_counter
+ description: |
+ A counter that indicates how many times a user has removed
+ a website from shortcuts.
+ It also indicates the screen it was removed from, home or browser.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5056
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5189
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ labels:
+ - removed_from_browser_menu
+ - removed_from_home_screen
+tracking_protection:
+ toolbar_shield_clicked:
+ type: counter
+ description: |
+ A counter that indicates how many times a user has opened
+ the tracking protection settings panel from the toolbar.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5057
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5163
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+
+ tracking_protection_changed:
+ type: event
+ description: |
+ The user has changed the setting for enhanced tracking protection.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5057
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5163
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ extra_keys:
+ is_enabled:
+ description: The new setting for ETP, true for ON, false for OFF
+ type: boolean
+
+ has_ever_changed_etp:
+ type: boolean
+ description: |
+ The user has changed the setting for enhanced tracking protection
+ at least once.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5057
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5163
+ - https://github.com/mozilla-mobile/focus-android/pull/5543
+ data_sensitivity:
+ - interaction
+ lifetime: user
+ notification_emails:
+ - android-probes@mozilla.com
+ - mcarare@mozilla.com
+ expires: never
+
+ tracker_setting_changed:
+ type: event
+ description: |
+ The user has changed the advertising tracker protection state.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5057
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5163
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ extra_keys:
+ source_of_change:
+ description: The source of interaction, "Panel" or "Settings"
+ type: string
+ tracker_changed:
+ description: |
+ The tracker changed, "Advertising", "Analytics", "Social", "Content"
+ type: string
+ is_enabled:
+ description: The new setting for tracker, true for ON, false for OFF
+ type: boolean
+
+ has_social_blocked:
+ type: boolean
+ description: |
+ The user has changed the setting for enhanced tracking protection
+ at least once.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5057
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5163
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+
+ has_advertising_blocked:
+ type: boolean
+ description: |
+ The user has changed the setting for enhanced tracking protection
+ at least once.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5057
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5163
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+
+ has_analytics_blocked:
+ type: boolean
+ description: |
+ The user has changed the setting for enhanced tracking protection
+ at least once.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5057
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5163
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+
+ has_content_blocked:
+ type: boolean
+ description: |
+ The user has changed the setting for enhanced tracking protection
+ at least once.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5057
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5163
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+pro_tips:
+ tip_displayed:
+ type: event
+ description: A pro tip has been displayed.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5541
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5542
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ tip_id:
+ description: |
+ The tip code of tip being displayed. Can be one of fresh_look_tip,
+ shortcuts_tip, allow_list_tip, etp_tip,request_desktop_tip.
+ Note that fresh_look_tip is automatically displayed on home screen.
+ type: string
+ link_in_tip_clicked:
+ type: event
+ description: A link in a pro tip has been clicked.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5541
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5542
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ tip_id:
+ description: |
+ The tip code of tip being clicked.
+ Can be one of fresh_look_tip, allow_list_tip, request_desktop_tip.
+ type: string
+
+preferences:
+ user_theme:
+ type: string
+ description: >
+ A string that indicates the theme.
+ Can be one of LIGHT, DARK, or FOLLOW DEVICE.
+ Default is FOLLOW DEVICE.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5519
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5526
+ - https://github.com/mozilla-mobile/focus-android/pull/7418#issuecomment-1195518264
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ - https://github.com/mozilla-mobile/firefox-android/pull/4040
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+
+app_opened:
+ from_icons:
+ type: event
+ description: |
+ The user has opened the app using launcher icons
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5546
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5552
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ open_type:
+ description: |
+ Can be "Launch" if Focus was not already opened or "Resume" if it was.
+ type: string
+ from_launcher_site_shortcut:
+ type: event
+ description: |
+ The user has opened the app using launcher website shortcut
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5547
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5839
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ browse_intent:
+ type: event
+ description: |
+ App was opened from a browse intent.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5547
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5839
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ text_selection_intent:
+ type: event
+ description: |
+ App was opened from a text selection intent.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5547
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5839
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ share_intent:
+ type: event
+ description: |
+ App was opened from a share intent.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5547
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5839
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ is_search:
+ description: Is the shared intent a search?
+ type: boolean
+
+
+add_to_home_screen:
+ dialog_displayed:
+ type: event
+ description: The dialog for adding home screen shorcut was displayed.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5548
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5598
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ add_button_tapped:
+ type: event
+ description: The add(yes) option from add to home dialog was tapped.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5548
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5598
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ has_edited_title:
+ description: Did the user edit the default title provided by the app?
+ type: boolean
+ cancel_button_tapped:
+ type: event
+ description: The cancel(no) option from add to home dialog was tapped.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5548
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5598
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+set_default_browser:
+ from_app_settings:
+ type: event
+ description: |
+ The user has changed default browser from the app.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5636
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5637
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ is_default:
+ description: Shows if Focus was already default.
+ type: boolean
+ from_os_settings:
+ type: event
+ description: |
+ The user has opened the OS settings to set default browser.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5636
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5637
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ is_default:
+ description: Shows if Focus was already default.
+ type: boolean
+ learn_more_opened:
+ type: event
+ description: |
+ The user has opened the learn more link.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5636
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5637
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ is_default:
+ description: Shows if Focus was already default.
+ type: boolean
+
+tab_count:
+ session_button_tapped:
+ type: event
+ description: The session button has been tapped to see session list.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5583
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5644
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ opened_tabs:
+ description: Number of currently opened tabs
+ type: quantity
+ session_list_item_tapped:
+ type: event
+ description: The user has switched to a tab from the session list.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5583
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5644
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ opened_tabs:
+ description: Number of currently opened tabs
+ type: quantity
+ session_list_closed:
+ type: event
+ description: The user has closed the session list.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5583
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5644
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ opened_tabs:
+ description: Number of currently opened tabs
+ type: quantity
+ erase_button_tapped:
+ type: event
+ description: The erease button has been tapped to close opened sessions.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5583
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5644
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ opened_tabs:
+ description: Number of currently opened tabs
+ type: quantity
+ new_tab_opened:
+ type: event
+ description: A new tab has opened.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5583
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5644
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ opened_tabs:
+ description: Number of currently opened tabs
+ type: quantity
+ source:
+ description: |
+ Tab opened from "custom tab", "context menu" or from "Window.open()"
+ type: string
+ app_backgrounded:
+ type: custom_distribution
+ description: Number of opened tabs when the app has been send to background.
+ range_min: 0
+ range_max: 50
+ bucket_count: 51
+ histogram_type: linear
+ unit: tabs
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5583
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5793
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+
+search_bar:
+ entered_url:
+ type: event
+ description: The user has entered a full url.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5546
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5660
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ performed_search:
+ type: event
+ description: The user has entered text and performed a search.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5546
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5660
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ engine_name:
+ description: The name of the engine used to perform the search.
+ type: string
+
+show_search_suggestions:
+ enabled_from_panel:
+ type: event
+ description: The "yes" option from the suggestion panel has been tapped.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5840
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5858
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ disabled_from_panel:
+ type: event
+ description: The "no"" option from the suggestion panel has been tapped.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5840
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5858
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ changed_from_settings:
+ type: event
+ description: The enabled state has been changed from the settings screen.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5840
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5858
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ is_enabled:
+ description: The new setting value, true for ON, false for OFF
+ type: boolean
+
+downloads:
+ download_started:
+ type: event
+ description: A download has been started.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5650
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5663
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ download_paused:
+ type: event
+ description: A download has been paused.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5650
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5663
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ download_canceled:
+ type: event
+ description: A download has been cancelled.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5650
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5663
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ download_completed:
+ type: event
+ description: A download has been completed successfully.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5650
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5663
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ download_failed:
+ type: event
+ description: The download has failed.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5650
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5663
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ file_extension:
+ description: The extension of the downloaded file.
+ type: string
+ open_button_tapped:
+ type: event
+ description: The open button from download confirmation was tapped.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5650
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5663
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ open_successful:
+ description: Did the user succeed in opening the downloaded file?
+ type: boolean
+ file_extension:
+ description: The extension of the downloaded file.
+ type: string
+
+search_engines:
+ open_settings:
+ type: event
+ description: The user has opened the search engines settings page.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5646
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5713
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ add_engine_tapped:
+ type: event
+ description: The user has tapped on the add another search engine button.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5646
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5713
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ save_engine_tapped:
+ type: event
+ description: The user has tried to save a custom engine.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5646
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5713
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ save_successful:
+ description: If the engine has been saved successfully.
+ type: boolean
+ set_default:
+ type: event
+ description: The user has set a search engine as default.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5646
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5713
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ engine_type:
+ description: |
+ The engine type set as default. Can be either "custom" or "bundled".
+ type: string
+ remove_engines:
+ type: event
+ description: The user has removed search engines.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5646
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5713
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ engine_count:
+ description: How many search engines has the user removed
+ type: quantity
+ open_remove_screen:
+ type: event
+ description: The user has clicked the remove option from menu.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5646
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5713
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ current_engines_count:
+ description: How many search engines did the user had at that point.
+ type: quantity
+ restore_default_engines:
+ type: event
+ description: The user has restored the default search engines
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5646
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5713
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ current_engines_count:
+ description: How many search engines did the user had at that point.
+ type: quantity
+ learn_more_tapped:
+ type: event
+ description: The learn more button was tapped.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5646
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5713
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+
+open_with:
+ list_displayed:
+ type: event
+ description: The list of apps has been opened.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5654
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5703
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ list_size:
+ description: The number of apps in the list
+ type: quantity
+ list_item_tapped:
+ type: event
+ description: The uer has opened the url with a app from the list.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5654
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5703
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ package_name:
+ description: The app the user has chosen is a Mozilla product.
+ type: boolean
+ install_firefox:
+ type: event
+ description: The user has clicked install Firefox from store item.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5654
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5703
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+
+crash_reporter:
+ displayed:
+ type: event
+ description: The crash report has been displayed.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5652
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5725
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ close_report:
+ type: event
+ description: The crash report has been submitted.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5652
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5725
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ submit_report:
+ description: Did the user choose to send the report?
+ type: boolean
+
+browser_menu:
+ navigation_toolbar_action:
+ type: event
+ description: The user has tapped on a navigation toolbar item.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5648
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5748
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ item:
+ description: |
+ A string containing the name of the item the user tapped:
+ back, forward, share, reload, stop
+ type: string
+ browser_menu_action:
+ type: event
+ description: The user has tapped on a browser menu item.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5648
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5748
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ item:
+ description: |
+ A string containing the name of the item the user tapped:
+ add_to_homescreen, desktop_view_off, desktop_view_on,
+ find_in_page, open_in_app, settings
+ type: string
+
+custom_tabs_toolbar:
+ navigation_toolbar_action:
+ type: event
+ description: The user tapped on a navigation toolbar item in a custom tab.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5649
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5748
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ item:
+ description: |
+ A string containing the name of the item the user tapped:
+ back, forward, reload, stop
+ type: string
+ browser_menu_action:
+ type: event
+ description: The user tapped on a browser menu item item in a custom tab.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5649
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5748
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ item:
+ description: |
+ A string containing the name of the item the user tapped:
+ desktop_view_off, desktop_view_on, find_in_page, open_in_app,
+ add_to_homescreen, open_in browser
+ type: string
+ close_tab_tapped:
+ type: event
+ description: The user has closed a custom tab.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5649
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5748
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ action_button_tapped:
+ type: event
+ description: The user has tapped the actionbutton a custom tab.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5649
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5748
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+
+tracking_protection_exceptions:
+ allow_list_opened:
+ type: event
+ description: The user has opened the exceptions list.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5753
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5758
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ allow_list_cleared:
+ type: event
+ description: The user has removed all items from exceptions list.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5753
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5758
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ list_size:
+ description: The number of exceptions in the list.
+ type: quantity
+ selected_items_removed:
+ type: event
+ description: The user has removed the selected items from exceptions list.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5753
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5758
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ list_size:
+ description: The number of selected items removed.
+ type: quantity
+
+notifications:
+ open_button_tapped:
+ type: event
+ description: The user has tapped the Open option button from notification.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5651
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5769
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ erase_open_button_tapped:
+ type: event
+ description: The user has tapped the Erase & Open button from notification.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5651
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5769
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ opened_tabs:
+ description: Number of currently opened tabs
+ type: quantity
+ notification_tapped:
+ type: event
+ description: The user has tapped the notification to close the app.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5651
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5769
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ permission_granted:
+ type: boolean
+ description: |
+ True if notifications are allowed from OS settings, otherwise false.
+ Prior to Android 13, notifications were allowed by default;
+ starting with Android 13,the user must explicitly grant the permission.
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1803358
+ data_reviews:
+ - https://github.com/mozilla-mobile/firefox-android/pull/475
+ - https://github.com/mozilla-mobile/firefox-android/pull/4040
+ data_sensitivity:
+ - technical
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+
+app_shortcuts:
+ just_erase_button_tapped:
+ type: event
+ description: The user has tapped the Erase option button from shortcuts.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5651
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5769
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ opened_tabs:
+ description: Number of currently opened tabs
+ type: quantity
+ erase_open_button_tapped:
+ type: event
+ description: The user has tapped the Erase & Open button from shortcuts.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5651
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5769
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ opened_tabs:
+ description: Number of currently opened tabs
+ type: quantity
+
+recent_apps:
+ app_removed_from_list:
+ type: event
+ description: The user removed the apps from recent apps screen.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5651
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5769
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+
+context_menu:
+ item_tapped:
+ type: event
+ description: The user has tapped an option from context menu.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5647
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5773
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ item_name:
+ description: |
+ The name of the item that was tapped. One of the following:
+ open_in_new_tab, open_in_private_tab, open_image_in_new_tab,
+ save_image, share_link, copy_link, copy_image_location, share_image
+ type: string
+
+onboarding:
+ first_screen_close_button:
+ type: event
+ description: The user has tapped on close button from the first screen.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/7500
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/7566#issuecomment-1235551604
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ get_started_button:
+ type: event
+ description: The user has tapped on get started button.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/7500
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/7566#issuecomment-1235551604
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ default_browser_button:
+ type: event
+ description: The user has tapped on set as default browser button.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/7500
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/7566#issuecomment-1235551604
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ skip_button:
+ type: event
+ description: The user has tapped on skip button.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/7500
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/7566#issuecomment-1235551604
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ second_screen_close_button:
+ type: event
+ description: The user has tapped on close button from the second screen.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/7500
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/7566#issuecomment-1235551604
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ page_displayed:
+ type: event
+ description: A page from onboarding has been displayed.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5635
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5869
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ current_item:
+ description: The curent displayed item position.
+ type: quantity
+ skip_button_tapped:
+ type: event
+ description: The user has tapped to skip onboarding.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5635
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5869
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ current_item:
+ description: The curent displayed item position.
+ type: quantity
+ finish_button_tapped:
+ type: event
+ description: The user has tapped to finish onboarding.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5635
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5869
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ current_item:
+ description: The curent displayed item position.
+ type: quantity
+ next_button_tapped:
+ type: event
+ description: The user has tapped next onboarding.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5635
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5869
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ current_item:
+ description: The curent displayed item position.
+ type: quantity
+
+search_suggestions:
+ suggestion_tapped:
+ type: event
+ description: Search suggestion selected.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5662
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5864
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ engine_name:
+ description: The name of the engine used to perform the search.
+ type: string
+ search_tapped:
+ type: event
+ description: The typed text search was selected.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5662
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5864
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ engine_name:
+ description: The name of the engine used to perform the search.
+ type: string
+ autocomplete_arrow_tapped:
+ type: event
+ description: Search suggestion selected.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5662
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5864
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+
+advanced_settings:
+ remote_debug_setting_changed:
+ type: event
+ description: |
+ Remote debugging setting has changed.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5653
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5940
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ is_enabled:
+ description: The new setting true for ON, false for OFF
+ type: boolean
+ open_links_setting_changed:
+ type: event
+ description: |
+ Open links setting has changed.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5653
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5940
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ is_enabled:
+ description: The new setting true for ON, false for OFF
+ type: boolean
+privacy_settings:
+ telemetry_setting_changed:
+ type: event
+ description: |
+ Telemetry setting has changed.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5653
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5940
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ is_enabled:
+ description: The new setting true for ON, false for OFF
+ type: boolean
+ safe_browsing_setting_changed:
+ type: event
+ description: |
+ Safe browsing setting has changed.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5653
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5940
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ is_enabled:
+ description: The new setting true for ON, false for OFF
+ type: boolean
+ unlock_setting_changed:
+ type: event
+ description: |
+ Biometric unlock setting has changed.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5653
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5940
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ is_enabled:
+ description: The new setting true for ON, false for OFF
+ type: boolean
+ stealth_setting_changed:
+ type: event
+ description: |
+ Stealth setting has changed.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/5653
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/5940
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ is_enabled:
+ description: The new setting true for ON, false for OFF
+ type: boolean
+ block_cookies_changed:
+ type: event
+ description: |
+ Block cookies setting has changed.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/6097
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/6105
+ - https://github.com/mozilla-mobile/focus-android/pull/7906
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ - rtestard@mozilla.com
+ expires: never
+ extra_keys:
+ is_enabled:
+ description: |
+ A string containing the new block cookies option the user has chosen:
+ yes, third_party_only, third_party_tracker, cross_site, no
+ type: string
+
+metrics:
+ start_reason_process_error:
+ type: boolean
+ description: |
+ The `AppStartReasonProvider.ProcessLifecycleObserver.onCreate` was
+ unexpectedly called twice. We can use this metric to validate our
+ assumptions about how these APIs are called. This probe can be removed
+ once we validate these assumptions.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/7079
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/
+ data_sensitivity:
+ - technical
+ notification_emails:
+ - perf-telemetry-alerts@mozilla.com
+ - mleclair@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Performance
+ start_reason_activity_error:
+ type: boolean
+ description: |
+ The `AppStartReasonProvider.ActivityLifecycleCallbacks.onActivityCreated`
+ was unexpectedly called twice. We can use this metric to validate our
+ assumptions about how these APIs are called. This probe can be removed
+ once we validate these assumptions.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/7079
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/
+ data_sensitivity:
+ - technical
+ notification_emails:
+ - perf-telemetry-alerts@mozilla.com
+ - mleclair@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Performance
+ search_widget_installed:
+ type: boolean
+ lifetime: application
+ description: |
+ Whether or not the search widget is installed
+ send_in_pings:
+ - metrics
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/7474
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ - https://github.com/mozilla-mobile/firefox-android/pull/4040
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Search
+
+search_widget:
+ new_tab_button:
+ type: event
+ description: |
+ A user pressed anywhere from the Focus logo until the start of the
+ microphone icon, opening a new tab search screen.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/7474
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ - https://github.com/mozilla-mobile/firefox-android/pull/4040
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Search
+ voice_button:
+ type: event
+ description: |
+ A user pressed the microphone icon, opening a new voice search screen.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/7474
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ - https://github.com/mozilla-mobile/firefox-android/pull/4040
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Search
+ promote_dialog_shown:
+ type: event
+ description: |
+ Promote search widget dialog is shown to the user.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/7506
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/7657#issuecomment-1252242947
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ - https://github.com/mozilla-mobile/firefox-android/pull/4040
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Search
+ add_to_home_screen_button:
+ type: event
+ description: |
+ The user has pressed on add search widget
+ to home screen button from promote dialog.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/7506
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/7657#issuecomment-1252242947
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Search
+ widget_was_added:
+ type: event
+ description: |
+ The user has added successfully the search widget from
+ promote search widget dialog.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/7506
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/7657#issuecomment-1252242947
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Search
+cookie_banner:
+ visited_setting:
+ type: event
+ description: A user visited the cookie banner handling screen
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/7965
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/8008#issuecomment-1322266028
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Privacy&Security
+
+ setting_changed:
+ type: event
+ description: |
+ A user changed their setting.
+ extra_keys:
+ cookie_banner_setting:
+ description: |
+ The new setting for cookie banner handling: disabled,reject_all,
+ or reject_or_accept_all.
+ type: string
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/7965
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/8008#issuecomment-1322266028
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Privacy&Security
+
+ cookie_banner_cfr_shown:
+ type: event
+ description: |
+ Cfr for cookie banner is shown to the user.
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Privacy&Security
+
+ exception_added:
+ type: event
+ description: |
+ A user added a cookie banner handling exception through
+ the toggle in the protections panel.
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1797578
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/8124#issuecomment-1344449866
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Privacy&Security
+
+ report_site_domain:
+ type: url
+ description: |
+ A user can report a site domain(Ex. for https://edition.cnn.com/
+ site domain will be cnn.com) when the cookie banner reducer is not
+ working from the cookie banner details panel.
+ lifetime: ping
+ send_in_pings:
+ - cookie-banner-report-site
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1803589
+ data_reviews:
+ - https://github.com/mozilla-mobile/firefox-android/pull/389#pullrequestreview-1341440145
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - technical
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Privacy&Security
+
+ report_site_cancel_button:
+ type: event
+ description: |
+ The user has pressed the report site domain cancel button
+ from the cookie banner reducer details panel.
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1803589
+ data_reviews:
+ - https://github.com/mozilla-mobile/firefox-android/pull/389#pullrequestreview-1341440145
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Privacy&Security
+
+ report_domain_site_button:
+ type: event
+ description: |
+ The user has pressed the report site domain button
+ from the cookie banner reducer details panel.
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1803589
+ data_reviews:
+ - https://github.com/mozilla-mobile/firefox-android/pull/389#pullrequestreview-1341440145
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Privacy&Security
+
+ exception_removed:
+ type: event
+ description: |
+ A user removed a cookie banner handling
+ exception through the toggle in the protections panel.
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1797578
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/8124#issuecomment-1344449866
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Privacy&Security
+
+ visited_panel:
+ type: event
+ description: A user visited the cookie banner exception panel
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1797578
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/pull/8124#issuecomment-1344449866
+ - https://github.com/mozilla-mobile/firefox-android/pull/3320
+ data_sensitivity:
+ - interaction
+ notification_emails:
+ - android-probes@mozilla.com
+ expires: never
+ metadata:
+ tags:
+ - Privacy&Security
diff --git a/mobile/android/focus-android/app/nimbus.fml.yaml b/mobile/android/focus-android/app/nimbus.fml.yaml
new file mode 100644
index 0000000000..fb9ba783a7
--- /dev/null
+++ b/mobile/android/focus-android/app/nimbus.fml.yaml
@@ -0,0 +1,48 @@
+about:
+ description: Nimbus Feature Manifest for Focus Android
+ kotlin:
+ package: org.mozilla.focus
+ class: .nimbus.FocusNimbus
+channels:
+ - debug
+ - nightly
+ - beta
+ - release
+features:
+ onboarding:
+ description: Nimbus feature name intended to control the onboarding plus all CFRs in the app.
+ variables:
+ is-enabled:
+ description: If `true`, the app will show the new onboarding screen
+ type: Boolean
+ default: true
+ is-cfr-enabled:
+ description: If `true`, the app will show the cfrs
+ type: Boolean
+ default: false
+ is-promote-search-widget-dialog-enabled:
+ description: If `true`, the app will show the new dialog for promote search widget
+ type: Boolean
+ default: false
+ defaults:
+ - channel: debug
+ value: {
+ "is-enabled": true,
+ "is-cfr-enabled": true,
+ "is-promote-search-widget-dialog-enabled": true,
+ }
+ cookie-banner:
+ description: Nimbus feature name intended to control the cookie banner handling in the app.
+ variables:
+ is-cookie-handling-enabled:
+ description: If 'true' , the app will show the settings part for cookie banner handling
+ type: Boolean
+ default: false
+ defaults:
+ - channel: debug
+ value: {
+ "is-cookie-handling-enabled": true
+ }
+types:
+ objects: { }
+ enums: { }
diff --git a/mobile/android/focus-android/app/pings.yaml b/mobile/android/focus-android/app/pings.yaml
new file mode 100644
index 0000000000..4816596f7c
--- /dev/null
+++ b/mobile/android/focus-android/app/pings.yaml
@@ -0,0 +1,31 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+---
+$schema: moz://mozilla.org/schemas/glean/pings/2-0-0
+
+activation:
+ description: |
+ This ping is intended to provide a measure of the activation of mobile
+ products. It's generated when Focus starts, right after Glean is
+ initialized.
+ include_client_id: false
+ bugs:
+ - https://github.com/mozilla-mobile/focus-android/issues/4545
+ data_reviews:
+ - https://github.com/mozilla-mobile/focus-android/issues/4901
+ notification_emails:
+ - jalmeida@mozilla.com
+
+cookie-banner-report-site:
+ description: |
+ This ping is needed when the cookie banner reducer doesn't work on
+ a website, and the user wants to report the site.
+ This ping doesn't include a client id.
+ include_client_id: false
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1803589
+ data_reviews:
+ - https://github.com/mozilla-mobile/firefox-android/pull/389#pullrequestreview-1341440145
+ notification_emails:
+ - android-probes@mozilla.com
diff --git a/mobile/android/focus-android/app/proguard-rules.pro b/mobile/android/focus-android/app/proguard-rules.pro
new file mode 100644
index 0000000000..fac523684b
--- /dev/null
+++ b/mobile/android/focus-android/app/proguard-rules.pro
@@ -0,0 +1,154 @@
+
+# We do not want to obfuscate - It's just painful to debug without the right mapping file.
+# If we update this, we'll have to update our Sentry config to upload ProGuard mappings.
+-dontobfuscate
+
+
+##### Default proguard settings:
+
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /Users/sebastian/Library/Android/sdk/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+####################################################################################################
+# Adjust
+####################################################################################################
+
+-keep public class com.adjust.sdk.** { *; }
+-keep class com.google.android.gms.common.ConnectionResult {
+ int SUCCESS;
+}
+-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
+ com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
+}
+-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
+ java.lang.String getId();
+ boolean isLimitAdTrackingEnabled();
+}
+-keep class dalvik.system.VMRuntime {
+ java.lang.String getRuntime();
+}
+-keep class android.os.Build {
+ java.lang.String[] SUPPORTED_ABIS;
+ java.lang.String CPU_ABI;
+}
+-keep class android.content.res.Configuration {
+ android.os.LocaledList getLocales();
+ java.util.Locale locale;
+}
+-keep class android.os.LocaledList {
+ java.util.Locale get(int);
+}
+
+
+####################################################################################################
+# Okhttp
+####################################################################################################
+
+# JSR 305 annotations are for embedding nullability information.
+-dontwarn javax.annotation.**
+
+# A resource is loaded with a relative path so the package of this class must be preserved.
+-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
+
+# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
+-dontwarn org.codehaus.mojo.animal_sniffer.*
+
+# OkHttp platform used only on JVM and when Conscrypt dependency is available.
+-dontwarn okhttp3.internal.platform.ConscryptPlatform
+
+####################################################################################################
+# Sentry
+####################################################################################################
+
+# Recommended config via https://docs.sentry.io/clients/java/modules/android/#manual-integration
+# Since we don't obfuscate, we don't need to use their Gradle plugin to upload ProGuard mappings.
+-keepattributes LineNumberTable,SourceFile
+-dontwarn org.slf4j.**
+-dontwarn javax.**
+
+# Our addition: this class is saved to disk via Serializable, which ProGuard doesn't like.
+# If we exclude this, upload silently fails (Sentry swallows a NPE so we don't crash).
+# I filed https://github.com/getsentry/sentry-java/issues/572
+#
+# If Sentry ever mysteriously stops working after we upgrade it, this could be why.
+-keep class io.sentry.event.Event { *; }
+
+####################################################################################################
+# Android architecture components
+####################################################################################################
+
+-dontwarn android.**
+-dontwarn androidx.**
+-dontwarn com.google.**
+-dontwarn org.mozilla.geckoview.**
+-dontwarn mozilla.components.**
+
+# https://developer.android.com/topic/libraries/architecture/release-notes.html
+# According to the docs this won't be needed when 1.0 of the library is released.
+-keep class * implements android.arch.lifecycle.GeneratedAdapter {<init>(...);}
+
+# Temporary fix until we can use androidx
+-dontwarn mozilla.components.service.fretboard.scheduler.workmanager.**
+
+# Fix for ViewModels
+-keep class * extends androidx.lifecycle.ViewModel {
+ <init>();
+}
+-keep class * extends androidx.lifecycle.AndroidViewModel {
+ <init>(android.app.Application);
+}
+
+####################################################################################################
+# Mozilla Application Services
+####################################################################################################
+
+-keep class mozilla.appservices.** { *; }
+
+####################################################################################################
+# Kotlinx
+####################################################################################################
+
+-dontwarn kotlinx.atomicfu.**
+
+####################################################################################################
+# snakeyaml
+####################################################################################################
+
+-dontwarn java.beans.PropertyDescriptor
+-dontwarn java.beans.Introspector
+-dontwarn java.beans.BeanInfo
+-dontwarn java.beans.IntrospectionException
+-dontwarn java.beans.FeatureDescriptor
+
+####################################################################################################
+# REMOVE all Log messages except warnings and errors
+####################################################################################################
+-assumenosideeffects class android.util.Log {
+ public static boolean isLoggable(java.lang.String, int);
+ public static int v(...);
+ public static int i(...);
+ public static int d(...);
+}
+
+####################################################################################################
+# kotlinx.coroutines: use the fast service loader to init MainDispatcherLoader by including a rule
+# to rewrite this property to return true:
+# https://github.com/Kotlin/kotlinx.coroutines/blob/8c98180f177bbe4b26f1ed9685a9280fea648b9c/kotlinx-coroutines-core/jvm/src/internal/MainDispatchers.kt#L19
+#
+# R8 is expected to optimize the default implementation to avoid a performance issue but a bug in R8
+# as bundled with AGP v7.0.0 causes this optimization to fail so we use the fast service loader instead. See:
+# https://github.com/mozilla-mobile/focus-android/issues/5102#issuecomment-897854121
+#
+# The fast service loader appears to be as performant as the R8 optimization so it's not worth the
+# churn to later remove this workaround. If needed, the upstream fix is being handled in
+# https://issuetracker.google.com/issues/196302685
+####################################################################################################
+-assumenosideeffects class kotlinx.coroutines.internal.MainDispatcherLoader {
+ boolean FAST_SERVICE_LOADER_ENABLED return true;
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/audioPage.html b/mobile/android/focus-android/app/src/androidTest/assets/audioPage.html
new file mode 100644
index 0000000000..f45ba6410f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/audioPage.html
@@ -0,0 +1,37 @@
+<html>
+<head>
+ <title>Audio_Test_Page</title>
+</head>
+<body>
+<p id="testContent">Page content: audio player</p>
+
+<div class="audioPlayer">
+ <audio id="audioSample" controls loop>
+ <source src="resources/audioSample.mp3">
+ </audio>
+</div>
+
+<div class="playbackState">
+</div>
+
+<script>
+ const audio = document.querySelector('audio');
+ var showPlayingAlert=true;
+
+ audio.addEventListener('playing', (event) => {
+ <!--document.querySelector('.playbackState').innerText="Media file is playing"-->
+ <!--Need this hack to verify that the video is playing,-->
+ <!--the test cannot currently verify the text displayed on the page-->
+ if(showPlayingAlert===true){
+ showPlayingAlert=false;
+ alert("Media file is playing");
+ }
+ });
+
+ audio.addEventListener('pause', (event) => {
+ <!--document.querySelector('.playbackState').innerText="Media file is paused"-->
+ alert("Media file is paused");
+ });
+</script>
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/cross-site-cookies.html b/mobile/android/focus-android/app/src/androidTest/assets/cross-site-cookies.html
new file mode 100644
index 0000000000..5cf99f3881
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/cross-site-cookies.html
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<html>
+<meta name="viewport" content="width=device-width">
+<body>
+<h3>known-tracker.englehardt-tracker.com</h3>
+<h4>different site, cross-origin iframe, on blocklist</h4>
+<iframe width=500 height=600 src="https://known-tracker.englehardt-tracker.com/set_storage_simple.html"></iframe>
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/download.jpg b/mobile/android/focus-android/app/src/androidTest/assets/download.jpg
new file mode 100644
index 0000000000..bb55dd7063
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/download.jpg
Binary files differ
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/etpPages/adsTrackers.html b/mobile/android/focus-android/app/src/androidTest/assets/etpPages/adsTrackers.html
new file mode 100644
index 0000000000..b8e0f7bc55
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/etpPages/adsTrackers.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<html dir="ltr" xml:lang="en-US" lang="en-US">
+<meta name="viewport" content="width=device-width">
+<head>
+ <meta charset="UTF-8">
+ <title>adsTrackers</title>
+</head>
+<body>
+<!--Level 1 Tracker blocking with separate lists (social-track-digest256,ads-track-digest256,analytics-track-digest256).-->
+<!--using the https://senglehardt.com/test/trackingprotection/test_pages/tracking_protection.html test page-->
+<p>ads trackers:</p>
+<p>if you can read this, then: </p>
+<p>ads trackers not blocked</p>
+<img
+ src="https://ads-track-digest256.dummytracker.org/test_not_blocked.png"
+ onerror="this.onerror=null;this.src='https://not-a-tracker.dummytracker.org/test_blocked.png';alert('ads trackers blocked')">
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/etpPages/analyticsTrackers.html b/mobile/android/focus-android/app/src/androidTest/assets/etpPages/analyticsTrackers.html
new file mode 100644
index 0000000000..e97a7e35c6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/etpPages/analyticsTrackers.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<html dir="ltr" xml:lang="en-US" lang="en-US">
+<meta name="viewport" content="width=device-width">
+<head>
+ <meta charset="UTF-8">
+ <title>analyticsTrackers</title>
+</head>
+<body>
+<!--Level 1 Tracker blocking with separate lists (social-track-digest256,ads-track-digest256,analytics-track-digest256).-->
+<!--using the https://senglehardt.com/test/trackingprotection/test_pages/tracking_protection.html test page-->
+<p>analytics trackers</p>
+<p>if you can read this, then: </p>
+<p>analytics trackers not blocked</p>
+<img
+ src="https://analytics-track-digest256.dummytracker.org/test_not_blocked.png"
+ onerror="this.onerror=null;this.src='https://not-a-tracker.dummytracker.org/test_blocked.png';alert('analytics trackers blocked')">
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/etpPages/otherTrackers.html b/mobile/android/focus-android/app/src/androidTest/assets/etpPages/otherTrackers.html
new file mode 100644
index 0000000000..5e4bd63a78
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/etpPages/otherTrackers.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<html dir="ltr" xml:lang="en-US" lang="en-US">
+<meta name="viewport" content="width=device-width">
+<head>
+ <meta charset="UTF-8">
+ <title>otherTrackers</title>
+</head>
+<body>
+<!--Level 1 Tracker blocking with separate lists (social-track-digest256,ads-track-digest256,analytics-track-digest256).-->
+<!--using the https://senglehardt.com/test/trackingprotection/test_pages/tracking_protection.html test page-->
+<h3>Level 2 (Strict List) Tracker Blocking</h3>
+<p>other content trackers</p>
+<p>if you can read this, then: </p>
+<p>other content trackers not blocked</p>
+<img
+ src="https://content-track-digest256.dummytracker.org/test_not_blocked.png"
+ onerror="this.onerror=null;this.src='https://not-a-tracker.dummytracker.org/test_blocked.png';alert('other content trackers blocked')">
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/etpPages/socialTrackers.html b/mobile/android/focus-android/app/src/androidTest/assets/etpPages/socialTrackers.html
new file mode 100644
index 0000000000..5f1afd19aa
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/etpPages/socialTrackers.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<html dir="ltr" xml:lang="en-US" lang="en-US">
+<meta name="viewport" content="width=device-width">
+<head>
+ <meta charset="UTF-8">
+ <title>socialTrackers</title>
+</head>
+<body>
+<!--Level 1 Tracker blocking with separate lists (social-track-digest256,ads-track-digest256,analytics-track-digest256).-->
+<!--using the https://senglehardt.com/test/trackingprotection/test_pages/tracking_protection.html test page-->
+<p>social trackers</p>
+<p>if you can read this, then: </p>
+<p>social trackers not blocked</p>
+<img
+ src="https://social-track-digest256.dummytracker.org/test_not_blocked.png"
+ onerror="this.onerror=null;this.src='https://not-a-tracker.dummytracker.org/test_blocked.png';alert('social trackers blocked')">
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/genericPage.html b/mobile/android/focus-android/app/src/androidTest/assets/genericPage.html
new file mode 100644
index 0000000000..46f36bf6d1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/genericPage.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <!-- random words that should not end up on disk -->
+ <title>GenericPage</title>
+</head>
+<body>
+<h1 id="header">focus test page</h1>
+<!-- More random words that should not end up on disk -->
+<p>groovy rabbits</p>
+<p>This test page does nothing.</p>
+
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/global_privacy_control.html b/mobile/android/focus-android/app/src/androidTest/assets/global_privacy_control.html
new file mode 100644
index 0000000000..e08df8c17f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/global_privacy_control.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<meta name="viewport" content="width=device-width">
+<body>
+<script type = "text/javascript" >
+ const gpcValue = navigator.globalPrivacyControl
+ if (gpcValue) {
+ document.write('<p>GPC is enabled.</p>');
+ } else {
+ document.write('<p>GPC not enabled.</p>');
+ }
+</script>
+
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/htmlControls.html b/mobile/android/focus-android/app/src/androidTest/assets/htmlControls.html
new file mode 100644
index 0000000000..3677417a28
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/htmlControls.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Html_Control_Form</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width">
+</head>
+
+<p>Misc Link Types</p>
+<section>
+ <a href="https://duckduckgo.com/">External link</a>
+</section>
+
+<section>
+ <a href="mailto://example@example.com">Email link</a>
+ <a href="tel://1234567890">Telephone link</a>
+</section>
+
+<p>Drop-down Form</p>
+<select id="dropDown">
+ <option type="text" text="The Only Ones">The Only Ones</option>
+ <option type="text" text="The National">The National</option>
+</select>
+<button onclick="printOption()" id="submitOption"> Submit drop down option </button>
+<div id="displayOption"></div>
+
+<section>
+ <p>Copy <input type="text" placeholder="and Paste" id="textInput"> me</p>
+ <button onclick="printInput()" id="submitInput"> Submit input </button>
+ <div id="displayInput"></div>
+</section>
+
+<p>Calendar Form</p>
+<section>
+ <input type="date" id="calendar">
+ <button onclick="printDate()" id="submitDate"> Submit date </button>
+ <div id="displayDate"></div>
+</section>
+
+<script>
+ function printOption() {
+ let dropDown = document.querySelector("#dropDown");
+ let displayOption = document.querySelector("#displayOption");
+
+ displayOption.innerHTML = "Selected option is: " + dropDown.value;
+ }
+ </script>
+
+<script>
+ function printInput() {
+ let textInput = document.querySelector("#textInput");
+ let displayInput = document.querySelector("#displayInput");
+
+ displayInput.innerHTML = "You entered: " + textInput.value;
+ }
+ </script>
+
+<script>
+ function printDate() {
+ let calendar = document.querySelector("#calendar");
+ let displayDate = document.querySelector("#displayDate");
+
+ displayDate.innerHTML = "Selected date is: " + calendar.value;
+ }
+ </script>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/image_test.html b/mobile/android/focus-android/app/src/androidTest/assets/image_test.html
new file mode 100644
index 0000000000..ea8ea10f53
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/image_test.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <!-- random words that should not end up on disk -->
+ <title>gigantic experience</title>
+</head>
+<body>
+<h1 id="header">focus test page</h1>
+
+<!-- More random words that should not end up on disk -->
+<p>groovy rabbits</p>
+<img id="rabbitImage" src="rabbit.jpg" alt="rabbit.jpg" width="251" height="201">
+
+<a id="download" href="download.jpg" download="mozillaLogo">
+ <img border="0" src="download.jpg" alt="download icon" width="104" height="142">
+</a>
+
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/mutedVideoPage.html b/mobile/android/focus-android/app/src/androidTest/assets/mutedVideoPage.html
new file mode 100644
index 0000000000..8c4fbfc686
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/mutedVideoPage.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+ <title>Muted_Video_Test_Page</title>
+</head>
+<body>
+<p id="testContent">Page content: muted video player</p>
+<div class="playbackState">
+</div>
+<div id="video-container" style="text-align:center">
+ <button onclick="play()">Play</button>
+ <button onclick="pause()">Pause</button>
+ <button onclick="fullscreen()">Full Screen</button>
+ <br><br>
+ <video id="mutedVideo" width="420" autoplay muted controls loop>
+ <source src="resources/clip.mp4" type="video/mp4">
+ Your browser does not support HTML video.
+ </video>
+</div>
+
+<script>
+ const mutedVideo = document.getElementById("mutedVideo");
+
+ function play() {
+ mutedVideo.play();
+ }
+
+ function pause() {
+ mutedVideo.pause();
+ }
+
+ function fullscreen() {
+ mutedVideo.requestFullscreen();
+ }
+
+ var showPlayAlert=true;
+
+ mutedVideo.addEventListener('playing', (event) => {
+ <!-- document.querySelector('.playbackState').innerHTML="Media file is playing";-->
+ <!-- Need this hack to verify that the video is playing, -->
+ <!-- the test cannot currently verify the text displayed on the page-->
+ if(showPlayAlert===true){
+ showPlayAlert=false;
+ alert("Media file is playing");
+ }
+ });
+
+ mutedVideo.addEventListener('pause', (event) => {
+ // document.querySelector('.playbackState').innerHTML="Media file is paused";
+ alert("Media file is paused");
+ });
+</script>
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/rabbit.jpg b/mobile/android/focus-android/app/src/androidTest/assets/rabbit.jpg
new file mode 100644
index 0000000000..3225407b1c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/rabbit.jpg
Binary files differ
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/resources/audioSample.mp3 b/mobile/android/focus-android/app/src/androidTest/assets/resources/audioSample.mp3
new file mode 100644
index 0000000000..eb0420a48b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/resources/audioSample.mp3
Binary files differ
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/resources/clip.mp4 b/mobile/android/focus-android/app/src/androidTest/assets/resources/clip.mp4
new file mode 100644
index 0000000000..20f739c7c8
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/resources/clip.mp4
Binary files differ
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/same-site-cookies.html b/mobile/android/focus-android/app/src/androidTest/assets/same-site-cookies.html
new file mode 100644
index 0000000000..dd4fa31be7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/same-site-cookies.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<html lang="en-US" dir="ltr">
+<head>
+ <meta name="viewport" content="width=device-width">
+ <script src="https://cdn.jsdelivr.net/npm/idb-keyval@3/dist/idb-keyval-iife.min.js"></script>
+</head>
+<body>
+<button onclick="setAllStorageLocations();">Rerun Tests</button>
+<br>
+<h4>cookies</h4>
+<pre id="cookie_message"></pre>
+
+<h4>localStorage</h4>
+<pre id="ls_message"></pre>
+
+<!--
+<h4>sessionStorage</h4>
+<pre id="ss_message"></pre>
+<h4>Indexed DB</h4>
+<pre id="idb_message"></pre>
+-->
+
+<!-- Storage access API -->
+<br />
+<h4>Storage Access API</h4>
+<button onclick='requestSA()'>requestStorageAccess()</button><br />
+<p>Return value of requestStorageAccess():</p><pre id='request_storage_access'>not yet called</pre><br />
+<button onclick='hasSA()'>hasStorageAccess()</button><br />
+<p>Return value of hasStorageAccess():</p><pre id='has_storage_access'>not yet called</pre><br />
+
+
+<script>
+ var newRandVal = Math.random();
+
+ function outputResult(value, output_id) {
+ var msg = document.getElementById(output_id);
+ document.hasStorageAccess().then(
+ (hasStorageAccess) => {
+ if (hasStorageAccess === false) {
+ msg.innerHTML = "BLOCKED";
+ } else if (value === "" & hasStorageAccess === true) {
+ msg.innerHTML = "UNEXPECTED. We have storage access but value is empty...";
+ } else if (hasStorageAccess === true) {
+ msg.innerHTML = "UNRESTRICTED";
+ }
+ },
+ (reason) => {msg.innerHTML = 'promise rejected for reason' + reason}
+ );
+ }
+
+ function setCookies() {
+ var cookies = document.cookie;
+ if (cookies === "") {
+ document.cookie = 'foo='+newRandVal+'; SameSite=None; Secure';
+ cookies = document.cookie;
+ }
+ outputResult(cookies, 'cookie_message');
+ }
+ function setLocalStorage() {
+ try {
+ var foo = window.localStorage.getItem('foo');
+ if (foo === null) {
+ window.localStorage.setItem('foo', newRandVal);
+ foo = window.localStorage.getItem('foo');
+ }
+ } catch (error) {
+ foo = "";
+ }
+ outputResult(foo, 'ls_message');
+ }
+ function setSessionStorage() {
+ try {
+ var foo = window.sessionStorage.getItem('foo');
+ if (foo === null) {
+ window.sessionStorage.setItem('foo', newRandVal);
+ foo = window.sessionStorage.getItem('foo');
+ }
+ } catch (error) {
+ foo = "";
+ }
+ outputResult(foo, 'ss_message');
+ }
+ async function setIndexedDB() {
+ try {
+ var foo = await idbKeyval.get('foo');
+ if (foo === undefined) {
+ await idbKeyval.set('foo', newRandVal);
+ foo = await idbKeyval.get('foo');
+ }
+ } catch (error) {
+ foo = "";
+ }
+ outputResult(foo, 'idb_message');
+ }
+ function setAllStorageLocations() {
+ setCookies();
+ setLocalStorage();
+ //setSessionStorage();
+ //setIndexedDB();
+ }
+ setAllStorageLocations();
+
+ // Storage Access API
+ function requestSA() {
+ var result = document.getElementById('request_storage_access');
+ document.requestStorageAccess().then(
+ () => {result.innerHTML = 'access granted'},
+ () => {result.innerHTML = 'access denied'}
+ );
+ }
+
+ function hasSA() {
+ var result = document.getElementById('has_storage_access');
+ document.hasStorageAccess().then(
+ (hasAccess) => {result.innerHTML = hasAccess},
+ (reason) => {result.innerHTML = 'promise rejected for reason' + reason}
+ );
+ }
+ hasSA();
+ </script>
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/service-worker.js b/mobile/android/focus-android/app/src/androidTest/assets/service-worker.js
new file mode 100644
index 0000000000..8f77e519df
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/service-worker.js
@@ -0,0 +1,2 @@
+// Just some token we are looking for on disk
+const KANGAROO = true;
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/storage_check.html b/mobile/android/focus-android/app/src/androidTest/assets/storage_check.html
new file mode 100644
index 0000000000..c52cae9b7b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/storage_check.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<meta name="viewport" content="width=device-width">
+<body>
+
+<h1>Storage check</h1>
+
+<script type="text/javascript">
+ if (sessionStorage.getItem('focusSessionTest') == 'caterpillar') {
+ document.write('<p>Session storage has value</p>');
+ } else {
+ document.write('<p>Session storage empty</p>');
+ }
+
+ if (localStorage.getItem('focusLocalTest') == 'caterpillar') {
+ document.write('<p>Local storage has value</p>');
+ } else {
+ document.write('<p>Local storage empty</p>');
+ }
+</script>
+
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/storage_start.html b/mobile/android/focus-android/app/src/androidTest/assets/storage_start.html
new file mode 100644
index 0000000000..e88f7f06d1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/storage_start.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<meta name="viewport" content="width=device-width">
+<body>
+
+<h1>Storage Start</h1>
+
+<p id="cookies"></p>
+<button id="setCookies">Set cookies</button>
+
+<script type="text/javascript">
+ (function() {
+ document.getElementById("cookies").textContent = document.cookie?document.cookie:"No cookies set";
+ })();
+
+ document.getElementById("setCookies").addEventListener("click", function() {
+ document.cookie = "user=android";
+ document.getElementById("cookies").textContent = document.cookie;
+ });
+
+ sessionStorage.setItem('focusSessionTest', 'caterpillar');
+ localStorage.setItem('focusLocalTest', 'butterfly');
+
+ document.write('<p>Values written to storage</p>');
+</script>
+
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/tab1.html b/mobile/android/focus-android/app/src/androidTest/assets/tab1.html
new file mode 100644
index 0000000000..4a9c8ce88e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/tab1.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width">
+ <title>tab1</title>
+</head>
+<body>
+ <h1 id="content">Tab 1</h1>
+
+ <a href="tab2.html" id="tab2">Tab 2</a>
+
+ <a href="tab3.html" id="tab3">Tab 3</a>
+
+ <!-- here we display if the page is in mobile or desktop view mode -->
+ <p id="viewMode"></p>
+</body>
+<script>
+window.mobileCheck = function() {
+ let check = false;
+ (function(a){
+ if (a.includes("Android"))
+ check = true;
+ }) (navigator.userAgent)
+ return check;
+};
+document.getElementById('viewMode').textContent=mobileCheck()? "mobile-site":"desktop-site";
+</script>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/tab2.html b/mobile/android/focus-android/app/src/androidTest/assets/tab2.html
new file mode 100644
index 0000000000..be5f65e6a5
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/tab2.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <title>tab2</title>
+</head>
+<body>
+
+ <h1 id="content">Tab 2</h1>
+
+ <a href="tab1.html" id="tab1">Tab 1</a>
+
+ <a href="tab3.html" id="tab3">Tab 3</a>
+
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/tab3.html b/mobile/android/focus-android/app/src/androidTest/assets/tab3.html
new file mode 100644
index 0000000000..fc8c08446c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/tab3.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <title>tab3</title>
+</head>
+<body>
+
+ <h1 id="content">Tab 3</h1>
+
+ <a href="tab2.html" id="tab1">Tab 1</a>
+
+ <a href="tab3.html" id="tab2">Tab 2</a>
+
+ <p>
+ <a href="https://www.youtube.com/c/MozillaChannel/videos">Mozilla Youtube link</a>
+ </p>
+
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/test.html b/mobile/android/focus-android/app/src/androidTest/assets/test.html
new file mode 100644
index 0000000000..7273622e6f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/test.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <!-- random words that should not end up on disk -->
+ <title>gigantic experience</title>
+</head>
+<body>
+<h1>focus test page</h1>
+<!-- More random words that should not end up on disk -->
+<p>groovy rabbits</p>
+<p>This test page installs a service worker and saves a cookie.</p>
+
+<h2 id="cookieHeading">Cookie</h2>
+<p>Initial: <script type="text/javascript">document.write(document.cookie);</script></p>
+<p>
+ <!-- Setting a cookie -->
+ <script type="text/javascript">
+ document.cookie = "birthday=armchair; expires=Tue, 18 Dec 2035 12:00:00 UTC; path=/";
+ document.write("Cookie saved");
+ </script>
+</p>
+<p>Afterwards: <script type="text/javascript">document.write(document.cookie);</script></p>
+
+<h2>Service worker</h2>
+<p id="status"></p>
+
+<script type="text/javascript">
+ // Add a key value pair to local storage. This is required by WebViewDataTest which asserts
+ // that the local storage directory should exist
+ var script = document.createElement('script');
+ script.src = "service-worker.js";
+
+ document.head.appendChild(script); //or something of the likes
+ </script>
+
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/assets/videoPage.html b/mobile/android/focus-android/app/src/androidTest/assets/videoPage.html
new file mode 100644
index 0000000000..cd352268b3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/assets/videoPage.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+ <title>Video_Test_Page</title>
+</head>
+<body>
+<p id="testContent">Page content: video player</p>
+<div class="playbackState">
+</div>
+<div id="video-container" style="text-align:center">
+ <button onclick="play()">Play</button>
+ <button onclick="pause()">Pause</button>
+ <button onclick="fullscreen()">Full Screen</button>
+ <br><br>
+ <video id="video" width="420" autoplay controls loop>
+ <source src="resources/clip.mp4" type="video/mp4">
+ Your browser does not support HTML video.
+ </video>
+</div>
+
+<script>
+ const video = document.getElementById("video");
+
+ function play() {
+ video.play();
+ }
+
+ function pause() {
+ video.pause();
+ }
+
+ function fullscreen() {
+ video.requestFullscreen();
+ }
+
+ var showPlayingAlert=true;
+
+ video.addEventListener('playing', (event) => {
+ <!-- document.querySelector('.playbackState').innerHTML="Media file is playing";-->
+ <!-- Need this hack to verify that the video is playing, -->
+ <!-- the test cannot currently verify the text displayed on the page-->
+ if(showPlayingAlert===true){
+ showPlayingAlert=false;
+ alert("Media file is playing");
+ }
+ });
+
+ video.addEventListener('pause', (event) => {
+ // document.querySelector('.playbackState').innerHTML="Media file is paused";
+ alert("Media file is paused");
+ });
+</script>
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/AddToHomescreenTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/AddToHomescreenTest.kt
new file mode 100644
index 0000000000..3fae3efa46
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/AddToHomescreenTest.kt
@@ -0,0 +1,89 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.RetryTestRule
+import org.mozilla.focus.helpers.TestAssetHelper.getGenericTabAsset
+import org.mozilla.focus.helpers.TestHelper.randomString
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+/**
+ * Tests to verify the functionality of Add to homescreen from the main menu
+ */
+@RunWith(AndroidJUnit4ClassRunner::class)
+class AddToHomescreenTest {
+ private lateinit var webServer: MockWebServer
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ var mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Rule
+ @JvmField
+ val retryTestRule = RetryTestRule(3)
+
+ @Before
+ fun setup() {
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ }
+
+ @After
+ fun tearDown() {
+ webServer.shutdown()
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun addPageToHomeScreenTest() {
+ val pageUrl = getGenericTabAsset(webServer, 1).url
+ val pageTitle = randomString(5)
+
+ searchScreen {
+ }.loadPage(pageUrl) {
+ progressBar.waitUntilGone(waitingTime)
+ }.openMainMenu {
+ }.openAddToHSDialog {
+ addShortcutWithTitle(pageTitle)
+ handleAddAutomaticallyDialog()
+ }.searchAndOpenHomeScreenShortcut(pageTitle) {
+ verifyPageURL(pageUrl)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun noNameShortcutTest() {
+ val pageUrl = getGenericTabAsset(webServer, 1).url
+
+ searchScreen {
+ }.loadPage(pageUrl) {
+ }.openMainMenu {
+ }.openAddToHSDialog {
+ // leave shortcut title empty and add it to HS
+ addShortcutNoTitle()
+ handleAddAutomaticallyDialog()
+ }.searchAndOpenHomeScreenShortcut(webServer.hostName) {
+ // only checking a part of the URL that is constant,
+ // in case it opens a different shortcut on a retry
+ verifyPageURL("tab1.html")
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ContextMenusTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ContextMenusTest.kt
new file mode 100644
index 0000000000..8f74566efe
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ContextMenusTest.kt
@@ -0,0 +1,187 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Ignore
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.DeleteFilesHelper.deleteFileUsingDisplayName
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityIntentsTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.RetryTestRule
+import org.mozilla.focus.helpers.StringsHelper
+import org.mozilla.focus.helpers.TestAssetHelper.getGenericTabAsset
+import org.mozilla.focus.helpers.TestAssetHelper.getImageTestAsset
+import org.mozilla.focus.helpers.TestHelper
+import org.mozilla.focus.helpers.TestHelper.assertNativeAppOpens
+import org.mozilla.focus.helpers.TestHelper.getTargetContext
+import org.mozilla.focus.helpers.TestHelper.permAllowBtn
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+// These tests check the interaction with various context menu options
+@RunWith(AndroidJUnit4ClassRunner::class)
+class ContextMenusTest {
+ private lateinit var webServer: MockWebServer
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ var mActivityTestRule = MainActivityIntentsTestRule(showFirstRun = false)
+
+ @get: Rule
+ val retryTestRule = RetryTestRule(3)
+
+ @Before
+ fun setup() {
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ }
+
+ @After
+ fun tearDown() {
+ webServer.shutdown()
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun linkedImageContextMenuItemsTest() {
+ val imagesTestPage = getImageTestAsset(webServer)
+ val imageAssetUrl = webServer.url("download.jpg").toString()
+
+ searchScreen {
+ }.loadPage(imagesTestPage.url) {
+ longPressLink("download icon")
+ verifyImageContextMenu(true, imageAssetUrl)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun simpleImageContextMenuItemsTest() {
+ val imagesTestPage = getImageTestAsset(webServer)
+ val imageAssetUrl = webServer.url("rabbit.jpg").toString()
+
+ searchScreen {
+ }.loadPage(imagesTestPage.url) {
+ longPressLink("rabbit.jpg")
+ verifyImageContextMenu(false, imageAssetUrl)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun linkContextMenuItemsTest() {
+ val tab1Page = getGenericTabAsset(webServer, 1)
+ val tab2Page = getGenericTabAsset(webServer, 2)
+
+ searchScreen {
+ }.loadPage(tab1Page.url) {
+ verifyPageContent("Tab 1")
+ longPressLink("Tab 2")
+ verifyLinkContextMenu(tab2Page.url)
+ }
+ }
+
+ @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1819872")
+ @SmokeTest
+ @Test
+ fun copyLinkAddressTest() {
+ val tab1Page = getGenericTabAsset(webServer, 1)
+ val tab2Page = getGenericTabAsset(webServer, 2)
+
+ searchScreen {
+ }.loadPage(tab1Page.url) {
+ longPressLink("Tab 2")
+ verifyLinkContextMenu(tab2Page.url)
+ clickContextMenuCopyLink()
+ }.openSearchBar {
+ clearSearchBar()
+ longPressSearchBar()
+ }.pasteAndLoadLink {
+ progressBar.waitUntilGone(TestHelper.waitingTime)
+ verifyPageURL(tab2Page.url)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun shareLinkTest() {
+ val tab1Page = getGenericTabAsset(webServer, 1)
+ val tab2Page = getGenericTabAsset(webServer, 2)
+
+ searchScreen {
+ }.loadPage(tab1Page.url) {
+ longPressLink("Tab 2")
+ verifyLinkContextMenu(tab2Page.url)
+ clickShareLink()
+ verifyShareAppsListOpened()
+ }
+ }
+
+ @Test
+ fun copyImageLocationTest() {
+ val imagesTestPage = getImageTestAsset(webServer)
+ val imageAssetUrl = webServer.url("rabbit.jpg").toString()
+
+ searchScreen {
+ }.loadPage(imagesTestPage.url) {
+ longPressLink("rabbit.jpg")
+ verifyImageContextMenu(false, imageAssetUrl)
+ clickCopyImageLocation()
+ }.openSearchBar {
+ clearSearchBar()
+ longPressSearchBar()
+ }.pasteAndLoadLink {
+ progressBar.waitUntilGone(TestHelper.waitingTime)
+ verifyPageURL(imageAssetUrl)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun saveImageTest() {
+ val imagesTestPage = getImageTestAsset(webServer)
+ val fileName = "rabbit.jpg"
+
+ searchScreen {
+ }.loadPage(imagesTestPage.url) {
+ longPressLink(fileName)
+ }.clickSaveImage {
+ // If permission dialog appears on devices with API<30, grant it
+ if (permAllowBtn.exists()) {
+ permAllowBtn.click()
+ }
+ verifyDownloadConfirmationMessage(fileName)
+ openDownloadedFile()
+ assertNativeAppOpens(StringsHelper.GOOGLE_PHOTOS)
+ }
+ deleteFileUsingDisplayName(
+ getTargetContext.applicationContext,
+ fileName,
+ )
+ }
+
+ @Test
+ fun shareImageTest() {
+ val imagesTestPage = getImageTestAsset(webServer)
+
+ searchScreen {
+ }.loadPage(imagesTestPage.url) {
+ longPressLink("rabbit.jpg")
+ clickShareImage()
+ verifyShareAppsListOpened()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/CustomTabTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/CustomTabTest.kt
new file mode 100644
index 0000000000..35ff64cd37
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/CustomTabTest.kt
@@ -0,0 +1,133 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+@file:Suppress("DEPRECATION")
+
+package org.mozilla.focus.activity
+
+import androidx.lifecycle.Lifecycle
+import androidx.test.core.app.launchActivity
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import androidx.test.rule.ActivityTestRule
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Assert.assertEquals
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.activity.robots.browserScreen
+import org.mozilla.focus.activity.robots.customTab
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.TestAssetHelper.getGenericAsset
+import org.mozilla.focus.helpers.TestAssetHelper.getGenericTabAsset
+import org.mozilla.focus.helpers.TestHelper.createCustomTabIntent
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.testAnnotations.SmokeTest
+import java.io.IOException
+
+@RunWith(AndroidJUnit4ClassRunner::class)
+class CustomTabTest {
+ private lateinit var webServer: MockWebServer
+ private val MENU_ITEM_LABEL = "TestItem4223"
+ private val ACTION_BUTTON_DESCRIPTION = "TestButton"
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ val activityTestRule = ActivityTestRule(
+ IntentReceiverActivity::class.java,
+ true,
+ false,
+ )
+
+ @Before
+ fun setUp() {
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ featureSettingsHelper.setShowStartBrowsingCfrEnabled(false)
+ featureSettingsHelper.setCookieBannerReductionEnabled(false)
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ }
+
+ @After
+ fun tearDown() {
+ try {
+ webServer.shutdown()
+ } catch (e: IOException) {
+ throw AssertionError("Could not stop web server", e)
+ }
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun testCustomTabUI() {
+ val customTabPage = getGenericAsset(webServer)
+ val customTabActivity =
+ launchActivity<IntentReceiverActivity>(
+ createCustomTabIntent(customTabPage.url, MENU_ITEM_LABEL, ACTION_BUTTON_DESCRIPTION),
+ )
+
+ browserScreen {
+ progressBar.waitUntilGone(waitingTime)
+ verifyPageContent(customTabPage.content)
+ verifyPageURL(customTabPage.url)
+ }
+
+ customTab {
+ verifyCustomTabActionButton(ACTION_BUTTON_DESCRIPTION)
+ verifyShareButtonIsDisplayed()
+ openCustomTabMenu()
+ verifyTheStandardMenuItems()
+ verifyCustomMenuItem(MENU_ITEM_LABEL)
+ // Close the menu and close the tab
+ mDevice.pressBack()
+ closeCustomTab()
+ assertEquals(Lifecycle.State.DESTROYED, customTabActivity.state)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun openCustomTabInFocusTest() {
+ val customTabPage = getGenericTabAsset(webServer, 1)
+
+ launchActivity<IntentReceiverActivity>(createCustomTabIntent(customTabPage.url))
+ customTab {
+ progressBar.waitUntilGone(waitingTime)
+ verifyPageURL(customTabPage.url)
+ openCustomTabMenu()
+ }.clickOpenInFocusButton {
+ verifyPageURL(customTabPage.url)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun customTabNavigationButtonsTest() {
+ val firstPage = getGenericTabAsset(webServer, 1)
+ val secondPage = getGenericTabAsset(webServer, 2)
+
+ launchActivity<IntentReceiverActivity>(createCustomTabIntent(firstPage.url))
+ customTab {
+ verifyPageContent(firstPage.content)
+ clickLinkMatchingText("Tab 2")
+ verifyPageURL(secondPage.url)
+ }.openCustomTabMenu {
+ }.pressBack {
+ progressBar.waitUntilGone(waitingTime)
+ verifyPageURL(firstPage.url)
+ }.openMainMenu {
+ }.pressForward {
+ verifyPageURL(secondPage.url)
+ }.openMainMenu {
+ }.clickReloadButton {
+ verifyPageContent(secondPage.content)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/DownloadFileTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/DownloadFileTest.kt
new file mode 100644
index 0000000000..0d3d52abac
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/DownloadFileTest.kt
@@ -0,0 +1,200 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.activity.robots.downloadRobot
+import org.mozilla.focus.activity.robots.notificationTray
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.DeleteFilesHelper.deleteFileUsingDisplayName
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityIntentsTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.RetryTestRule
+import org.mozilla.focus.helpers.StringsHelper.GOOGLE_PHOTOS
+import org.mozilla.focus.helpers.TestAssetHelper.getImageTestAsset
+import org.mozilla.focus.helpers.TestHelper.assertNativeAppOpens
+import org.mozilla.focus.helpers.TestHelper.getTargetContext
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.permAllowBtn
+import org.mozilla.focus.helpers.TestHelper.verifyDownloadedFileOnStorage
+import org.mozilla.focus.helpers.TestHelper.verifySnackBarText
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.testAnnotations.SmokeTest
+import java.io.IOException
+
+@RunWith(AndroidJUnit4ClassRunner::class)
+class DownloadFileTest {
+ private lateinit var webServer: MockWebServer
+ private val featureSettingsHelper = FeatureSettingsHelper()
+ private val downloadTestPage = "https://storage.googleapis.com/mobile_test_assets/test_app/downloads.html"
+ private var downloadFileName: String = ""
+
+ @get:Rule
+ var mActivityTestRule = MainActivityIntentsTestRule(showFirstRun = false)
+
+ @Rule
+ @JvmField
+ val retryTestRule = RetryTestRule(3)
+
+ @Before
+ fun setUp() {
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ }
+
+ @After
+ fun tearDown() {
+ try {
+ webServer.shutdown()
+ } catch (e: IOException) {
+ throw AssertionError("Could not stop web server", e)
+ }
+ deleteFileUsingDisplayName(getTargetContext.applicationContext, downloadFileName)
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun downloadNotificationTest() {
+ val downloadPageUrl = getImageTestAsset(webServer).url
+ downloadFileName = "download.jpg"
+
+ notificationTray {
+ mDevice.openNotification()
+ clearNotifications()
+ }
+
+ // Load website with service worker
+ searchScreen {
+ }.loadPage(downloadPageUrl) { }
+
+ downloadRobot {
+ clickDownloadIconAsset()
+ // If permission dialog appears, grant it
+ if (permAllowBtn.waitForExists(waitingTime)) {
+ permAllowBtn.click()
+ }
+ verifyDownloadDialog(downloadFileName)
+ clickDownloadButton()
+ verifySnackBarText("finished")
+ mDevice.openNotification()
+ notificationTray {
+ verifyDownloadNotification("Download completed", downloadFileName)
+ }
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun cancelDownloadTest() {
+ val downloadPageUrl = getImageTestAsset(webServer).url
+
+ searchScreen {
+ }.loadPage(downloadPageUrl) { }
+
+ downloadRobot {
+ clickDownloadIconAsset()
+ // If permission dialog appears, grant it
+ if (permAllowBtn.waitForExists(waitingTime)) {
+ permAllowBtn.click()
+ }
+ clickCancelDownloadButton()
+ verifyDownloadDialogGone()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun downloadAndOpenJpgFileTest() {
+ val downloadPageUrl = getImageTestAsset(webServer).url
+ downloadFileName = "download.jpg"
+
+ // Load website with service worker
+ searchScreen {
+ }.loadPage(downloadPageUrl) { }
+
+ downloadRobot {
+ clickDownloadIconAsset()
+ // If permission dialog appears on devices with API<30, grant it
+ if (permAllowBtn.waitForExists(waitingTime)) {
+ permAllowBtn.click()
+ }
+ verifyDownloadDialog(downloadFileName)
+ clickDownloadButton()
+ verifyDownloadConfirmationMessage(downloadFileName)
+ openDownloadedFile()
+ assertNativeAppOpens(GOOGLE_PHOTOS)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun openPdfFileTest() {
+ downloadFileName = "washington.pdf"
+ val pdfFileURL = "https://storage.googleapis.com/mobile_test_assets/public/washington.pdf"
+ val pdfFileContent = "Washington Crossing the Delaware"
+ searchScreen {
+ }.loadPage(downloadTestPage) {
+ progressBar.waitUntilGone(waitingTime)
+ clickLinkMatchingText(downloadFileName)
+ verifyPageURL(pdfFileURL)
+ verifyPageContent(pdfFileContent)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun downloadAndOpenWebmFileTest() {
+ downloadFileName = "videoSample.webm"
+
+ searchScreen {
+ }.loadPage(downloadTestPage) {
+ progressBar.waitUntilGone(waitingTime)
+ clickLinkMatchingText(downloadFileName)
+ }
+ // If permission dialog appears on devices with API<30, grant it
+ if (permAllowBtn.waitForExists(waitingTime)) {
+ permAllowBtn.click()
+ }
+ downloadRobot {
+ verifyDownloadDialog(downloadFileName)
+ clickDownloadButton()
+ verifyDownloadConfirmationMessage(downloadFileName)
+ openDownloadedFile()
+ assertNativeAppOpens(GOOGLE_PHOTOS)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun verifyDownloadedFileOnStorageTest() {
+ downloadFileName = "textfile.txt"
+
+ searchScreen {
+ }.loadPage(downloadTestPage) {
+ progressBar.waitUntilGone(waitingTime)
+ clickLinkMatchingText(downloadFileName)
+ }
+ // If permission dialog appears on devices with API<30, grant it
+ if (permAllowBtn.waitForExists(waitingTime)) {
+ permAllowBtn.click()
+ }
+ downloadRobot {
+ verifyDownloadDialog(downloadFileName)
+ clickDownloadButton()
+ verifyDownloadConfirmationMessage(downloadFileName)
+ verifyDownloadedFileOnStorage(downloadFileName)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/EnhancedTrackingProtectionSettingsTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/EnhancedTrackingProtectionSettingsTest.kt
new file mode 100644
index 0000000000..c8fc44db06
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/EnhancedTrackingProtectionSettingsTest.kt
@@ -0,0 +1,351 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.espresso.Espresso.pressBack
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.activity.robots.browserScreen
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.TestAssetHelper.getEnhancedTrackingProtectionAsset
+import org.mozilla.focus.helpers.TestAssetHelper.getGenericAsset
+import org.mozilla.focus.helpers.TestHelper.exitToBrowser
+import org.mozilla.focus.helpers.TestHelper.exitToTop
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.testAnnotations.SmokeTest
+import java.io.IOException
+
+@RunWith(AndroidJUnit4ClassRunner::class)
+class EnhancedTrackingProtectionSettingsTest {
+ private lateinit var webServer: MockWebServer
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ var mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Before
+ fun setUp() {
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ featureSettingsHelper.setSearchWidgetDialogEnabled(false)
+ }
+
+ @After
+ fun tearDown() {
+ try {
+ webServer.shutdown()
+ } catch (e: IOException) {
+ throw AssertionError("Could not stop web server", e)
+ }
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun trackingProtectionTogglesListTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ verifyBlockAdTrackersEnabled(true)
+ verifyBlockAnalyticTrackersEnabled(true)
+ verifyBlockSocialTrackersEnabled(true)
+ verifyBlockOtherTrackersEnabled(false)
+ }
+ }
+
+ // Some workarounds are temp needed, because of https://bugzilla.mozilla.org/show_bug.cgi?id=1794130:
+ // going to the Settings screen,
+ // loading another page,
+ // or refreshing the page multiple times until ETP starts working.
+ @SmokeTest
+ @Test
+ fun blockAdTrackersTest() {
+ val genericPage = getGenericAsset(webServer)
+ val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "adsTrackers")
+
+ searchScreen {
+ }.loadPage(genericPage.url) {
+ // loading a generic page to allow GV to fully load on first run
+ verifyPageContent(genericPage.content)
+ }.openMainMenu {
+ }.openSettings {
+ exitToBrowser()
+ pressBack()
+ }
+ searchScreen {
+ }.loadPage(trackingPage.url) {
+ verifyTrackingProtectionAlert("ads trackers blocked")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun allowAdTrackersTest() {
+ val genericPage = getGenericAsset(webServer)
+ val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "adsTrackers")
+
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ clickAdTrackersBlockSwitch()
+ verifyBlockAdTrackersEnabled(false)
+ exitToTop()
+ }
+ searchScreen {
+ }.loadPage(genericPage.url) {
+ // loading a generic page to allow GV to fully load on first run
+ verifyPageContent(genericPage.content)
+ pressBack()
+ }
+ searchScreen {
+ }.loadPage(trackingPage.url) {
+ verifyPageContent("ads trackers not blocked")
+ }
+ }
+
+ // Some workarounds are temp needed, because of https://bugzilla.mozilla.org/show_bug.cgi?id=1794130:
+ // going to the Settings screen,
+ // loading another page,
+ // or refreshing the page multiple times until ETP starts working.
+ @SmokeTest
+ @Test
+ fun blockAnalyticsTrackersTest() {
+ val genericPage = getGenericAsset(webServer)
+ val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "analyticsTrackers")
+
+ searchScreen {
+ }.loadPage(genericPage.url) {
+ // loading a generic page to allow GV to fully load on first run
+ verifyPageContent(genericPage.content)
+ }.openMainMenu {
+ }.openSettings {
+ exitToBrowser()
+ pressBack()
+ }
+ searchScreen {
+ }.loadPage(trackingPage.url) {
+ verifyTrackingProtectionAlert("analytics trackers blocked")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun allowAnalyticsTrackersTest() {
+ val genericPage = getGenericAsset(webServer)
+ val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "analyticsTrackers")
+
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ clickAnalyticsTrackersBlockSwitch()
+ verifyBlockAnalyticTrackersEnabled(false)
+ exitToTop()
+ }
+ searchScreen {
+ }.loadPage(genericPage.url) {
+ // loading a generic page to allow GV to fully load on first run
+ verifyPageContent(genericPage.content)
+ pressBack()
+ }
+ searchScreen {
+ }.loadPage(trackingPage.url) {
+ verifyPageContent("analytics trackers not blocked")
+ }
+ }
+
+ // Some workarounds are temp needed, because of https://bugzilla.mozilla.org/show_bug.cgi?id=1794130:
+ // going to the Settings screen,
+ // loading another page,
+ // or refreshing the page multiple times until ETP starts working.
+ @SmokeTest
+ @Test
+ fun blockSocialTrackersTest() {
+ val genericPage = getGenericAsset(webServer)
+ val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "socialTrackers")
+
+ searchScreen {
+ }.loadPage(genericPage.url) {
+ // loading a generic page to allow GV to fully load on first run
+ verifyPageContent(genericPage.content)
+ }.openMainMenu {
+ }.openSettings {
+ exitToBrowser()
+ pressBack()
+ }
+ searchScreen {
+ }.loadPage(trackingPage.url) {
+ verifyTrackingProtectionAlert("social trackers blocked")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun allowSocialTrackersTest() {
+ val genericPage = getGenericAsset(webServer)
+ val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "socialTrackers")
+
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ clickSocialTrackersBlockSwitch()
+ verifyBlockSocialTrackersEnabled(false)
+ exitToTop()
+ }
+ searchScreen {
+ }.loadPage(genericPage.url) {
+ // loading a generic page to allow GV to fully load on first run
+ verifyPageContent(genericPage.content)
+ pressBack()
+ }
+ searchScreen {
+ }.loadPage(trackingPage.url) {
+ verifyPageContent("social trackers not blocked")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun allowOtherContentTrackersTest() {
+ val genericPage = getGenericAsset(webServer)
+ val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "otherTrackers")
+
+ searchScreen {
+ }.loadPage(genericPage.url) {
+ // loading a generic page to allow GV to fully load on first run
+ verifyPageContent(genericPage.content)
+ pressBack()
+ }
+ searchScreen {
+ }.loadPage(trackingPage.url) {
+ verifyPageContent("other content trackers not blocked")
+ }
+ }
+
+ // Some workarounds are temp needed, because of https://bugzilla.mozilla.org/show_bug.cgi?id=1794130:
+ // going to the Settings screen,
+ // loading another page,
+ // or refreshing the page multiple times until ETP starts working.
+ @SmokeTest
+ @Test
+ fun blockOtherContentTrackersTest() {
+ val genericPage = getGenericAsset(webServer)
+ val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "otherTrackers")
+
+ searchScreen {
+ }.loadPage(genericPage.url) {
+ // loading a generic page to allow GV to fully load on first run
+ verifyPageContent(genericPage.content)
+ pressBack()
+ }
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ clickOtherContentTrackersBlockSwitch()
+ verifyBlockOtherTrackersEnabled(true)
+ exitToTop()
+ }
+ searchScreen {
+ }.loadPage(trackingPage.url) {
+ verifyTrackingProtectionAlert("other content trackers blocked")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun addURLToTPExceptionsListTest() {
+ val genericPage = getGenericAsset(webServer)
+ val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "otherTrackers")
+
+ searchScreen {
+ }.loadPage(genericPage.url) {
+ verifyPageContent(genericPage.content)
+ }.openSearchBar {
+ }.loadPage(trackingPage.url) {
+ verifyPageContent(trackingPage.content)
+ }.openSiteSecurityInfoSheet {
+ }.clickTrackingProtectionSwitch {
+ progressBar.waitUntilGone(waitingTime)
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ openExceptionsList()
+ verifyExceptionURL(webServer.hostName)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun removeOneExceptionURLTest() {
+ val genericPage = getGenericAsset(webServer)
+ val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "otherTrackers")
+
+ searchScreen {
+ }.loadPage(genericPage.url) {
+ verifyPageContent(genericPage.content)
+ }.openSearchBar {
+ }.loadPage(trackingPage.url) {
+ verifyPageContent(trackingPage.content)
+ }.openSiteSecurityInfoSheet {
+ }.clickTrackingProtectionSwitch {
+ progressBar.waitUntilGone(waitingTime)
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ openExceptionsList()
+ removeException()
+ verifyExceptionsListDisabled()
+ exitToBrowser()
+ }
+ browserScreen {
+ }.openSiteSecurityInfoSheet {
+ verifyTrackingProtectionIsEnabled(true)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun removeAllExceptionURLTest() {
+ val genericPage = getGenericAsset(webServer)
+ val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "otherTrackers")
+
+ searchScreen {
+ }.loadPage(genericPage.url) {
+ verifyPageContent(genericPage.content)
+ }.openSearchBar {
+ }.loadPage(trackingPage.url) {
+ verifyPageContent(trackingPage.content)
+ }.openSiteSecurityInfoSheet {
+ }.clickTrackingProtectionSwitch {
+ progressBar.waitUntilGone(waitingTime)
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ openExceptionsList()
+ removeAllExceptions()
+ verifyExceptionsListDisabled()
+ exitToBrowser()
+ }
+ browserScreen {
+ }.openSiteSecurityInfoSheet {
+ verifyTrackingProtectionIsEnabled(true)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/EraseBrowsingDataTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/EraseBrowsingDataTest.kt
new file mode 100644
index 0000000000..c2c011a7f1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/EraseBrowsingDataTest.kt
@@ -0,0 +1,160 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity
+
+import android.content.Intent
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import androidx.test.uiautomator.By
+import androidx.test.uiautomator.Until
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Assert
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.activity.robots.notificationTray
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.RetryTestRule
+import org.mozilla.focus.helpers.TestAssetHelper.getGenericTabAsset
+import org.mozilla.focus.helpers.TestHelper.getStringResource
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.pressHomeKey
+import org.mozilla.focus.helpers.TestHelper.restartApp
+import org.mozilla.focus.helpers.TestHelper.verifySnackBarText
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+// These tests verify interaction with the browsing notification and erasing browsing data
+@RunWith(AndroidJUnit4ClassRunner::class)
+class EraseBrowsingDataTest {
+ private lateinit var webServer: MockWebServer
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ var mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Rule
+ @JvmField
+ val retryTestRule = RetryTestRule(3)
+
+ @Before
+ fun setUp() {
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ featureSettingsHelper.setSearchWidgetDialogEnabled(false)
+ }
+
+ @After
+ fun tearDown() {
+ webServer.shutdown()
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun trashButtonTest() {
+ val testPage = getGenericTabAsset(webServer, 1)
+
+ searchScreen {
+ }.loadPage(testPage.url) {
+ verifyPageContent(testPage.content)
+ // Press erase button, and check for message and return to the main page
+ }.clearBrowsingData {
+ verifySnackBarText(getStringResource(R.string.feedback_erase2))
+ verifyEmptySearchBar()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun notificationEraseAndOpenButtonTest() {
+ val testPage = getGenericTabAsset(webServer, 1)
+
+ notificationTray {
+ mDevice.openNotification()
+ clearNotifications()
+ }
+
+ searchScreen {
+ }.loadPage(testPage.url) { }
+ // Send app to background
+ pressHomeKey()
+ // Pull down system bar and select Erase and Open
+ mDevice.openNotification()
+ notificationTray {
+ verifySystemNotificationExists(getStringResource(R.string.notification_erase_text))
+ expandEraseBrowsingNotification()
+ }.clickEraseAndOpenNotificationButton {
+ verifySnackBarText(getStringResource(R.string.feedback_erase2))
+ verifyEmptySearchBar()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun deleteHistoryOnRestartTest() {
+ val testPage = getGenericTabAsset(webServer, 1)
+
+ searchScreen {
+ }.loadPage(testPage.url) {}
+ restartApp(mActivityTestRule)
+ homeScreen {
+ verifyEmptySearchBar()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun systemBarHomeViewTest() {
+ val testPage = getGenericTabAsset(webServer, 1)
+ val LAUNCH_TIMEOUT = 5000
+ val launcherPackage = mDevice.launcherPackageName
+
+ notificationTray {
+ mDevice.openNotification()
+ clearNotifications()
+ }
+
+ // Leave Focus open, delete browsing history and check the app is still running
+ searchScreen {
+ }.loadPage(testPage.url) { }
+ mDevice.openNotification()
+ notificationTray {
+ verifySystemNotificationExists(getStringResource(R.string.notification_erase_text))
+ expandEraseBrowsingNotification()
+ }.clickNotificationMessage {
+ verifyEmptySearchBar()
+ }
+
+ // Switch out of Focus, delete browsing history and check the app is killed
+ searchScreen {
+ }.loadPage(testPage.url) { }
+ pressHomeKey()
+ mDevice.openNotification()
+ notificationTray {
+ verifySystemNotificationExists(getStringResource(R.string.notification_erase_text))
+ expandEraseBrowsingNotification()
+ }.clickNotificationMessage {
+ // Wait for launcher
+ Assert.assertNotNull(launcherPackage)
+ mDevice.wait(
+ Until.hasObject(By.pkg(launcherPackage).depth(0)),
+ LAUNCH_TIMEOUT.toLong(),
+ )
+
+ // Re-launch the app, verify it's not showing the previous browsing session
+ mActivityTestRule.launchActivity(Intent(Intent.ACTION_MAIN))
+ verifyEmptySearchBar()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ErrorPagesTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ErrorPagesTest.kt
new file mode 100644
index 0000000000..eb511ff63d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ErrorPagesTest.kt
@@ -0,0 +1,60 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.TestHelper.getStringResource
+import org.mozilla.focus.helpers.TestHelper.setNetworkEnabled
+
+// This tests verify invalid URL and no network connection error pages
+@RunWith(AndroidJUnit4ClassRunner::class)
+class ErrorPagesTest {
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ val mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Before
+ fun setUp() {
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ }
+
+ @After
+ fun tearDown() {
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @Test
+ fun badURLCheckTest() {
+ val badURl = "bad.url"
+
+ searchScreen {
+ }.loadPage(badURl) {
+ verifyPageContent(getStringResource(R.string.mozac_browser_errorpages_unknown_host_title))
+ verifyPageContent("Try Again")
+ }
+ }
+
+ @Test
+ fun noNetworkConnectionErrorPageTest() {
+ val pageUrl = "mozilla.org"
+
+ setNetworkEnabled(false)
+ searchScreen {
+ }.loadPage(pageUrl) {
+ verifyPageContent(getStringResource(R.string.mozac_browser_errorpages_unknown_host_title))
+ verifyPageContent("Try Again")
+ setNetworkEnabled(true)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/FirstRunTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/FirstRunTest.kt
new file mode 100644
index 0000000000..e110d1035c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/FirstRunTest.kt
@@ -0,0 +1,57 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.TestHelper.restartApp
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+// Tests the First run onboarding screens
+@RunWith(AndroidJUnit4ClassRunner::class)
+class FirstRunTest {
+ private lateinit var webServer: MockWebServer
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ val mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = true)
+
+ @Before
+ fun startWebServer() {
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ }
+
+ @After
+ fun stopWebServer() {
+ webServer.shutdown()
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun onboardingScreensTest() {
+ homeScreen {
+ verifyFirstOnboardingScreenItems()
+ restartApp(mActivityTestRule)
+ verifyFirstOnboardingScreenItems()
+ clickGetStartedButton()
+ verifySecondOnboardingScreenItems()
+ restartApp(mActivityTestRule)
+ verifySecondOnboardingScreenItems()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MediaPlaybackTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MediaPlaybackTest.kt
new file mode 100644
index 0000000000..c8129b9490
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MediaPlaybackTest.kt
@@ -0,0 +1,101 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.mozilla.focus.activity.robots.browserScreen
+import org.mozilla.focus.activity.robots.notificationTray
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.TestAssetHelper.getMediaTestAsset
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+class MediaPlaybackTest {
+ private lateinit var webServer: MockWebServer
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get:Rule
+ var mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Before
+ fun setUp() {
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ }
+
+ @After
+ fun tearDown() {
+ webServer.shutdown()
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun testVideoPlayback() {
+ val videoPageUrl = getMediaTestAsset(webServer, "videoPage").url
+
+ searchScreen {
+ }.loadPage(videoPageUrl) {
+ clickPlayButton()
+ waitForPlaybackToStart()
+ // need this alert hack to check the video is playing,
+ // currently the test cannot verify the text in the page
+ clickPauseButton()
+ verifyPlaybackStopped()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun testAudioPlayback() {
+ val audioPageUrl = getMediaTestAsset(webServer, "audioPage").url
+
+ searchScreen {
+ }.loadPage(audioPageUrl) {
+ clickPlayButton()
+ waitForPlaybackToStart()
+ // need this alert hack to check the video is playing,
+ // currently the test cannot verify the text in the page
+ clickPauseButton()
+ verifyPlaybackStopped()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun testMediaContentNotification() {
+ val audioPageUrl = getMediaTestAsset(webServer, "audioPage").url
+ val notificationMessage = "A site is playing media"
+
+ searchScreen {
+ }.loadPage(audioPageUrl) {
+ clickPlayButton()
+ waitForPlaybackToStart()
+ }
+ mDevice.openNotification()
+ notificationTray {
+ verifyMediaNotificationExists("A site is playing media")
+ clickMediaNotificationControlButton("Pause")
+ verifyMediaNotificationButtonState("Play")
+ }
+ mDevice.pressBack()
+ browserScreen {
+ verifyPlaybackStopped()
+ }.clearBrowsingData {}
+ mDevice.openNotification()
+ notificationTray {
+ verifyNotificationGone(notificationMessage)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MozillaSupportPagesTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MozillaSupportPagesTest.kt
new file mode 100644
index 0000000000..2098180ef4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MozillaSupportPagesTest.kt
@@ -0,0 +1,128 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.TestHelper.getTargetContext
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+// This test visits each About page and checks whether some essential elements are being displayed
+@RunWith(AndroidJUnit4ClassRunner::class)
+class MozillaSupportPagesTest {
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ val mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Before
+ fun setUp() {
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ }
+
+ @After
+ fun tearDown() {
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun openMenuHelpPageTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.clickHelpPageLink {
+ verifyPageURL("what-firefox-focus-android")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun openAboutPageTest() {
+ // Go to settings "About" page
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openMozillaSettingsMenu {
+ }.openAboutPage {
+ verifyVersionNumbers()
+ }.openAboutPageLearnMoreLink {
+ verifyPageURL("www.mozilla.org/en-US/about/manifesto/")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun openMozillaSettingsHelpLinkTest() {
+ // Go to settings "About" page
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openMozillaSettingsMenu {
+ }.openHelpLink {
+ verifyPageURL("what-firefox-focus-android")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun openYourRightsPageTest() {
+ val yourRightsString = getTargetContext.getString(
+ R.string.your_rights_content1,
+ getTargetContext.getString(R.string.app_name),
+ "Mozilla Public License",
+ )
+
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openMozillaSettingsMenu {
+ }.openYourRightsPage {
+ verifyPageContent(yourRightsString)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun openLibrariesThatWeUse() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openMozillaSettingsMenu {
+ }.openLibrariesUsedPage {
+ verifyLibrariesUsedTitle()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun openAboutLicenses() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openMozillaSettingsMenu {
+ }.openLicenseInformation {
+ verifyPageURL("about:license")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun openPrivacyNoticeTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openMozillaSettingsMenu {
+ }.openPrivacyNotice {
+ verifyPageURL("privacy/firefox-focus")
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MultitaskingTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MultitaskingTest.kt
new file mode 100644
index 0000000000..061f44d9a3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MultitaskingTest.kt
@@ -0,0 +1,147 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import androidx.test.platform.app.InstrumentationRegistry
+import mozilla.components.browser.state.selector.privateTabs
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Assert.assertTrue
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.robots.browserScreen
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.RetryTestRule
+import org.mozilla.focus.helpers.TestAssetHelper.getGenericAsset
+import org.mozilla.focus.helpers.TestAssetHelper.getGenericTabAsset
+import org.mozilla.focus.helpers.TestHelper.clickSnackBarActionButton
+import org.mozilla.focus.helpers.TestHelper.getStringResource
+import org.mozilla.focus.helpers.TestHelper.openAppFromExternalLink
+import org.mozilla.focus.helpers.TestHelper.verifySnackBarText
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+/**
+ * Open multiple sessions and verify that the trash icon changes to a tabs counter
+ */
+@RunWith(AndroidJUnit4ClassRunner::class)
+class MultitaskingTest {
+ private lateinit var webServer: MockWebServer
+ private val store = InstrumentationRegistry.getInstrumentation()
+ .targetContext
+ .applicationContext
+ .components
+ .store
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ var mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Rule
+ @JvmField
+ val retryTestRule = RetryTestRule(3)
+
+ @Before
+ @Throws(Exception::class)
+ fun startWebServer() {
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ }
+
+ @After
+ @Throws(Exception::class)
+ fun tearDown() {
+ webServer.shutdown()
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun testVisitingMultipleSites() {
+ val tab1 = getGenericTabAsset(webServer, 1)
+ val tab2 = getGenericTabAsset(webServer, 2)
+ val tab3 = getGenericTabAsset(webServer, 3)
+ val eraseBrowsingSnackBarText = getStringResource(R.string.feedback_erase2)
+ val customTabPage = getGenericAsset(webServer)
+
+ // Load website: Erase button visible, Tabs button not
+ searchScreen {
+ }.loadPage(tab1.url) {
+ longPressLink("Tab 2")
+ verifyLinkContextMenu(tab2.url)
+ openLinkInNewTab()
+ verifyNumberOfTabsOpened(2)
+ longPressLink("Tab 3")
+ openLinkInNewTab()
+ verifySnackBarText("New private tab opened")
+ clickSnackBarActionButton("SWITCH")
+ verifyNumberOfTabsOpened(3)
+ }
+
+ openAppFromExternalLink(customTabPage.url)
+ browserScreen {
+ verifyNumberOfTabsOpened(4)
+ }.openTabsTray {
+ verifyTabsOrder(tab1.title, tab3.title, tab2.title, customTabPage.title)
+ }.selectTab(tab1.title) {
+ verifyPageContent("Tab 1")
+ }.clearBrowsingData {
+ verifySnackBarText(eraseBrowsingSnackBarText)
+ assertTrue(store.state.privateTabs.isEmpty())
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun closeTabButtonTest() {
+ val tab1 = getGenericTabAsset(webServer, 1)
+ val tab2 = getGenericTabAsset(webServer, 2)
+ val tab3 = getGenericTabAsset(webServer, 3)
+
+ searchScreen {
+ }.loadPage(tab1.url) {
+ verifyPageContent("Tab 1")
+ longPressLink("Tab 2")
+ openLinkInNewTab()
+ longPressLink("Tab 3")
+ openLinkInNewTab()
+ verifyNumberOfTabsOpened(3)
+ }.openTabsTray {
+ verifyTabsOrder(tab1.title, tab3.title, tab2.title)
+ }.closeTab(tab1.title) {
+ }.openTabsTray {
+ verifyTabsOrder(tab3.title, tab2.title)
+ }.closeTab(tab3.title) {
+ verifyTabsCounterNotShown()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun verifyTabsTrayListTest() {
+ val tab1 = getGenericTabAsset(webServer, 1)
+ val tab2 = getGenericTabAsset(webServer, 2)
+
+ searchScreen {
+ }.loadPage(tab1.url) {
+ longPressLink("Tab 2")
+ openLinkInNewTab()
+ }.openTabsTray {
+ }.selectTab(tab2.title) {
+ }.openTabsTray {
+ verifyCloseTabButton(tab1.title)
+ verifyCloseTabButton(tab2.title)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/OldFirstRunTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/OldFirstRunTest.kt
new file mode 100644
index 0000000000..8bb0ec78db
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/OldFirstRunTest.kt
@@ -0,0 +1,67 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+
+// Tests the First run onboarding screens
+@RunWith(AndroidJUnit4ClassRunner::class)
+class OldFirstRunTest {
+ private lateinit var webServer: MockWebServer
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ val mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = true, showNewOnboarding = false)
+
+ @Before
+ fun setUp() {
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ }
+
+ @After
+ fun tearDown() {
+ webServer.shutdown()
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @Test
+ fun firstRunOnboardingTest() {
+ homeScreen {
+ verifyOnboardingFirstSlide()
+ clickOnboardingNextButton()
+ verifyOnboardingSecondSlide()
+ clickOnboardingNextButton()
+ verifyOnboardingThirdSlide()
+ clickOnboardingNextButton()
+ verifyOnboardingLastSlide()
+ clickOnboardingFinishButton()
+ verifyEmptySearchBar()
+ }
+ }
+
+ @Test
+ fun skipFirstRunOnboardingTest() {
+ homeScreen {
+ verifyOnboardingFirstSlide()
+ clickOnboardingNextButton()
+ verifyOnboardingSecondSlide()
+ skipFirstRun()
+ verifyEmptySearchBar()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/OpenInExternalBrowserDialogueTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/OpenInExternalBrowserDialogueTest.kt
new file mode 100644
index 0000000000..59df011f65
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/OpenInExternalBrowserDialogueTest.kt
@@ -0,0 +1,61 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityIntentsTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.StringsHelper.GOOGLE_CHROME
+import org.mozilla.focus.helpers.TestAssetHelper.getGenericAsset
+import org.mozilla.focus.helpers.TestHelper.assertNativeAppOpens
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+// This test verifies the "Open in..." option from the main menu
+@RunWith(AndroidJUnit4ClassRunner::class)
+class OpenInExternalBrowserDialogueTest {
+ private lateinit var webServer: MockWebServer
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ var mActivityTestRule = MainActivityIntentsTestRule(showFirstRun = false)
+
+ @Before
+ fun setUp() {
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ }
+
+ @After
+ fun tearDown() {
+ mActivityTestRule.activity.finishAndRemoveTask()
+ webServer.shutdown()
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun openPageInExternalAppTest() {
+ val pageUrl = getGenericAsset(webServer).url
+
+ searchScreen {
+ }.loadPage(pageUrl) {
+ }.openMainMenu {
+ clickOpenInOption()
+ verifyOpenInDialog()
+ clickOpenInChrome()
+ assertNativeAppOpens(GOOGLE_CHROME)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SafeBrowsingTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SafeBrowsingTest.kt
new file mode 100644
index 0000000000..4843da7d24
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SafeBrowsingTest.kt
@@ -0,0 +1,139 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.TestHelper.exitToTop
+import org.mozilla.focus.helpers.TestHelper.getStringResource
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+// These tests verify the Safe Browsing feature by visiting unsafe URLs and checking they are blocked
+class SafeBrowsingTest {
+ private lateinit var webServer: MockWebServer
+ private val malwareWarning = getStringResource(R.string.mozac_browser_errorpages_safe_browsing_malware_uri_title)
+ private val phishingWarning = getStringResource(R.string.mozac_browser_errorpages_safe_phishing_uri_title)
+ private val unwantedSoftwareWarning =
+ getStringResource(R.string.mozac_browser_errorpages_safe_browsing_unwanted_uri_title)
+ private val harmfulSiteWarning = getStringResource(R.string.mozac_browser_errorpages_safe_harmful_uri_title)
+ private val tryAgainButton = getStringResource(R.string.mozac_browser_errorpages_page_refresh)
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ val mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Before
+ fun setUp() {
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ featureSettingsHelper.setSearchWidgetDialogEnabled(false)
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ }
+
+ @After
+ fun tearDown() {
+ webServer.shutdown()
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun blockMalwarePageTest() {
+ val malwareURl = "http://itisatrap.org/firefox/its-an-attack.html"
+
+ searchScreen {
+ }.loadPage(malwareURl) {
+ verifyPageContent(malwareWarning)
+ verifyPageContent(tryAgainButton)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun blockPhishingPageTest() {
+ val phishingURl = "http://itisatrap.org/firefox/its-a-trap.html"
+
+ searchScreen {
+ }.loadPage(phishingURl) {
+ verifyPageContent(phishingWarning)
+ verifyPageContent(tryAgainButton)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun blockUnwantedSoftwarePageTest() {
+ val unwantedURl = "http://itisatrap.org/firefox/unwanted.html"
+
+ searchScreen {
+ }.loadPage(unwantedURl) {
+ verifyPageContent(unwantedSoftwareWarning)
+ verifyPageContent(tryAgainButton)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun blockHarmfulPageTest() {
+ val harmfulURl = "https://www.itisatrap.org/firefox/harmful.html"
+
+ searchScreen {
+ }.loadPage(harmfulURl) {
+ verifyPageContent(harmfulSiteWarning)
+ verifyPageContent(tryAgainButton)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun unblockSafeBrowsingTest() {
+ val malwareURl = "http://itisatrap.org/firefox/its-an-attack.html"
+
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ switchSafeBrowsingToggle()
+ exitToTop()
+ }
+ searchScreen {
+ }.loadPage(malwareURl) {
+ verifyPageContent("It’s an Attack!")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun verifyPageSecurityIconAndInfo() {
+ val safePageUrl = "https://mozilla-mobile.github.io/testapp/"
+ val insecurePageUrl = "http://itisatrap.org/firefox/its-a-trap.html"
+
+ searchScreen {
+ }.loadPage(safePageUrl) {
+ verifyPageContent("Lets test!")
+ verifySiteTrackingProtectionIconShown()
+ }.openSiteSecurityInfoSheet {
+ verifySiteConnectionInfoIsSecure(true)
+ }.closeSecurityInfoSheet {
+ }.clearBrowsingData {}
+ searchScreen {
+ }.loadPage(insecurePageUrl) {
+ verifyPageURL(insecurePageUrl)
+ verifySiteSecurityIndicatorShown()
+ }.openSiteSecurityInfoSheet {
+ verifySiteConnectionInfoIsSecure(false)
+ }.closeSecurityInfoSheet { }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SearchTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SearchTest.kt
new file mode 100644
index 0000000000..82b7384965
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SearchTest.kt
@@ -0,0 +1,184 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.espresso.Espresso.pressBack
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.mozilla.focus.activity.robots.browserScreen
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.TestHelper.exitToTop
+import org.mozilla.focus.helpers.TestHelper.pressEnterKey
+import org.mozilla.focus.helpers.TestHelper.verifyKeyboardVisibility
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+// This test checks the search engine can be changed and that search suggestions appear
+class SearchTest {
+ private lateinit var searchString: String
+ private val enginesList = listOf("DuckDuckGo", "Google", "Amazon.com", "Wikipedia")
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ var mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Before
+ fun setUp() {
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ featureSettingsHelper.setSearchWidgetDialogEnabled(false)
+ }
+
+ @After
+ fun tearDown() {
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun changeSearchEngineTest() {
+ for (searchEngine in enginesList) {
+ // Open [settings menu] and select Search engine
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openSearchSettingsMenu {
+ openSearchEngineSubMenu()
+ selectSearchEngine(searchEngine)
+ exitToTop()
+ }
+
+ searchScreen {
+ typeInSearchBar("mozilla ")
+ pressEnterKey()
+ }
+
+ browserScreen {
+ verifyPageURL(searchEngine)
+ pressBack()
+ }
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun enableSearchSuggestionOnFirstRunTest() {
+ searchString = "mozilla "
+
+ searchScreen {
+ // type and check search suggestions are displayed
+ typeInSearchBar(searchString)
+ allowEnableSearchSuggestions()
+ verifySearchSuggestionsAreShown()
+ clearSearchBar()
+ }
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openSearchSettingsMenu {
+ verifySearchSuggestionsSwitchState(true)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun disableSearchSuggestionOnFirstRunTest() {
+ searchString = "mozilla "
+
+ searchScreen {
+ typeInSearchBar(searchString)
+ denyEnableSearchSuggestions()
+ verifySearchSuggestionsAreNotShown()
+ clearSearchBar()
+ }
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openSearchSettingsMenu {
+ verifySearchSuggestionsSwitchState(false)
+ }
+ }
+
+ @Test
+ fun testBlankSearchDoesNothing() {
+ searchScreen {
+ // Search on blank spaces should not do anything
+ typeInSearchBar(" ")
+ pressEnterKey()
+ searchScreen {
+ verifySearchEditBarContainsText(" ")
+ }
+ }
+ }
+
+ @Test
+ fun testSearchBarShowsSearchTermOnEdit() {
+ searchString = "mozilla focus"
+
+ searchScreen {
+ typeInSearchBar(searchString)
+ pressEnterKey()
+ }
+ browserScreen {
+ progressBar.waitUntilGone(waitingTime)
+ verifyPageURL("google")
+ }.openSearchBar {
+ // Tap URL bar, check it displays search term (instead of URL)
+ verifySearchEditBarContainsText(searchString)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun disableSearchSuggestionsTest() {
+ searchString = "mozilla "
+
+ searchScreen {
+ // Search on blank spaces should not do anything
+ verifySearchBarIsDisplayed()
+ typeInSearchBar(searchString)
+ allowEnableSearchSuggestions()
+ clearSearchBar()
+ }
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openSearchSettingsMenu {
+ clickSearchSuggestionsSwitch()
+ exitToTop()
+ }
+
+ searchScreen {
+ typeInSearchBar(searchString)
+ verifySearchSuggestionsAreNotShown()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun clearSearchButtonTest() {
+ searchString = "mozilla "
+
+ homeScreen {
+ }.openSearchBar {
+ typeInSearchBar(searchString)
+ verifyKeyboardVisibility(true)
+ verifySearchEditBarContainsText(searchString)
+ clearSearchBar()
+ verifyKeyboardVisibility(true)
+ verifySearchEditBarIsEmpty()
+ }
+
+ searchString = "firefox"
+
+ searchScreen {
+ typeInSearchBar(searchString)
+ verifySearchEditBarContainsText(searchString)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsAdvancedTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsAdvancedTest.kt
new file mode 100644
index 0000000000..aa31ed5441
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsAdvancedTest.kt
@@ -0,0 +1,82 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.TestAssetHelper.getGenericTabAsset
+import org.mozilla.focus.helpers.TestHelper.waitingTimeShort
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+// These tests check the advanced settings options
+@RunWith(AndroidJUnit4ClassRunner::class)
+class SettingsAdvancedTest {
+ private lateinit var webServer: MockWebServer
+
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ var mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Before
+ fun setup() {
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ featureSettingsHelper.setSearchWidgetDialogEnabled(false)
+ }
+
+ @After
+ fun tearDown() {
+ webServer.shutdown()
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun openLinksInAppsTest() {
+ val tab3Url = getGenericTabAsset(webServer, 3).url
+ val youtubeLink = "https://www.youtube.com/c/MozillaChannel/videos"
+
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openAdvancedSettingsMenu {
+ verifyOpenLinksInAppsSwitchState(false)
+ clickOpenLinksInAppsSwitch()
+ verifyOpenLinksInAppsSwitchState(true)
+ }.goBackToSettings {
+ }.goBackToHomeScreen {
+ }.loadPage(tab3Url) {
+ progressBar.waitUntilGone(waitingTimeShort)
+ clickLinkMatchingText("Mozilla Youtube link")
+ verifyOpenLinksInAppsPrompt(true, youtubeLink)
+ clickOpenLinksInAppsCancelButton()
+ }.clearBrowsingData {
+ }.openMainMenu {
+ }.openSettings {
+ }.openAdvancedSettingsMenu {
+ verifyOpenLinksInAppsSwitchState(true)
+ clickOpenLinksInAppsSwitch()
+ verifyOpenLinksInAppsSwitchState(false)
+ }.goBackToSettings {
+ }.goBackToHomeScreen {
+ }.loadPage(tab3Url) {
+ progressBar.waitUntilGone(waitingTimeShort)
+ clickLinkMatchingText("Mozilla Youtube link")
+ verifyOpenLinksInAppsPrompt(false, youtubeLink)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsGeneralTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsGeneralTest.kt
new file mode 100644
index 0000000000..e5b49920d7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsGeneralTest.kt
@@ -0,0 +1,178 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity
+
+import android.content.res.Configuration
+import android.os.Build
+import androidx.test.platform.app.InstrumentationRegistry
+import mozilla.components.support.locale.LocaleManager
+import mozilla.components.support.locale.LocaleUseCases
+import org.junit.After
+import org.junit.Rule
+import org.junit.Test
+import org.junit.rules.TestRule
+import org.junit.rules.TestWatcher
+import org.junit.runner.Description
+import org.mozilla.focus.activity.robots.browserScreen
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.helpers.MainActivityIntentsTestRule
+import org.mozilla.focus.helpers.StringsHelper.AF_GENERAL_HEADING
+import org.mozilla.focus.helpers.StringsHelper.AF_HELP
+import org.mozilla.focus.helpers.StringsHelper.AF_LANGUAGE_MENU
+import org.mozilla.focus.helpers.StringsHelper.AF_LANGUAGE_SYSTEM_DEFAULT
+import org.mozilla.focus.helpers.StringsHelper.AF_SETTINGS
+import org.mozilla.focus.helpers.StringsHelper.EN_AFRIKAANS_LOCALE
+import org.mozilla.focus.helpers.StringsHelper.EN_LANGUAGE_MENU_HEADING
+import org.mozilla.focus.helpers.StringsHelper.FR_GENERAL_HEADING
+import org.mozilla.focus.helpers.StringsHelper.FR_LANGUAGE_MENU
+import org.mozilla.focus.helpers.StringsHelper.FR_LANGUAGE_SYSTEM_DEFAULT
+import org.mozilla.focus.helpers.StringsHelper.FR_SETTINGS
+import org.mozilla.focus.helpers.TestHelper.exitToTop
+import org.mozilla.focus.helpers.TestHelper.verifyTranslatedTextExists
+import org.mozilla.focus.locale.Locales
+import org.mozilla.focus.testAnnotations.SmokeTest
+import org.mozilla.gecko.util.ThreadUtils.runOnUiThread
+
+// Tests for the General settings sub-menu: changing theme, locale and default browser
+class SettingsGeneralTest {
+ @get: Rule
+ var mActivityTestRule = MainActivityIntentsTestRule(showFirstRun = false)
+
+ @get: Rule
+ var watcher: TestRule = object : TestWatcher() {
+ override fun starting(description: Description) {
+ println("Starting test: " + description.methodName)
+ if (description.methodName == "frenchLocaleTest") {
+ changeLocale("fr")
+ }
+ }
+ }
+
+ @After
+ fun tearDown() {
+ changeLocale("en")
+ }
+
+ @SmokeTest
+ @Test
+ fun changeThemeTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openGeneralSettingsMenu {
+ verifyThemesList()
+ selectDarkTheme()
+ verifyThemeApplied(isDarkTheme = true, getThemeState = getUiTheme())
+ selectLightTheme()
+ verifyThemeApplied(isLightTheme = true, getThemeState = getUiTheme())
+ selectDeviceTheme()
+ verifyThemeApplied(isLightTheme = true, getThemeState = getUiTheme())
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun englishSystemLocaleTest() {
+ /* Go to Settings and change language to French*/
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openGeneralSettingsMenu {
+ openLanguageSelectionMenu()
+ verifySystemLocaleSelected()
+ selectLanguage(EN_AFRIKAANS_LOCALE)
+ verifyTranslatedTextExists(AF_LANGUAGE_MENU)
+ exitToTop()
+ }
+ /* Exit to main and see the UI is in French as well */
+ homeScreen {
+ }.openMainMenu {
+ verifyTranslatedTextExists(AF_SETTINGS)
+ verifyTranslatedTextExists(AF_HELP)
+ /* change back to system locale, verify the locale is changed */
+ }.openSettings(AF_SETTINGS) {
+ }.openGeneralSettingsMenu(AF_GENERAL_HEADING) {
+ openLanguageSelectionMenu(AF_LANGUAGE_MENU)
+ selectLanguage(AF_LANGUAGE_SYSTEM_DEFAULT)
+ verifyTranslatedTextExists(EN_LANGUAGE_MENU_HEADING)
+ exitToTop()
+ }
+ homeScreen {
+ }.openMainMenu {
+ verifySettingsButtonExists()
+ verifyHelpPageLinkExists()
+ }
+ }
+
+ @Test
+ fun frenchLocaleTest() {
+ /* Go to Settings */
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings(FR_SETTINGS) {
+ }.openGeneralSettingsMenu(FR_GENERAL_HEADING) {
+ openLanguageSelectionMenu(FR_LANGUAGE_MENU)
+ verifySystemLocaleSelected(FR_LANGUAGE_SYSTEM_DEFAULT)
+ /* change locale to English, verify the locale is changed */
+ selectLanguage(EN_AFRIKAANS_LOCALE)
+ verifyTranslatedTextExists(AF_LANGUAGE_MENU)
+ exitToTop()
+ }
+ homeScreen {
+ }.openMainMenu {
+ verifyTranslatedTextExists(AF_SETTINGS)
+ verifyTranslatedTextExists(AF_HELP)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun changeDefaultBrowserTest() {
+ val supportPageUrl = "https://support.mozilla.org/en-US/kb/set-firefox-focus-default-browser-android"
+
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openGeneralSettingsMenu {
+ clickSetDefaultBrowser()
+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
+ browserScreen {
+ verifyPageURL(supportPageUrl)
+ }
+ } else {
+ verifyAndroidDefaultAppsMenuAppears()
+ // for API 24 to 28 we'll skip these steps because the switch doesn't update after
+ // returning from Default apps settings, not reproducing manually
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
+ selectFocusDefaultBrowser()
+ verifySwitchIsToggled(true)
+ }
+ }
+ }
+ }
+
+ fun changeLocale(languageTag: String) {
+ val context = InstrumentationRegistry.getInstrumentation().targetContext
+ val locale = Locales.parseLocaleCode(languageTag)
+ LocaleManager.setNewLocale(
+ mActivityTestRule.activity,
+ LocaleUseCases(context.components.store),
+ locale,
+ )
+ runOnUiThread { mActivityTestRule.activity.recreate() }
+ }
+
+ private fun getUiTheme(): Boolean {
+ val mode =
+ mActivityTestRule.activity.resources?.configuration?.uiMode?.and(Configuration.UI_MODE_NIGHT_MASK)
+
+ return when (mode) {
+ Configuration.UI_MODE_NIGHT_YES -> true // dark theme is set
+ Configuration.UI_MODE_NIGHT_NO -> false // dark theme is not set, using light theme
+ else -> false // default option is light theme
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsPrivacyTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsPrivacyTest.kt
new file mode 100644
index 0000000000..f313eef047
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsPrivacyTest.kt
@@ -0,0 +1,135 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.RetryTestRule
+import org.mozilla.focus.helpers.TestAssetHelper.getStorageTestAsset
+import org.mozilla.focus.helpers.TestHelper.exitToTop
+import org.mozilla.focus.helpers.TestHelper.progressBar
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+// These tests the Privacy and Security settings menus and options
+@RunWith(AndroidJUnit4ClassRunner::class)
+class SettingsPrivacyTest {
+ private val featureSettingsHelper = FeatureSettingsHelper()
+ private lateinit var webServer: MockWebServer
+
+ @get: Rule
+ var mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Rule
+ @JvmField
+ val retryTestRule = RetryTestRule(3)
+
+ @Before
+ fun setup() {
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ featureSettingsHelper.setSearchWidgetDialogEnabled(false)
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ }
+
+ @After
+ fun tearDown() {
+ featureSettingsHelper.resetAllFeatureFlags()
+ webServer.shutdown()
+ }
+
+ @SmokeTest
+ @Test
+ fun verifyCookiesAndSiteDataItemsTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ verifyCookiesAndSiteDataSection()
+ clickBlockCookies()
+ verifyBlockCookiesPrompt()
+ clickCancelBlockCookiesPrompt()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun verifyAllCookiesBlockedTest() {
+ val sameSiteCookiesUrl = getStorageTestAsset(webServer, "same-site-cookies.html").url
+ val thirdPartyCookiesUrl = getStorageTestAsset(webServer, "cross-site-cookies.html").url
+
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ clickBlockCookies()
+ clickYesPleaseOption()
+ exitToTop()
+ }
+ searchScreen {
+ }.loadPage(sameSiteCookiesUrl) {
+ progressBar.waitUntilGone(waitingTime)
+ verifyCookiesEnabled("BLOCKED")
+ }.clearBrowsingData {
+ }.openSearchBar {
+ }.loadPage(thirdPartyCookiesUrl) {
+ progressBar.waitUntilGone(waitingTime)
+ verifyCookiesEnabled("BLOCKED")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun verify3rdPartyCookiesBlockedTest() {
+ val sameSiteCookiesUrl = getStorageTestAsset(webServer, "same-site-cookies.html").url
+ val thirdPartyCookiesURL = getStorageTestAsset(webServer, "cross-site-cookies.html").url
+
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ clickBlockCookies()
+ clickBlockThirdPartyCookiesOnly()
+ }.goBackToSettings {
+ }.goBackToHomeScreen {
+ }.loadPage(thirdPartyCookiesURL) {
+ progressBar.waitUntilGone(waitingTime)
+ verifyCookiesEnabled("BLOCKED")
+ }.clearBrowsingData {
+ }.openSearchBar {
+ }.loadPage(sameSiteCookiesUrl) {
+ progressBar.waitUntilGone(waitingTime)
+ verifyCookiesEnabled("UNRESTRICTED")
+ }
+ }
+
+ @Test
+ fun verifyCrossSiteCookiesBlockedTest() {
+ val sameSiteCookiesUrl = getStorageTestAsset(webServer, "same-site-cookies.html").url
+ val crossSiteCookiesURL = getStorageTestAsset(webServer, "cross-site-cookies.html").url
+
+ searchScreen {
+ }.loadPage(crossSiteCookiesURL) {
+ progressBar.waitUntilGone(waitingTime)
+ verifyCookiesEnabled("PARTITIONED")
+ }.clearBrowsingData {
+ }.openSearchBar {
+ }.loadPage(sameSiteCookiesUrl) {
+ progressBar.waitUntilGone(waitingTime)
+ verifyCookiesEnabled("UNRESTRICTED")
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsTest.kt
new file mode 100644
index 0000000000..83e813c486
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsTest.kt
@@ -0,0 +1,85 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+// This test checks all the headings in the Settings menu are there
+@RunWith(AndroidJUnit4ClassRunner::class)
+class SettingsTest {
+ @get: Rule
+ var mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @SmokeTest
+ @Test
+ fun accessSettingsMenuTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ verifySettingsMenuItems()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun verifyGeneralSettingsMenuTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openGeneralSettingsMenu {
+ verifyGeneralSettingsItems()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun verifyPrivacySettingsMenuTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ verifyPrivacySettingsItems()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun verifySearchSettingsMenuTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openSearchSettingsMenu {
+ verifySearchSettingsItems()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun verifyAdvancedSettingsMenuTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openAdvancedSettingsMenu {
+ verifyAdvancedSettingsItems()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun verifyMozillaMenuTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openMozillaSettingsMenu {
+ verifyMozillaMenuItems()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ShortcutsTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ShortcutsTest.kt
new file mode 100644
index 0000000000..3c62d8efeb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ShortcutsTest.kt
@@ -0,0 +1,124 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+@file:Suppress("DEPRECATION")
+
+package org.mozilla.focus.activity
+
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.mozilla.focus.activity.robots.browserScreen
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.TestAssetHelper
+import org.mozilla.focus.helpers.TestAssetHelper.getGenericAsset
+import org.mozilla.focus.testAnnotations.SmokeTest
+import java.io.IOException
+
+class ShortcutsTest {
+ private lateinit var webServer: MockWebServer
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ var mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Before
+ fun setUp() {
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ featureSettingsHelper.setSearchWidgetDialogEnabled(false)
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ }
+
+ @After
+ fun tearDown() {
+ try {
+ webServer.shutdown()
+ } catch (e: IOException) {
+ throw AssertionError("Could not stop web server", e)
+ }
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun renameShortcutTest() {
+ val webPage = object {
+ val url = getGenericAsset(webServer).url
+ val title = getGenericAsset(webServer).title
+ val content = getGenericAsset(webServer).content
+ val newTitle = "TestShortcut"
+ }
+
+ searchScreen {
+ }.loadPage(webPage.url) {
+ verifyPageContent(webPage.content)
+ }.openMainMenu {
+ clickAddToShortcuts()
+ }
+ browserScreen {
+ }.clearBrowsingData {
+ verifyPageShortcutExists(webPage.title)
+ longTapPageShortcut(webPage.title)
+ clickRenameShortcut()
+ renameShortcutAndSave(webPage.newTitle)
+ verifyPageShortcutExists(webPage.newTitle)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun shortcutsDoNotOpenInNewTabTest() {
+ val tab1 = TestAssetHelper.getGenericTabAsset(webServer, 1)
+ val tab2 = TestAssetHelper.getGenericTabAsset(webServer, 2)
+
+ searchScreen {
+ }.loadPage(tab1.url) {
+ }.openMainMenu {
+ clickAddToShortcuts()
+ }
+ browserScreen {
+ }.clearBrowsingData {
+ verifyPageShortcutExists(tab1.title)
+ }
+
+ searchScreen {
+ }.loadPage(tab2.url) {
+ }.openSearchBar {
+ }
+
+ homeScreen {
+ }.clickPageShortcut(tab1.title) {
+ verifyTabsCounterNotShown()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun searchBarShowsPageShortcutsTest() {
+ val webPage = getGenericAsset(webServer)
+
+ searchScreen {
+ }.loadPage(webPage.url) {
+ verifyPageContent(webPage.content)
+ }.openMainMenu {
+ clickAddToShortcuts()
+ }
+ browserScreen {
+ }.clearBrowsingData {
+ verifyPageShortcutExists(webPage.title)
+ }.clickPageShortcut(webPage.title) {
+ }.openSearchBar {
+ verifySearchSuggestionsContain(webPage.title)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SitePermissionsTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SitePermissionsTest.kt
new file mode 100644
index 0000000000..acbbeedbe4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SitePermissionsTest.kt
@@ -0,0 +1,272 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity
+
+import android.Manifest
+import android.content.Context
+import android.hardware.camera2.CameraManager
+import androidx.test.rule.GrantPermissionRule
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Assume
+import org.junit.Before
+import org.junit.Ignore
+import org.junit.Rule
+import org.junit.Test
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockLocationUpdatesRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.TestAssetHelper.getGenericAsset
+import org.mozilla.focus.helpers.TestAssetHelper.getMediaTestAsset
+import org.mozilla.focus.helpers.TestHelper.exitToTop
+import org.mozilla.focus.helpers.TestHelper.getTargetContext
+import org.mozilla.focus.helpers.TestHelper.grantAppPermission
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+class SitePermissionsTest {
+ private lateinit var webServer: MockWebServer
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ /* Test page created and handled by the Mozilla mobile test-eng team */
+ private val permissionsPage = "https://mozilla-mobile.github.io/testapp/permissions"
+ private val testPageSubstring = "https://mozilla-mobile.github.io:443"
+ private val cameraManager = getTargetContext.getSystemService(Context.CAMERA_SERVICE) as CameraManager
+
+ @get: Rule
+ val mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @get:Rule
+ val grantPermissionRule: GrantPermissionRule = GrantPermissionRule.grant(
+ Manifest.permission.ACCESS_COARSE_LOCATION,
+ )
+
+ @get: Rule
+ val mockLocationUpdatesRule = MockLocationUpdatesRule()
+
+ @Before
+ fun setUp() {
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ featureSettingsHelper.setSearchWidgetDialogEnabled(false)
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ }
+
+ @After
+ fun tearDown() {
+ webServer.shutdown()
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @Test
+ fun sitePermissionsSettingsItemsTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ }.clickSitePermissionsSettings {
+ verifySitePermissionsItems()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun autoplayPermissionsSettingsItemsTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ }.clickSitePermissionsSettings {
+ openAutoPlaySettings()
+ verifyAutoplaySection()
+ }
+ }
+
+ // Tests the default autoplay setting: Block audio only on a video with autoplay attribute and not muted
+ @SmokeTest
+ @Test
+ fun blockAudioAutoplayPermissionTest() {
+ val videoPage = getMediaTestAsset(webServer, "videoPage")
+
+ searchScreen {
+ }.loadPage(videoPage.url) {
+ progressBar.waitUntilGone(waitingTime)
+ // an un-muted video won't be able to autoplay with this setting, so we have to press play
+ clickPlayButton()
+ waitForPlaybackToStart()
+ }
+ }
+
+ // Tests the default autoplay setting: Block audio only on a video with autoplay and muted attributes
+ @SmokeTest
+ @Test
+ fun blockAudioAutoplayPermissionOnMutedVideoTest() {
+ val mutedVideoPage = getMediaTestAsset(webServer, "mutedVideoPage")
+
+ searchScreen {
+ }.loadPage(mutedVideoPage.url) {
+ // a muted video will autoplay with this setting
+ waitForPlaybackToStart()
+ }
+ }
+
+ // Tests the autoplay setting: Allow audio and video on a video with autoplay attribute and not muted
+ @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1830312")
+ @SmokeTest
+ @Test
+ fun allowAudioVideoAutoplayPermissionTest() {
+ val videoPage = getMediaTestAsset(webServer, "videoPage")
+
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ }.clickSitePermissionsSettings {
+ openAutoPlaySettings()
+ selectAllowAudioVideoAutoplay()
+ exitToTop()
+ }
+ searchScreen {
+ }.loadPage(videoPage.url) {
+ waitForPlaybackToStart()
+ }
+ }
+
+ // Tests the autoplay setting: Allow audio and video on a video with autoplay and muted attributes
+ @SmokeTest
+ @Test
+ fun allowAudioVideoAutoplayPermissionOnMutedVideoTest() {
+ val genericPage = getGenericAsset(webServer)
+ val mutedVideoPage = getMediaTestAsset(webServer, "mutedVideoPage")
+
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ }.clickSitePermissionsSettings {
+ openAutoPlaySettings()
+ selectAllowAudioVideoAutoplay()
+ exitToTop()
+ }
+ searchScreen {
+ }.loadPage(genericPage.url) {
+ }.clearBrowsingData {}
+ searchScreen {
+ }.loadPage(mutedVideoPage.url) {
+ waitForPlaybackToStart()
+ }
+ }
+
+ // Tests the autoplay setting: Block audio and video
+ @SmokeTest
+ @Test
+ fun blockAudioVideoAutoplayPermissionTest() {
+ val videoPage = getMediaTestAsset(webServer, "videoPage")
+
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ }.clickSitePermissionsSettings {
+ openAutoPlaySettings()
+ selectBlockAudioVideoAutoplay()
+ exitToTop()
+ }
+ searchScreen {
+ }.loadPage(videoPage.url) {
+ clickPlayButton()
+ waitForPlaybackToStart()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun cameraPermissionsSettingsItemsTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ }.clickSitePermissionsSettings {
+ openCameraPermissionsSettings()
+ verifyPermissionsStateSettings()
+ verifyAskToAllowChecked()
+ verifyBlockedByAndroidState()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun locationPermissionsSettingsItemsTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openPrivacySettingsMenu {
+ }.clickSitePermissionsSettings {
+ openLocationPermissionsSettings()
+ verifyPermissionsStateSettings()
+ verifyAskToAllowChecked()
+ verifyBlockedByAndroidState()
+ }
+ }
+
+ @Test
+ fun testLocationSharingNotAllowed() {
+ searchScreen {
+ }.loadPage(permissionsPage) {
+ clickGetLocationButton()
+ verifyLocationPermissionPrompt(testPageSubstring)
+ denySitePermissionRequest()
+ verifyPageContent("User denied geolocation prompt")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun testLocationSharingAllowed() {
+ mockLocationUpdatesRule.setMockLocation()
+
+ searchScreen {
+ }.loadPage(permissionsPage) {
+ clickGetLocationButton()
+ verifyLocationPermissionPrompt(testPageSubstring)
+ allowSitePermissionRequest()
+ verifyPageContent("${mockLocationUpdatesRule.latitude}")
+ verifyPageContent("${mockLocationUpdatesRule.longitude}")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun allowCameraPermissionsTest() {
+ Assume.assumeTrue(cameraManager.cameraIdList.isNotEmpty())
+ searchScreen {
+ }.loadPage(permissionsPage) {
+ clickGetCameraButton()
+ grantAppPermission()
+ verifyCameraPermissionPrompt(testPageSubstring)
+ allowSitePermissionRequest()
+ verifyPageContent("Camera allowed")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun denyCameraPermissionsTest() {
+ Assume.assumeTrue(cameraManager.cameraIdList.isNotEmpty())
+ searchScreen {
+ }.loadPage(permissionsPage) {
+ clickGetCameraButton()
+ grantAppPermission()
+ verifyCameraPermissionPrompt(testPageSubstring)
+ denySitePermissionRequest()
+ verifyPageContent("Camera not allowed")
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SwitchContextTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SwitchContextTest.kt
new file mode 100644
index 0000000000..8e8c9d71bb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SwitchContextTest.kt
@@ -0,0 +1,132 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.By
+import androidx.test.uiautomator.UiSelector
+import androidx.test.uiautomator.Until
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Assert
+import org.junit.Assert.assertTrue
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.robots.notificationTray
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.TestAssetHelper
+import org.mozilla.focus.helpers.TestHelper.getStringResource
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.pressHomeKey
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.testAnnotations.SmokeTest
+import java.io.IOException
+
+// This test switches out of Focus and opens it from the private browsing notification
+@RunWith(AndroidJUnit4ClassRunner::class)
+class SwitchContextTest {
+ private lateinit var webServer: MockWebServer
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ var mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Before
+ fun setUp() {
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+
+ notificationTray {
+ mDevice.openNotification()
+ clearNotifications()
+ }
+ }
+
+ @After
+ fun tearDown() {
+ try {
+ webServer.shutdown()
+ } catch (e: IOException) {
+ throw AssertionError("Could not stop web server", e)
+ }
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun notificationOpenButtonTest() {
+ val testPage = TestAssetHelper.getGenericAsset(webServer)
+
+ searchScreen {
+ }.loadPage(testPage.url) {
+ verifyPageContent(testPage.content)
+ }
+ // Send app to background
+ pressHomeKey()
+ // Pull down system bar and select Open
+ mDevice.openNotification()
+ notificationTray {
+ verifySystemNotificationExists(getStringResource(R.string.notification_erase_text))
+ expandEraseBrowsingNotification()
+ }.clickNotificationOpenButton {
+ verifyBrowserView()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun switchFromSettingsToFocusTest() {
+ // Initialize UiDevice instance
+ val LAUNCH_TIMEOUT = 5000
+ val SETTINGS_APP = "com.android.settings"
+ val settingsApp = mDevice.findObject(
+ UiSelector()
+ .packageName(SETTINGS_APP)
+ .enabled(true),
+ )
+ val launcherPackage = mDevice.launcherPackageName
+ val context = InstrumentationRegistry.getInstrumentation().targetContext.applicationContext
+ val intent = context.packageManager
+ .getLaunchIntentForPackage(SETTINGS_APP)
+ val testPage = TestAssetHelper.getGenericAsset(webServer)
+
+ // Open a webpage
+ searchScreen {
+ }.loadPage(testPage.url) { }
+
+ // Switch out of Focus, open settings app
+ pressHomeKey()
+
+ // Wait for launcher
+ Assert.assertNotNull(launcherPackage)
+ mDevice.wait(
+ Until.hasObject(By.pkg(launcherPackage).depth(0)),
+ LAUNCH_TIMEOUT.toLong(),
+ )
+
+ // Launch the app
+ context.startActivity(intent)
+ settingsApp.waitForExists(waitingTime)
+ assertTrue(settingsApp.exists())
+
+ // switch to Focus
+ mDevice.openNotification()
+ notificationTray {
+ verifySystemNotificationExists(getStringResource(R.string.notification_erase_text))
+ expandEraseBrowsingNotification()
+ }.clickNotificationOpenButton {
+ verifyBrowserView()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ThreeDotMainMenuTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ThreeDotMainMenuTest.kt
new file mode 100644
index 0000000000..d622fb5c9f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ThreeDotMainMenuTest.kt
@@ -0,0 +1,137 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.RetryTestRule
+import org.mozilla.focus.helpers.TestAssetHelper
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+/**
+ * Verifies main menu items on the homescreen and on a browser page.
+ */
+class ThreeDotMainMenuTest {
+ private lateinit var webServer: MockWebServer
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ val mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Rule
+ @JvmField
+ val retryTestRule = RetryTestRule(3)
+
+ @Before
+ fun startWebServer() {
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ }
+
+ @After
+ fun tearDown() {
+ webServer.shutdown()
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun homeScreenMenuItemsTest() {
+ homeScreen {
+ }.openMainMenu {
+ verifyHelpPageLinkExists()
+ verifySettingsButtonExists()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun browserMenuItemsTest() {
+ val pageUrl = TestAssetHelper.getGenericTabAsset(webServer, 1).url
+
+ searchScreen {
+ }.loadPage(pageUrl) {
+ verifyPageContent("Tab 1")
+ }.openMainMenu {
+ verifyShareButtonExists()
+ verifyAddToHomeButtonExists()
+ verifyFindInPageExists()
+ verifyOpenInButtonExists()
+ verifyRequestDesktopSiteExists()
+ verifySettingsButtonExists()
+ verifyReportSiteIssueButtonExists()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun shareTabTest() {
+ val pageUrl = TestAssetHelper.getGenericTabAsset(webServer, 1).url
+
+ searchScreen {
+ }.loadPage(pageUrl) {
+ progressBar.waitUntilGone(waitingTime)
+ }.openMainMenu {
+ }.openShareScreen {
+ verifyShareAppsListOpened()
+ mDevice.pressBack()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun findInPageTest() {
+ val pageUrl = TestAssetHelper.getGenericTabAsset(webServer, 1).url
+
+ searchScreen {
+ }.loadPage(pageUrl) {
+ progressBar.waitUntilGone(waitingTime)
+ }.openMainMenu {
+ }.openFindInPage {
+ enterFindInPageQuery("tab")
+ verifyFindNextInPageResult("1/3")
+ verifyFindNextInPageResult("2/3")
+ verifyFindNextInPageResult("3/3")
+ verifyFindPrevInPageResult("1/3")
+ verifyFindPrevInPageResult("3/3")
+ verifyFindPrevInPageResult("2/3")
+ closeFindInPage()
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun switchDesktopModeTest() {
+ val pageUrl = TestAssetHelper.getGenericTabAsset(webServer, 1).url
+
+ searchScreen {
+ }.loadPage(pageUrl) {
+ progressBar.waitUntilGone(waitingTime)
+ verifyPageContent("mobile-site")
+ }.openMainMenu {
+ }.switchDesktopSiteMode {
+ progressBar.waitUntilGone(waitingTime)
+ verifyPageContent("desktop-site")
+ }.openMainMenu {
+ verifyRequestDesktopSiteIsEnabled(true)
+ }.switchDesktopSiteMode {
+ verifyPageContent("mobile-site")
+ }.openMainMenu {
+ verifyRequestDesktopSiteIsEnabled(false)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/URLAutocompleteTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/URLAutocompleteTest.kt
new file mode 100644
index 0000000000..4ccec3b0de
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/URLAutocompleteTest.kt
@@ -0,0 +1,147 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.TestHelper.exitToTop
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+// Tests url autocompletion and adding custom autocomplete urls
+@RunWith(AndroidJUnit4ClassRunner::class)
+class URLAutocompleteTest {
+ private val searchTerm = "mozilla"
+ private val autocompleteSuggestion = "mozilla.org"
+ private val pageUrl = "https://www.mozilla.org/"
+ private val customURL = "680news.com"
+
+ @get: Rule
+ var mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ // Test the url autocomplete feature with default settings
+ @SmokeTest
+ @Test
+ fun defaultAutoCompleteURLTest() {
+ searchScreen {
+ // type a partial url, and check it autocompletes
+ typeInSearchBar(searchTerm)
+ verifySearchEditBarContainsText(autocompleteSuggestion)
+ clearSearchBar()
+ // type a full url, and check it does not autocomplete
+ typeInSearchBar(pageUrl)
+ verifySearchEditBarContainsText(pageUrl)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun disableTopSitesAutocompleteTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openSearchSettingsMenu {
+ openUrlAutocompleteSubMenu()
+ toggleTopSitesAutocomplete()
+ exitToTop()
+ }
+
+ searchScreen {
+ typeInSearchBar(searchTerm)
+ verifySearchEditBarContainsText(searchTerm)
+ }
+ }
+
+ // Add custom Url, verify it works, then remove it and check it is no longer autocompleted
+ @Test
+ fun customUrlAutoCompletionTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openSearchSettingsMenu {
+ // Add custom autocomplete url
+ openUrlAutocompleteSubMenu()
+ openManageSitesSubMenu()
+ openAddCustomUrlDialog()
+ enterCustomUrl(customURL)
+ saveCustomUrl()
+ verifySavedCustomURL(customURL)
+ exitToTop()
+ }
+ // verify the custom url auto-completes
+ searchScreen {
+ typeInSearchBar(customURL.substring(0, 1))
+ verifySearchEditBarContainsText(customURL)
+ clearSearchBar()
+ }
+
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openSearchSettingsMenu {
+ // remove custom Url
+ openUrlAutocompleteSubMenu()
+ openManageSitesSubMenu()
+ removeCustomUrl()
+ exitToTop()
+ }
+ // verify it is no longer auto-completed
+ searchScreen {
+ typeInSearchBar(customURL.substring(0, 3))
+ verifySearchEditBarContainsText(customURL.substring(0, 3))
+ clearSearchBar()
+ }
+ }
+
+ // Add custom autocompletion site, then disable autocomplete
+ @Test
+ fun disableAutocompleteForCustomSiteTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openSearchSettingsMenu {
+ openUrlAutocompleteSubMenu()
+ openManageSitesSubMenu()
+ openAddCustomUrlDialog()
+ enterCustomUrl(customURL)
+ saveCustomUrl()
+ verifySavedCustomURL(customURL)
+ mDevice.pressBack()
+ toggleCustomAutocomplete()
+ exitToTop()
+ }
+
+ searchScreen {
+ typeInSearchBar(customURL.substring(0, 3))
+ verifySearchEditBarContainsText(customURL.substring(0, 3))
+ clearSearchBar()
+ }
+ }
+
+ // Verifies the custom Url can't be added twice
+ @Test
+ fun duplicateCustomUrlNotAllowedTest() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ }.openSearchSettingsMenu {
+ openUrlAutocompleteSubMenu()
+ openManageSitesSubMenu()
+ openAddCustomUrlDialog()
+ enterCustomUrl(customURL)
+ saveCustomUrl()
+ verifySavedCustomURL(customURL)
+ openAddCustomUrlDialog()
+ enterCustomUrl(customURL)
+ saveCustomUrl()
+ verifyCustomUrlDialogNotClosed()
+ exitToTop()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/WebControlsTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/WebControlsTest.kt
new file mode 100644
index 0000000000..84a3e68755
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/WebControlsTest.kt
@@ -0,0 +1,174 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Ignore
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityIntentsTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.RetryTestRule
+import org.mozilla.focus.helpers.StringsHelper.GMAIL_APP
+import org.mozilla.focus.helpers.StringsHelper.PHONE_APP
+import org.mozilla.focus.helpers.TestAssetHelper
+import org.mozilla.focus.helpers.TestHelper.assertNativeAppOpens
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.testAnnotations.SmokeTest
+
+// These tests check that various web controls work properly
+@RunWith(AndroidJUnit4ClassRunner::class)
+class WebControlsTest {
+ private lateinit var webServer: MockWebServer
+
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ var mActivityTestRule = MainActivityIntentsTestRule(showFirstRun = false)
+
+ @Rule
+ @JvmField
+ val retryTestRule = RetryTestRule(3)
+
+ @Before
+ fun setup() {
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ featureSettingsHelper.setSearchWidgetDialogEnabled(false)
+ }
+
+ @After
+ fun tearDown() {
+ webServer.shutdown()
+ featureSettingsHelper.resetAllFeatureFlags()
+ }
+
+ @SmokeTest
+ @Test
+ fun verifyTextInputTest() {
+ val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url
+
+ searchScreen {
+ }.loadPage(htmlControlsPage) {
+ progressBar.waitUntilGone(waitingTime)
+ clickAndWriteTextInInputBox("wiki")
+ clickSubmitTextInputButton()
+ verifyPageContent("You entered: wiki")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun verifyDropdownMenuTest() {
+ val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url
+
+ searchScreen {
+ }.loadPage(htmlControlsPage) {
+ progressBar.waitUntilGone(waitingTime)
+ clickDropDownForm()
+ selectDropDownOption("The National")
+ clickSubmitDropDownButton()
+ verifySelectedDropDownOption("The National")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun verifyExternalLinksTest() {
+ val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url
+
+ searchScreen {
+ }.loadPage(htmlControlsPage) {
+ progressBar.waitUntilGone(waitingTime)
+ clickLinkMatchingText("External link")
+ progressBar.waitUntilGone(waitingTime)
+ verifyPageURL("DuckDuckGo")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun emailLinkTest() {
+ val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url
+
+ searchScreen {
+ }.loadPage(htmlControlsPage) {
+ clickLinkMatchingText("Email link")
+ clickOpenLinksInAppsOpenButton()
+ assertNativeAppOpens(GMAIL_APP)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun telephoneLinkTest() {
+ val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url
+
+ searchScreen {
+ }.loadPage(htmlControlsPage) {
+ clickLinkMatchingText("Telephone link")
+ clickOpenLinksInAppsOpenButton()
+ assertNativeAppOpens(PHONE_APP)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun verifyDismissTextSelectionToolbarTest() {
+ val tab1Url = TestAssetHelper.getGenericTabAsset(webServer, 1).url
+ val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url
+
+ searchScreen {
+ }.loadPage(tab1Url) {
+ progressBar.waitUntilGone(waitingTime)
+ }.openSearchBar {
+ }.loadPage(htmlControlsPage) {
+ progressBar.waitUntilGone(waitingTime)
+ longClickText("Copy")
+ }.goToPreviousPage {
+ verifyCopyOptionDoesNotExist()
+ }
+ }
+
+ @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1841006")
+ @SmokeTest
+ @Test
+ fun verifySelectTextTest() {
+ val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url
+
+ searchScreen {
+ }.loadPage(htmlControlsPage) {
+ progressBar.waitUntilGone(waitingTime)
+ longClickAndCopyText("Copy")
+ clickAndPasteTextInInputBox()
+ clickSubmitTextInputButton()
+ verifyPageContent("You entered: Copy")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun verifyCalendarFormTest() {
+ val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url
+
+ searchScreen {
+ }.loadPage(htmlControlsPage) {
+ progressBar.waitUntilGone(waitingTime)
+ clickCalendarForm()
+ selectDate()
+ clickButtonWithText("OK")
+ clickSubmitDateButton()
+ verifySelectedDate()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/AddToHomeScreenRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/AddToHomeScreenRobot.kt
new file mode 100644
index 0000000000..d1e9ec7c8f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/AddToHomeScreenRobot.kt
@@ -0,0 +1,71 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity.robots
+
+import androidx.test.uiautomator.UiScrollable
+import androidx.test.uiautomator.UiSelector
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.packageName
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+
+class AddToHomeScreenRobot {
+
+ fun handleAddAutomaticallyDialog() {
+ if (addAutomaticallyBtn.waitForExists(waitingTime)) {
+ addAutomaticallyBtn.click()
+ addAutomaticallyBtn.waitUntilGone(waitingTime)
+ }
+ }
+
+ fun addShortcutWithTitle(title: String) {
+ shortcutTitle.waitForExists(waitingTime)
+ shortcutTitle.clearTextField()
+ shortcutTitle.setText(title)
+ addToHSOKBtn.click()
+ }
+
+ fun addShortcutNoTitle() {
+ shortcutTitle.waitForExists(waitingTime)
+ shortcutTitle.clearTextField()
+ addToHSOKBtn.click()
+ }
+
+ class Transition {
+ // Searches a page shortcut on the device homescreen
+ fun searchAndOpenHomeScreenShortcut(title: String, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ mDevice.waitForIdle(waitingTime)
+ mDevice.pressHome()
+
+ fun deviceHomeScreen() = UiScrollable(UiSelector().scrollable(true))
+ deviceHomeScreen().setAsHorizontalList()
+
+ fun shortcut() =
+ deviceHomeScreen()
+ .getChildByText(UiSelector().text(title), title, true)
+ shortcut().waitForExists(waitingTime)
+ shortcut().clickAndWaitForNewWindow()
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+ }
+}
+
+private val addToHSOKBtn = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/addtohomescreen_dialog_add")
+ .enabled(true),
+)
+
+private val addAutomaticallyBtn = mDevice.findObject(
+ UiSelector()
+ .className("android.widget.Button")
+ .textContains("Add automatically"),
+)
+
+private val shortcutTitle = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/edit_title"),
+)
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/BrowserRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/BrowserRobot.kt
new file mode 100644
index 0000000000..a817a5642a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/BrowserRobot.kt
@@ -0,0 +1,694 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity.robots
+
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.IdlingRegistry
+import androidx.test.espresso.IdlingResource
+import androidx.test.espresso.ViewInteraction
+import androidx.test.espresso.action.ViewActions
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.RootMatchers
+import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
+import androidx.test.espresso.matcher.ViewMatchers.withContentDescription
+import androidx.test.espresso.matcher.ViewMatchers.withId
+import androidx.test.espresso.matcher.ViewMatchers.withText
+import androidx.test.uiautomator.By
+import androidx.test.uiautomator.UiObject
+import androidx.test.uiautomator.UiObjectNotFoundException
+import androidx.test.uiautomator.UiSelector
+import androidx.test.uiautomator.Until
+import org.hamcrest.Matchers.not
+import org.junit.Assert.assertFalse
+import org.junit.Assert.assertTrue
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.Constants.RETRY_COUNT
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.packageName
+import org.mozilla.focus.helpers.TestHelper.pageLoadingTime
+import org.mozilla.focus.helpers.TestHelper.progressBar
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.helpers.TestHelper.waitingTimeShort
+import org.mozilla.focus.idlingResources.SessionLoadedIdlingResource
+import java.time.LocalDate
+
+class BrowserRobot {
+
+ private lateinit var sessionLoadedIdlingResource: SessionLoadedIdlingResource
+
+ val progressBar =
+ mDevice.findObject(
+ UiSelector().resourceId("$packageName:id/progress"),
+ )
+
+ fun verifyBrowserView() =
+ assertTrue(
+ mDevice.findObject(UiSelector().resourceId("$packageName:id/engineView"))
+ .waitForExists(waitingTime),
+ )
+
+ fun verifyPageContent(expectedText: String) {
+ sessionLoadedIdlingResource = SessionLoadedIdlingResource()
+
+ runWithIdleRes(sessionLoadedIdlingResource) {
+ for (i in 1..RETRY_COUNT) {
+ try {
+ assertTrue(
+ webPageItemContainingText(expectedText).waitForExists(pageLoadingTime),
+ )
+ break
+ } catch (e: AssertionError) {
+ if (i == RETRY_COUNT) {
+ throw e
+ } else {
+ refreshPageIfStillLoading(expectedText)
+ }
+ }
+ }
+ }
+ }
+
+ fun verifyTrackingProtectionAlert(expectedText: String) {
+ // Because of https://bugzilla.mozilla.org/show_bug.cgi?id=1794130,
+ // ETP has delays so we need to refresh the page multiple times until ETP starts working.
+ for (i in 1..RETRY_COUNT) {
+ try {
+ assertTrue(
+ webPageItemContainingText(expectedText)
+ .waitForExists(pageLoadingTime),
+ )
+ // close the JavaScript alert
+ mDevice.pressBack()
+ break
+ } catch (e: AssertionError) {
+ if (i == RETRY_COUNT) {
+ throw e
+ } else {
+ refreshPageIfStillLoading(expectedText)
+ }
+ }
+ }
+ }
+
+ fun refreshPageIfStillLoading(pageContent: String) {
+ browserScreen {
+ }.openMainMenu {
+ when (mDevice.findObject(UiSelector().description("Reload website")).exists()) {
+ true -> ThreeDotMainMenuRobot.Transition().clickReloadButton {}
+ false -> {
+ ThreeDotMainMenuRobot.Transition().clickStopLoadingButton {
+ if (!mDevice.findObject(UiSelector().textContains(pageContent))
+ .waitForExists(waitingTime)
+ ) {
+ browserScreen {
+ }.openMainMenu {
+ }.clickReloadButton {}
+ }
+ }
+ }
+ }
+ }
+ }
+
+ fun verifyPageURL(expectedText: String) {
+ browserURLbar.waitForExists(waitingTime)
+ sessionLoadedIdlingResource = SessionLoadedIdlingResource()
+
+ runWithIdleRes(sessionLoadedIdlingResource) {
+ assertTrue(
+ mDevice.findObject(UiSelector().textContains(expectedText))
+ .waitForExists(waitingTime),
+ )
+ }
+ }
+
+ fun clickGetLocationButton() = clickPageObject(webPageItemContainingText("Get Location"))
+
+ fun clickGetCameraButton() = clickPageObject(webPageItemContainingText("Open camera"))
+
+ fun verifyCameraPermissionPrompt(url: String) {
+ assertTrue(
+ mDevice.findObject(UiSelector().text("Allow $url to use your camera?"))
+ .waitForExists(waitingTime),
+ )
+ }
+
+ fun verifyLocationPermissionPrompt(url: String) {
+ assertTrue(
+ mDevice.findObject(UiSelector().text("Allow $url to use your location?"))
+ .waitForExists(waitingTime),
+ )
+ }
+
+ fun allowSitePermissionRequest() {
+ if (permissionAllowBtn.waitForExists(waitingTime)) {
+ permissionAllowBtn.click()
+ }
+ }
+
+ fun denySitePermissionRequest() {
+ if (permissionDenyBtn.waitForExists(waitingTime)) {
+ permissionDenyBtn.click()
+ }
+ }
+
+ fun longPressLink(linkText: String) = longClickPageObject(webPageItemWithText(linkText))
+
+ fun openLinkInNewTab() {
+ mDevice.findObject(
+ UiSelector().textContains("Open link in private tab"),
+ ).waitForExists(waitingTime)
+ openLinkInPrivateTab.perform(click())
+ }
+
+ fun verifyNumberOfTabsOpened(tabsCount: Int) {
+ assertTrue(
+ mDevice.findObject(
+ UiSelector().description("$tabsCount open tabs. Tap to switch tabs."),
+ ).waitForExists(waitingTime),
+ )
+ }
+
+ fun verifyTabsCounterNotShown() {
+ assertFalse(
+ mDevice.findObject(UiSelector().resourceId("$packageName:id/counter_root"))
+ .waitForExists(waitingTimeShort),
+ )
+ }
+
+ fun verifyShareAppsListOpened() =
+ assertTrue(shareAppsList.waitForExists(waitingTime))
+
+ fun clickPlayButton() = clickPageObject(webPageItemWithText("Play"))
+
+ fun clickPauseButton() = clickPageObject(webPageItemWithText("Pause"))
+
+ fun waitForPlaybackToStart() {
+ for (i in 1..RETRY_COUNT) {
+ try {
+ assertTrue(webPageItemWithText("Media file is playing").waitForExists(pageLoadingTime))
+ break
+ } catch (e: AssertionError) {
+ if (i == RETRY_COUNT) {
+ throw e
+ } else {
+ clickPlayButton()
+ }
+ }
+ }
+
+ // dismiss the js alert
+ mDevice.findObject(UiSelector().textContains("ok")).click()
+ }
+
+ fun verifyPlaybackStopped() {
+ assertTrue(webPageItemWithText("Media file is paused").waitForExists(waitingTime))
+ // dismiss the js alert
+ mDevice.findObject(UiSelector().textContains("ok")).click()
+ }
+
+ fun verifySiteTrackingProtectionIconShown() = assertTrue(securityIcon.waitForExists(waitingTime))
+
+ fun verifySiteSecurityIndicatorShown() = assertTrue(site_security_indicator.waitForExists(waitingTime))
+
+ fun verifyLinkContextMenu(linkAddress: String) {
+ assertTrue(
+ mDevice.findObject(
+ UiSelector().resourceId("$packageName:id/parentPanel"),
+ ).waitForExists(waitingTime),
+ )
+ onView(withId(R.id.titleView)).check(matches(withText(linkAddress)))
+ openLinkInPrivateTab.check(matches(isDisplayed()))
+ copyLink.check(matches(isDisplayed()))
+ shareLink.check(matches(isDisplayed()))
+ }
+
+ fun verifyImageContextMenu(hasLink: Boolean, linkAddress: String) {
+ assertTrue(
+ mDevice.findObject(
+ UiSelector().resourceId("$packageName:id/parentPanel"),
+ ).waitForExists(waitingTime),
+ )
+ onView(withId(R.id.titleView)).check(matches(withText(linkAddress)))
+ if (hasLink) {
+ openLinkInPrivateTab.check(matches(isDisplayed()))
+ downloadLink.check(matches(isDisplayed()))
+ }
+ copyLink.check(matches(isDisplayed()))
+ shareLink.check(matches(isDisplayed()))
+ shareImage.check(matches(isDisplayed()))
+ openImageInNewTab.check(matches(isDisplayed()))
+ saveImage.check(matches(isDisplayed()))
+ copyImageLocation.check(matches(isDisplayed()))
+ }
+
+ fun clickContextMenuCopyLink(): ViewInteraction = copyLink.perform(click())
+
+ fun clickShareImage() =
+ shareImage.inRoot(RootMatchers.isDialog()).check(matches(isDisplayed())).perform(click())
+
+ fun clickShareLink(): ViewInteraction = shareLink.perform(click())
+
+ fun clickCopyImageLocation(): ViewInteraction = copyImageLocation.perform(click())
+
+ fun clickLinkMatchingText(expectedText: String) = clickPageObject(webPageItemContainingText(expectedText))
+
+ fun verifyOpenLinksInAppsPrompt(openLinksInAppsEnabled: Boolean, link: String) = assertOpenLinksInAppsPrompt(openLinksInAppsEnabled, link)
+
+ fun clickOpenLinksInAppsCancelButton() {
+ for (i in 1..RETRY_COUNT) {
+ try {
+ openLinksInAppsCancelButton.click()
+ assertTrue(openLinksInAppsMessage.waitUntilGone(waitingTime))
+
+ break
+ } catch (e: AssertionError) {
+ if (i == RETRY_COUNT) {
+ throw e
+ }
+ }
+ }
+ }
+
+ fun clickOpenLinksInAppsOpenButton() = openLinksInAppsOpenButton.click()
+
+ fun clickDropDownForm() = clickPageObject(webPageItemWithResourceId("dropDown"))
+
+ fun clickCalendarForm() = clickPageObject(webPageItemWithResourceId("calendar"))
+
+ fun selectDate() {
+ mDevice.findObject(UiSelector().resourceId("android:id/month_view")).waitForExists(waitingTime)
+
+ mDevice.findObject(
+ UiSelector()
+ .textContains("$currentDay")
+ .descriptionContains("$currentDay $currentMonth $currentYear"),
+ ).click()
+ }
+
+ fun clickButtonWithText(button: String) = mDevice.findObject(UiSelector().textContains(button)).click()
+
+ fun clickSubmitDateButton() = clickPageObject(webPageItemWithResourceId("submitDate"))
+
+ fun verifySelectedDate() {
+ mDevice.findObject(
+ UiSelector()
+ .textContains("Submit date")
+ .resourceId("submitDate"),
+ ).waitForExists(waitingTime)
+
+ assertTrue(
+ mDevice.findObject(
+ UiSelector()
+ .text("Selected date is: $currentDate"),
+ ).waitForExists(waitingTime),
+ )
+ }
+
+ fun clickAndWriteTextInInputBox(text: String) {
+ clickPageObject(webPageItemWithResourceId("textInput"))
+ setPageObjectText(webPageItemWithResourceId("textInput"), text)
+ }
+
+ fun longPressTextInputBox() = longClickPageObject(webPageItemWithResourceId("textInput"))
+
+ fun longClickText(expectedText: String) = longClickPageObject(webPageItemContainingText(expectedText))
+
+ fun longClickAndCopyText(expectedText: String) {
+ var currentTries = 0
+ while (currentTries++ < 3) {
+ try {
+ longClickPageObject(webPageItemContainingText(expectedText))
+
+ webPageItemContainingText("Copy").waitForExists(waitingTime)
+ mDevice.findObject(By.textContains("Copy")).click()
+
+ break
+ } catch (e: NullPointerException) {
+ browserScreen {
+ }.openMainMenu {
+ }.clickReloadButton {}
+ }
+ }
+ }
+
+ fun verifyCopyOptionDoesNotExist() =
+ assertFalse(mDevice.findObject(UiSelector().textContains("Copy")).waitForExists(waitingTime))
+
+ fun clickAndPasteTextInInputBox() {
+ var currentTries = 0
+ while (currentTries++ < 3) {
+ try {
+ mDevice.findObject(UiSelector().textContains("Paste")).waitForExists(waitingTime)
+ mDevice.findObject(By.textContains("Paste")).click()
+ break
+ } catch (e: NullPointerException) {
+ longPressTextInputBox()
+ }
+ }
+ }
+
+ fun clickSubmitTextInputButton() = clickPageObject(webPageItemWithResourceId("submitInput"))
+
+ fun selectDropDownOption(optionName: String) {
+ mDevice.findObject(
+ UiSelector().resourceId("$packageName:id/customPanel"),
+ ).waitForExists(waitingTime)
+ mDevice.findObject(UiSelector().textContains(optionName)).click()
+ }
+
+ fun clickSubmitDropDownButton() = clickPageObject(webPageItemWithResourceId("submitOption"))
+
+ fun verifySelectedDropDownOption(optionName: String) {
+ mDevice.findObject(
+ UiSelector()
+ .textContains("Submit drop down option")
+ .resourceId("submitOption"),
+ ).waitForExists(waitingTime)
+
+ assertTrue(
+ mDevice.findObject(
+ UiSelector()
+ .text("Selected option is: $optionName"),
+ ).waitForExists(waitingTime),
+ )
+ }
+
+ fun enterFindInPageQuery(expectedText: String) {
+ mDevice.wait(Until.findObject(By.res("$packageName:id/find_in_page_query_text")), waitingTime)
+ findInPageQuery.perform(ViewActions.clearText())
+ mDevice.wait(Until.gone(By.res("$packageName:id/find_in_page_result_text")), waitingTime)
+ findInPageQuery.perform(ViewActions.typeText(expectedText))
+ mDevice.wait(Until.findObject(By.res("$packageName:id/find_in_page_result_text")), waitingTime)
+ }
+
+ fun verifyFindNextInPageResult(ratioCounter: String) {
+ mDevice.wait(Until.findObject(By.text(ratioCounter)), waitingTime)
+ val resultsCounter = mDevice.findObject(By.text(ratioCounter))
+ findInPageResult.check(matches(withText((ratioCounter))))
+ findInPageNextButton.perform(click())
+ resultsCounter.wait(Until.textNotEquals(ratioCounter), waitingTime)
+ }
+
+ fun verifyFindPrevInPageResult(ratioCounter: String) {
+ mDevice.wait(Until.findObject(By.text(ratioCounter)), waitingTime)
+ val resultsCounter = mDevice.findObject(By.text(ratioCounter))
+ findInPageResult.check(matches(withText((ratioCounter))))
+ findInPagePrevButton.perform(click())
+ resultsCounter.wait(Until.textNotEquals(ratioCounter), waitingTime)
+ }
+
+ fun closeFindInPage() {
+ findInPageCloseButton.perform(click())
+ findInPageQuery.check(matches(not(isDisplayed())))
+ }
+
+ fun verifyCookiesEnabled(areCookiesEnabled: String) {
+ for (i in 1..RETRY_COUNT) {
+ try {
+ assertTrue(
+ mDevice.findObject(
+ UiSelector()
+ .resourceId("cookie_message")
+ .childSelector(
+ UiSelector().textContains(areCookiesEnabled),
+ ),
+ ).waitForExists(waitingTime),
+ )
+ break
+ } catch (e: AssertionError) {
+ if (i == RETRY_COUNT) {
+ throw e
+ } else {
+ refreshPageIfStillLoading(areCookiesEnabled)
+ }
+ }
+ }
+ }
+
+ fun clickSetCookiesButton() = clickPageObject(webPageItemWithResourceId("setCookies"))
+
+ fun clickPageObject(webPageItem: UiObject) {
+ for (i in 1..RETRY_COUNT) {
+ try {
+ webPageItem.also {
+ it.waitForExists(waitingTime)
+ it.click()
+ }
+
+ break
+ } catch (e: UiObjectNotFoundException) {
+ if (i == RETRY_COUNT) {
+ throw e
+ } else {
+ browserScreen {
+ }.openMainMenu {
+ }.clickReloadButton {
+ progressBar.waitUntilGone(waitingTime)
+ }
+ }
+ }
+ }
+ }
+
+ fun longClickPageObject(webPageItem: UiObject) {
+ for (i in 1..RETRY_COUNT) {
+ try {
+ webPageItem.also {
+ it.waitForExists(waitingTime)
+ it.longClick()
+ }
+
+ break
+ } catch (e: UiObjectNotFoundException) {
+ if (i == RETRY_COUNT) {
+ throw e
+ } else {
+ browserScreen {
+ }.openMainMenu {
+ }.clickReloadButton {
+ progressBar.waitUntilGone(waitingTime)
+ }
+ }
+ }
+ }
+ }
+
+ private fun setPageObjectText(webPageItem: UiObject, text: String) {
+ for (i in 1..RETRY_COUNT) {
+ try {
+ webPageItem.also {
+ it.waitForExists(waitingTime)
+ it.setText(text)
+ }
+
+ break
+ } catch (e: UiObjectNotFoundException) {
+ if (i == RETRY_COUNT) {
+ throw e
+ } else {
+ browserScreen {
+ }.openMainMenu {
+ }.clickReloadButton {
+ progressBar.waitUntilGone(waitingTime)
+ }
+ }
+ }
+ }
+ }
+
+ class Transition {
+ fun openSearchBar(interact: SearchRobot.() -> Unit): SearchRobot.Transition {
+ browserURLbar.waitForExists(waitingTime)
+ browserURLbar.click()
+
+ SearchRobot().interact()
+ return SearchRobot.Transition()
+ }
+
+ fun clearBrowsingData(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition {
+ eraseBrowsingButton
+ .check(matches(isDisplayed()))
+ .perform(click())
+
+ HomeScreenRobot().interact()
+ return HomeScreenRobot.Transition()
+ }
+
+ fun openMainMenu(interact: ThreeDotMainMenuRobot.() -> Unit): ThreeDotMainMenuRobot.Transition {
+ browserURLbar.waitForExists(waitingTime)
+ mainMenu
+ .check(matches(isDisplayed()))
+ .perform(click())
+
+ ThreeDotMainMenuRobot().interact()
+ return ThreeDotMainMenuRobot.Transition()
+ }
+
+ fun openSiteSettingsMenu(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition {
+ securityIcon.click()
+
+ HomeScreenRobot().interact()
+ return HomeScreenRobot.Transition()
+ }
+
+ fun openSiteSecurityInfoSheet(interact: SiteSecurityInfoSheetRobot.() -> Unit): SiteSecurityInfoSheetRobot.Transition {
+ if (securityIcon.exists()) {
+ securityIcon.click()
+ } else {
+ site_security_indicator.click()
+ }
+
+ SiteSecurityInfoSheetRobot().interact()
+ return SiteSecurityInfoSheetRobot.Transition()
+ }
+
+ fun openTabsTray(interact: TabsTrayRobot.() -> Unit): TabsTrayRobot.Transition {
+ tabsCounter.perform(click())
+
+ TabsTrayRobot().interact()
+ return TabsTrayRobot.Transition()
+ }
+
+ fun goToPreviousPage(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ mDevice.pressBack()
+ progressBar.waitUntilGone(waitingTime)
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun clickSaveImage(interact: DownloadRobot.() -> Unit): DownloadRobot.Transition {
+ saveImage.inRoot(RootMatchers.isDialog()).check(matches(isDisplayed())).perform(click())
+
+ DownloadRobot().interact()
+ return DownloadRobot.Transition()
+ }
+ }
+}
+
+fun browserScreen(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+}
+
+inline fun runWithIdleRes(ir: IdlingResource?, pendingCheck: () -> Unit) {
+ try {
+ IdlingRegistry.getInstance().register(ir)
+ pendingCheck()
+ } finally {
+ IdlingRegistry.getInstance().unregister(ir)
+ }
+}
+
+private fun assertOpenLinksInAppsPrompt(openLinksInAppsEnabled: Boolean, link: String) {
+ if (openLinksInAppsEnabled) {
+ mDevice.findObject(UiSelector().resourceId("$packageName:id/parentPanel")).waitForExists(waitingTime)
+ assertTrue(openLinksInAppsMessage.waitForExists(waitingTimeShort))
+ assertTrue(openLinksInAppsLink(link).exists())
+ assertTrue(openLinksInAppsCancelButton.waitForExists(waitingTimeShort))
+ assertTrue(openLinksInAppsOpenButton.waitForExists(waitingTimeShort))
+ } else {
+ assertFalse(
+ mDevice.findObject(
+ UiSelector().resourceId("$packageName:id/parentPanel"),
+ ).waitForExists(waitingTimeShort),
+ )
+ }
+}
+
+private fun openLinksInAppsLink(link: String) = mDevice.findObject(UiSelector().textContains(link))
+
+private val browserURLbar = mDevice.findObject(
+ UiSelector().resourceId("$packageName:id/mozac_browser_toolbar_url_view"),
+)
+
+private val eraseBrowsingButton = onView(withContentDescription("Erase browsing history"))
+
+private val tabsCounter = onView(withId(R.id.counter_root))
+
+private val mainMenu = onView(withId(R.id.mozac_browser_toolbar_menu))
+
+private val shareAppsList =
+ mDevice.findObject(UiSelector().resourceId("android:id/resolver_list"))
+
+private val securityIcon =
+ mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/mozac_browser_toolbar_tracking_protection_indicator"),
+ )
+
+private val site_security_indicator =
+ mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/mozac_browser_toolbar_security_indicator"),
+ )
+
+// Link long-tap context menu items
+private val openLinkInPrivateTab = onView(withText("Open link in private tab"))
+
+private val copyLink = onView(withText("Copy link"))
+
+private val shareLink = onView(withText("Share link"))
+
+// Image long-tap context menu items
+private val openImageInNewTab = onView(withText("Open image in new tab"))
+
+private val downloadLink = onView(withText("Download link"))
+
+private val saveImage = onView(withText("Save image"))
+
+private val copyImageLocation = onView(withText("Copy image location"))
+
+private val shareImage = onView(withText("Share image"))
+
+// Find in page toolbar
+private val findInPageQuery = onView(withId(R.id.find_in_page_query_text))
+
+private val findInPageResult = onView(withId(R.id.find_in_page_result_text))
+
+private val findInPageNextButton = onView(withId(R.id.find_in_page_next_btn))
+
+private val findInPagePrevButton = onView(withId(R.id.find_in_page_prev_btn))
+
+private val findInPageCloseButton = onView(withId(R.id.find_in_page_close_btn))
+
+private val openLinksInAppsMessage = mDevice.findObject(UiSelector().resourceId("$packageName:id/alertTitle"))
+
+private val openLinksInAppsCancelButton = mDevice.findObject(UiSelector().textContains("CANCEL"))
+
+private val openLinksInAppsOpenButton =
+ mDevice.findObject(
+ UiSelector()
+ .index(1)
+ .textContains("OPEN")
+ .className("android.widget.Button")
+ .packageName(packageName),
+ )
+
+private val currentDate = LocalDate.now()
+private val currentDay = currentDate.dayOfMonth
+private val currentMonth = currentDate.month
+private val currentYear = currentDate.year
+
+private val permissionAllowBtn = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/allow_button"),
+)
+
+private val permissionDenyBtn = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/deny_button"),
+)
+
+private fun webPageItemContainingText(itemText: String) =
+ mDevice.findObject(UiSelector().textContains(itemText))
+
+private fun webPageItemWithText(itemText: String) =
+ mDevice.findObject(UiSelector().text(itemText))
+
+private fun webPageItemWithResourceId(resourceId: String) =
+ mDevice.findObject(UiSelector().resourceId(resourceId))
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/CustomTabRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/CustomTabRobot.kt
new file mode 100644
index 0000000000..8f7c0ea142
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/CustomTabRobot.kt
@@ -0,0 +1,132 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity.robots
+
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.ViewInteraction
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
+import androidx.test.espresso.matcher.ViewMatchers.withContentDescription
+import androidx.test.espresso.matcher.ViewMatchers.withId
+import androidx.test.espresso.matcher.ViewMatchers.withSubstring
+import androidx.test.espresso.matcher.ViewMatchers.withText
+import androidx.test.uiautomator.UiObject
+import androidx.test.uiautomator.UiSelector
+import junit.framework.TestCase.assertTrue
+import org.junit.Assert
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.TestHelper.appName
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.packageName
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.idlingResources.SessionLoadedIdlingResource
+
+class CustomTabRobot {
+
+ private lateinit var sessionLoadedIdlingResource: SessionLoadedIdlingResource
+
+ val progressBar: UiObject =
+ mDevice.findObject(
+ UiSelector().resourceId("$packageName:id/progress"),
+ )
+
+ fun verifyCustomTabActionButton(buttonDescription: String) {
+ actionButton(buttonDescription).check(matches(isDisplayed()))
+ }
+
+ fun verifyCustomMenuItem(buttonDescription: String) {
+ customMenuItem(buttonDescription).check(matches(isDisplayed()))
+ }
+
+ fun openCustomTabMenu(): ViewInteraction = menuButton.perform(click())
+
+ fun verifyShareButtonIsDisplayed(): ViewInteraction = shareButton.check(matches(isDisplayed()))
+
+ fun verifyTheStandardMenuItems() {
+ onView(withText("Add to Home screen")).check(matches(isDisplayed()))
+ onView(withText("Find in Page")).check(matches(isDisplayed()))
+ onView(withText("Open in…")).check(matches(isDisplayed()))
+ openInFocusButton.check(matches(isDisplayed()))
+ onView(withSubstring("Desktop site")).check(matches(isDisplayed()))
+ // Removed until https://github.com/mozilla-mobile/android-components/issues/10791 is fixed
+ // onView(withText("Report site issue")).check(matches(isDisplayed()))
+ onView(withText("Powered by $appName")).check(matches(isDisplayed()))
+ }
+
+ fun closeCustomTab() {
+ closeCustomTabButton
+ .check(matches(isDisplayed()))
+ .perform(click())
+ }
+
+ fun verifyPageURL(expectedText: String) {
+ sessionLoadedIdlingResource = SessionLoadedIdlingResource()
+
+ runWithIdleRes(sessionLoadedIdlingResource) {
+ mDevice.findObject(UiSelector().textContains(expectedText)).waitForExists(waitingTime)
+ assertTrue(
+ "Actual url: ${customTabUrl.text}",
+ customTabUrl.text.contains(expectedText),
+ )
+ }
+ }
+
+ fun verifyPageContent(expectedText: String) {
+ val sessionLoadedIdlingResource = SessionLoadedIdlingResource()
+
+ mDevice.findObject(UiSelector().resourceId("$packageName:id/engineView"))
+ .waitForExists(waitingTime)
+
+ runWithIdleRes(sessionLoadedIdlingResource) {
+ Assert.assertTrue(
+ mDevice.findObject(UiSelector().textContains(expectedText))
+ .waitForExists(waitingTime),
+ )
+ }
+ }
+
+ fun clickLinkMatchingText(expectedText: String) {
+ mDevice.findObject(UiSelector().textContains(expectedText)).waitForExists(waitingTime)
+ mDevice.findObject(UiSelector().textContains(expectedText)).also { it.click() }
+ }
+
+ class Transition {
+ fun clickOpenInFocusButton(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ openInFocusButton
+ .check(matches(isDisplayed()))
+ .perform(click())
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun openCustomTabMenu(interact: ThreeDotMainMenuRobot.() -> Unit): ThreeDotMainMenuRobot.Transition {
+ menuButton.perform(click())
+
+ ThreeDotMainMenuRobot().interact()
+ return ThreeDotMainMenuRobot.Transition()
+ }
+ }
+}
+
+fun customTab(interact: CustomTabRobot.() -> Unit): CustomTabRobot.Transition {
+ CustomTabRobot().interact()
+ return CustomTabRobot.Transition()
+}
+
+private fun actionButton(description: String) = onView(withContentDescription(description))
+
+private val menuButton = onView(withId(R.id.mozac_browser_toolbar_menu))
+
+private val shareButton = onView(withContentDescription("Share link"))
+
+private fun customMenuItem(description: String) = onView(withText(description))
+
+private val closeCustomTabButton = onView(withContentDescription(R.string.mozac_feature_customtabs_exit_button))
+
+private val openInFocusButton = onView(withText("Open in $appName"))
+
+private val customTabUrl =
+ mDevice.findObject(UiSelector().resourceId("$packageName:id/mozac_browser_toolbar_url_view"))
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/DownloadRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/DownloadRobot.kt
new file mode 100644
index 0000000000..171782154c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/DownloadRobot.kt
@@ -0,0 +1,96 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity.robots
+
+import androidx.test.uiautomator.UiObject
+import androidx.test.uiautomator.UiSelector
+import org.junit.Assert.assertTrue
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.TestHelper.getStringResource
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.packageName
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.helpers.TestHelper.waitingTimeShort
+import org.mozilla.focus.idlingResources.SessionLoadedIdlingResource
+
+class DownloadRobot {
+ fun verifyDownloadDialog(fileName: String) {
+ assertTrue(downloadDialogTitle.waitForExists(waitingTime))
+ assertTrue(downloadCancelBtn.exists())
+ assertTrue(downloadBtn.exists())
+ assertTrue(downloadFileName.text.contains(fileName))
+ }
+
+ fun verifyDownloadDialogGone() = assertTrue(downloadDialogTitle.waitUntilGone(waitingTime))
+
+ fun clickDownloadIconAsset() {
+ val sessionLoadedIdlingResource = SessionLoadedIdlingResource()
+ runWithIdleRes(sessionLoadedIdlingResource) {
+ downloadIconAsset.waitForExists(waitingTime)
+ downloadIconAsset.click()
+ }
+ }
+
+ fun clickDownloadButton() {
+ downloadBtn.waitForExists(waitingTime)
+ downloadBtn.click()
+ }
+
+ fun clickCancelDownloadButton() {
+ downloadCancelBtn.waitForExists(waitingTime)
+ downloadCancelBtn.click()
+ }
+
+ fun verifyDownloadConfirmationMessage(fileName: String) {
+ val snackBar = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/snackbar_text"),
+ )
+ snackBar.waitForExists(waitingTimeShort)
+ assertTrue(
+ snackBar.text,
+ snackBar.text.equals("$fileName finished"),
+ )
+ }
+
+ fun openDownloadedFile() {
+ val snackBarButton = mDevice.findObject(UiSelector().resourceId("$packageName:id/snackbar_action"))
+ snackBarButton.waitForExists(waitingTime)
+ snackBarButton.clickAndWaitForNewWindow(waitingTime)
+ }
+
+ class Transition
+}
+
+fun downloadRobot(interact: DownloadRobot.() -> Unit): DownloadRobot.Transition {
+ DownloadRobot().interact()
+ return DownloadRobot.Transition()
+}
+
+val downloadIconAsset: UiObject = mDevice.findObject(
+ UiSelector()
+ .resourceId("download"),
+)
+
+private val downloadDialogTitle = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/title"),
+)
+
+private val downloadFileName = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/filename"),
+)
+
+private val downloadCancelBtn = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/close_button"),
+)
+
+private val downloadBtn = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/download_button"),
+)
+
+private val downloadNotificationText = getStringResource(R.string.mozac_feature_downloads_completed_notification_text2)
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/HomeScreenRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/HomeScreenRobot.kt
new file mode 100644
index 0000000000..4309cb2e63
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/HomeScreenRobot.kt
@@ -0,0 +1,235 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity.robots
+
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
+import androidx.test.espresso.matcher.ViewMatchers.withId
+import androidx.test.uiautomator.By
+import androidx.test.uiautomator.UiSelector
+import org.junit.Assert.assertTrue
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.TestHelper.appName
+import org.mozilla.focus.helpers.TestHelper.getStringResource
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.packageName
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.helpers.TestHelper.waitingTimeShort
+
+class HomeScreenRobot {
+
+ fun verifyEmptySearchBar() {
+ editURLBar.waitForExists(waitingTime)
+ assertTrue(editURLBar.text.equals(getStringResource(R.string.urlbar_hint)))
+ }
+
+ fun skipFirstRun() = onView(withId(R.id.skip)).perform(click())
+
+ fun closeOnboarding() = onboardingCloseButton.clickAndWaitForNewWindow(waitingTime)
+
+ fun verifyOnboardingFirstSlide() = assertTrue(firstSlideTitle.waitForExists(waitingTime))
+
+ fun verifyOnboardingSecondSlide() = assertTrue(secondSlideTitle.waitForExists(waitingTime))
+
+ fun verifyOnboardingThirdSlide() = assertTrue(thirdSlideTitle.waitForExists(waitingTime))
+
+ fun verifyOnboardingLastSlide() = assertTrue(lastSlide.waitForExists(waitingTime))
+
+ fun clickOnboardingNextButton() = nextButton.clickAndWaitForNewWindow(waitingTimeShort)
+
+ fun clickOnboardingFinishButton() = finishButton.clickAndWaitForNewWindow(waitingTimeShort)
+
+ fun verifyPageShortcutExists(title: String) {
+ assertTrue(
+ topSitesList
+ .getChild(UiSelector().textContains(title))
+ .waitForExists(waitingTime),
+ )
+ }
+
+ fun longTapPageShortcut(title: String) {
+ mDevice.findObject(By.text(title)).click(4000)
+ }
+
+ fun clickRenameShortcut() {
+ mDevice.findObject(UiSelector().text("Rename"))
+ .also {
+ it.waitForExists(waitingTimeShort)
+ it.click()
+ }
+ }
+
+ fun renameShortcutAndSave(newTitle: String) {
+ val titleTextField = mDevice.findObject(UiSelector().className("android.widget.EditText"))
+ val okButton = mDevice.findObject(UiSelector().textContains("ok"))
+
+ titleTextField.clearTextField()
+ titleTextField.setText(newTitle)
+ okButton.click()
+ // the dialog is not always dismissed on first click of the Ok button (not manually reproducible)
+ if (!mDevice.findObject(UiSelector().text("Rename")).waitUntilGone(waitingTimeShort)) {
+ okButton.click()
+ }
+ }
+
+ fun verifyFirstOnboardingScreenItems() {
+ assertTrue(onboardingCloseButton.waitForExists(waitingTime))
+ assertTrue(onboardingLogo.waitForExists(waitingTime))
+ assertTrue(onboardingFirstScreenTitle.waitForExists(waitingTime))
+ assertTrue(onboardingFirstScreenSubtitle.waitForExists(waitingTime))
+ assertTrue(onboardingGetStartedButton.waitForExists(waitingTime))
+ }
+
+ fun verifySecondOnboardingScreenItems() {
+ assertTrue(onboardingCloseButton.waitForExists(waitingTime))
+ assertTrue(onboardingLogo.waitForExists(waitingTime))
+ assertTrue(onboardingSecondScreenTitle.waitForExists(waitingTime))
+ assertTrue(onboardingSecondScreenFirstSubtitle.waitForExists(waitingTime))
+ assertTrue(onboardingSecondScreenSecondSubtitle.waitForExists(waitingTime))
+ assertTrue(onboardingSetAsDefaultBrowserButton.waitForExists(waitingTime))
+ assertTrue(onboardingSkipButton.waitForExists(waitingTime))
+ }
+
+ fun clickGetStartedButton() {
+ onboardingGetStartedButton
+ .also { it.waitForExists(waitingTime) }
+ .also { it.clickAndWaitForNewWindow(waitingTime) }
+ }
+
+ class Transition {
+ fun openMainMenu(interact: ThreeDotMainMenuRobot.() -> Unit): ThreeDotMainMenuRobot.Transition {
+ editURLBar.waitForExists(waitingTime)
+ mainMenu
+ .check(matches(isDisplayed()))
+ .perform(click())
+
+ ThreeDotMainMenuRobot().interact()
+ return ThreeDotMainMenuRobot.Transition()
+ }
+
+ fun clickPageShortcut(title: String, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ mDevice.findObject(UiSelector().text(title)).waitForExists(waitingTimeShort)
+ mDevice.findObject(UiSelector().text(title)).click()
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun openSearchBar(interact: SearchRobot.() -> Unit): SearchRobot.Transition {
+ editURLBar.waitForExists(waitingTime)
+ editURLBar.click()
+
+ SearchRobot().interact()
+ return SearchRobot.Transition()
+ }
+ }
+}
+
+fun homeScreen(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition {
+ HomeScreenRobot().interact()
+ return HomeScreenRobot.Transition()
+}
+
+private val editURLBar =
+ mDevice.findObject(
+ UiSelector().resourceId("$packageName:id/mozac_browser_toolbar_edit_url_view"),
+ )
+
+private val mainMenu = onView(withId(R.id.menuView))
+
+/********* First Run Locators */
+private val firstSlideTitle =
+ mDevice.findObject(UiSelector().textContains(getStringResource(R.string.firstrun_defaultbrowser_title)))
+
+private val secondSlideTitle =
+ mDevice.findObject(UiSelector().textContains(getStringResource(R.string.firstrun_search_title)))
+
+private val thirdSlideTitle =
+ mDevice.findObject(UiSelector().textContains(getStringResource(R.string.firstrun_shortcut_title)))
+
+private val lastSlide =
+ mDevice.findObject(UiSelector().textContains(getStringResource(R.string.firstrun_privacy_title)))
+
+private val nextButton = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/next")
+ .enabled(true),
+)
+
+private val finishButton = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/finish")
+ .enabled(true),
+)
+
+private val topSitesList = mDevice.findObject(UiSelector().resourceId("$packageName:id/topSites"))
+
+/** New onboarding elements **/
+
+private val onboardingCloseButton =
+ mDevice.findObject(
+ UiSelector()
+ .descriptionContains(getStringResource(R.string.onboarding_close_button_content_description)),
+ )
+
+private val onboardingLogo =
+ mDevice.findObject(
+ UiSelector()
+ .className("android.widget.ImageView")
+ .descriptionContains(appName),
+ )
+
+private val onboardingFirstScreenTitle =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.onboarding_first_screen_title)),
+ )
+
+private val onboardingSecondScreenTitle =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.onboarding_short_app_name) + " isn’t like other browsers"),
+ )
+
+private val onboardingFirstScreenSubtitle =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.onboarding_first_screen_subtitle)),
+ )
+
+private val onboardingSecondScreenFirstSubtitle =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.onboarding_second_screen_subtitle_one)),
+ )
+
+private val onboardingSecondScreenSecondSubtitle =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(
+ "Make " + getStringResource(R.string.onboarding_short_app_name) +
+ " your default to protect your data with every link you open.",
+ ),
+ )
+
+private val onboardingGetStartedButton =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.onboarding_first_screen_button_text)),
+ )
+
+private val onboardingSetAsDefaultBrowserButton =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.onboarding_second_screen_default_browser_button_text)),
+ )
+
+private val onboardingSkipButton =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.onboarding_second_screen_skip_button_text)),
+ )
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/NotificationRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/NotificationRobot.kt
new file mode 100644
index 0000000000..ce53788fb4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/NotificationRobot.kt
@@ -0,0 +1,159 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity.robots
+
+import android.os.Build
+import androidx.test.uiautomator.By
+import androidx.test.uiautomator.UiScrollable
+import androidx.test.uiautomator.UiSelector
+import androidx.test.uiautomator.Until
+import org.junit.Assert.assertTrue
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.TestHelper.appName
+import org.mozilla.focus.helpers.TestHelper.getStringResource
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+
+class NotificationRobot {
+
+ private val NOTIFICATION_SHADE = "com.android.systemui:id/notification_stack_scroller"
+ private val QS_PANEL = "com.android.systemui:id/quick_qs_panel"
+
+ fun clearNotifications() {
+ if (clearButton.exists()) {
+ clearButton.click()
+ } else {
+ notificationTray.flingToEnd(3)
+ if (clearButton.exists()) {
+ clearButton.click()
+ } else if (notificationTray.exists()) {
+ mDevice.pressBack()
+ }
+ }
+ }
+
+ fun expandEraseBrowsingNotification() {
+ notificationHeader.click()
+ }
+
+ fun verifySystemNotificationExists(notificationMessage: String) {
+ val notification = mDevice.findObject(UiSelector().text(notificationMessage))
+ while (!notification.waitForExists(waitingTime)) {
+ UiScrollable(
+ UiSelector().resourceId(NOTIFICATION_SHADE),
+ ).flingToEnd(1)
+ }
+
+ assertTrue(notification.exists())
+ }
+
+ fun verifyMediaNotificationExists(notificationMessage: String) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+ val notificationInTray = mDevice.wait(
+ Until.hasObject(
+ By.res(QS_PANEL).hasDescendant(
+ By.text(notificationMessage),
+ ),
+ ),
+ waitingTime,
+ )
+
+ assertTrue(notificationInTray)
+ } else {
+ verifySystemNotificationExists(notificationMessage)
+ }
+ }
+
+ fun verifyNotificationGone(notificationMessage: String) {
+ assertTrue(
+ mDevice.findObject(UiSelector().text(notificationMessage))
+ .waitUntilGone(waitingTime),
+ )
+ }
+
+ fun clickMediaNotificationControlButton(action: String) {
+ mediaNotificationControlButton(action).click()
+ }
+
+ fun verifyMediaNotificationButtonState(action: String) {
+ mediaNotificationControlButton(action).waitForExists(waitingTime)
+ }
+
+ fun verifyDownloadNotification(notificationMessage: String, fileName: String) {
+ val notification = UiSelector().text(notificationMessage)
+ var notificationFound = mDevice.findObject(notification).waitForExists(waitingTime)
+ val downloadFilename = mDevice.findObject(UiSelector().text(fileName))
+
+ while (!notificationFound) {
+ notificationTray.swipeUp(2)
+ notificationFound = mDevice.findObject(notification).waitForExists(waitingTime)
+ }
+
+ assertTrue(notificationFound)
+ assertTrue(downloadFilename.exists())
+ }
+
+ class Transition {
+ fun clickEraseAndOpenNotificationButton(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition {
+ notificationEraseAndOpenButton.waitForExists(waitingTime)
+ notificationEraseAndOpenButton.click()
+
+ HomeScreenRobot().interact()
+ return HomeScreenRobot.Transition()
+ }
+
+ fun clickNotificationOpenButton(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ notificationOpenButton.waitForExists(waitingTime)
+ notificationOpenButton.clickAndWaitForNewWindow()
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun clickNotificationMessage(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition {
+ eraseBrowsingNotification.waitForExists(waitingTime)
+ eraseBrowsingNotification.click()
+
+ HomeScreenRobot().interact()
+ return HomeScreenRobot.Transition()
+ }
+ }
+}
+
+fun notificationTray(interact: NotificationRobot.() -> Unit): NotificationRobot.Transition {
+ NotificationRobot().interact()
+ return NotificationRobot.Transition()
+}
+
+private val eraseBrowsingNotification =
+ mDevice.findObject(
+ UiSelector().text(getStringResource(R.string.notification_erase_text)),
+ )
+
+private val notificationEraseAndOpenButton =
+ mDevice.findObject(
+ UiSelector().description(getStringResource(R.string.notification_action_erase_and_open)),
+ )
+
+private val notificationOpenButton = mDevice.findObject(
+ UiSelector().description(getStringResource(R.string.notification_action_open)),
+)
+
+private val notificationTray = UiScrollable(
+ UiSelector().resourceId("com.android.systemui:id/notification_stack_scroller"),
+)
+ .setAsVerticalList()
+
+private val notificationHeader = mDevice.findObject(
+ UiSelector()
+ .resourceId("android:id/app_name_text")
+ .textContains(appName),
+)
+
+private val clearButton =
+ mDevice.findObject(UiSelector().resourceId("com.android.systemui:id/btn_clear_all"))
+
+private fun mediaNotificationControlButton(action: String) =
+ mDevice.findObject(UiSelector().description(action))
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SearchRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SearchRobot.kt
new file mode 100644
index 0000000000..490f4cb9ab
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SearchRobot.kt
@@ -0,0 +1,166 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity.robots
+
+import androidx.test.uiautomator.By
+import androidx.test.uiautomator.UiSelector
+import org.junit.Assert.assertFalse
+import org.junit.Assert.assertTrue
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.Constants.LONG_CLICK_DURATION
+import org.mozilla.focus.helpers.TestHelper.getStringResource
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.packageName
+import org.mozilla.focus.helpers.TestHelper.pressEnterKey
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.idlingResources.SessionLoadedIdlingResource
+
+class SearchRobot {
+
+ fun verifySearchBarIsDisplayed() = assertTrue(searchBar.exists())
+
+ fun typeInSearchBar(searchString: String) {
+ assertTrue(searchBar.waitForExists(waitingTime))
+ searchBar.clearTextField()
+ searchBar.setText(searchString)
+ }
+
+ // Would you like to turn on search suggestions? Yes No
+ // fresh install only
+ fun allowEnableSearchSuggestions() {
+ if (searchSuggestionsTitle.waitForExists(waitingTime)) {
+ searchSuggestionsButtonYes.waitForExists(waitingTime)
+ searchSuggestionsButtonYes.click()
+ }
+ }
+
+ // Would you like to turn on search suggestions? Yes No
+ // fresh install only
+ fun denyEnableSearchSuggestions() {
+ if (searchSuggestionsTitle.waitForExists(waitingTime)) {
+ searchSuggestionsButtonNo.waitForExists(waitingTime)
+ searchSuggestionsButtonNo.click()
+ }
+ }
+
+ fun verifySearchSuggestionsAreShown() {
+ suggestionsList.waitForExists(waitingTime)
+ assertTrue(suggestionsList.childCount >= 1)
+ }
+
+ fun verifySearchSuggestionsAreNotShown() {
+ assertFalse(suggestionsList.exists())
+ }
+
+ fun verifySearchEditBarContainsText(text: String) {
+ mDevice.findObject(UiSelector().textContains(text)).waitForExists(waitingTime)
+ assertTrue(searchBar.text.equals(text))
+ }
+
+ fun verifySearchEditBarIsEmpty() {
+ searchBar.waitForExists(waitingTime)
+ assertTrue(searchBar.text.equals(getStringResource(R.string.urlbar_hint)))
+ }
+
+ fun clickToolbar() {
+ toolbar.waitForExists(waitingTime)
+ toolbar.click()
+ }
+
+ fun longPressSearchBar() {
+ searchBar.waitForExists(waitingTime)
+ mDevice.findObject(By.res("$packageName:id/mozac_browser_toolbar_edit_url_view")).click(LONG_CLICK_DURATION)
+ }
+
+ fun clearSearchBar() = clearSearchButton.click()
+
+ fun verifySearchSuggestionsContain(title: String) {
+ assertTrue(
+ suggestionsList.getChild(UiSelector().textContains(title)).waitForExists(waitingTime),
+ )
+ }
+
+ class Transition {
+
+ private lateinit var sessionLoadedIdlingResource: SessionLoadedIdlingResource
+
+ fun loadPage(url: String, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ val geckoEngineView = mDevice.findObject(UiSelector().resourceId("$packageName:id/engineView"))
+ val trackingProtectionDialog = mDevice.findObject(UiSelector().resourceId("$packageName:id/message"))
+
+ sessionLoadedIdlingResource = SessionLoadedIdlingResource()
+
+ searchScreen { typeInSearchBar(url) }
+ pressEnterKey()
+
+ runWithIdleRes(sessionLoadedIdlingResource) {
+ assertTrue(
+ BrowserRobot().progressBar.waitUntilGone(waitingTime),
+ )
+ assertTrue(
+ geckoEngineView.waitForExists(waitingTime) ||
+ trackingProtectionDialog.waitForExists(waitingTime),
+ )
+ }
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun pasteAndLoadLink(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ var currentTries = 0
+ while (currentTries++ < 3) {
+ try {
+ mDevice.findObject(UiSelector().textContains("Paste")).waitForExists(waitingTime)
+ val pasteText = mDevice.findObject(By.textContains("Paste"))
+ pasteText.click()
+ mDevice.pressEnter()
+ break
+ } catch (e: NullPointerException) {
+ SearchRobot().longPressSearchBar()
+ }
+ }
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+ }
+}
+
+fun searchScreen(interact: SearchRobot.() -> Unit): SearchRobot.Transition {
+ SearchRobot().interact()
+ return SearchRobot.Transition()
+}
+
+private val searchBar =
+ mDevice.findObject(UiSelector().resourceId("$packageName:id/mozac_browser_toolbar_edit_url_view"))
+
+private val toolbar =
+ mDevice.findObject(UiSelector().resourceId("$packageName:id/mozac_browser_toolbar_url_view"))
+
+private val searchSuggestionsTitle = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/enable_search_suggestions_title")
+ .enabled(true),
+)
+
+private val searchSuggestionsButtonYes = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/enable_search_suggestions_button")
+ .enabled(true),
+)
+
+private val searchSuggestionsButtonNo = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/disable_search_suggestions_button")
+ .enabled(true),
+)
+
+private val suggestionsList = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/search_suggestions_view"),
+)
+
+private val clearSearchButton = mDevice.findObject(UiSelector().resourceId("$packageName:id/mozac_browser_toolbar_clear_view"))
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsAdvancedMenuRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsAdvancedMenuRobot.kt
new file mode 100644
index 0000000000..7c44b0a015
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsAdvancedMenuRobot.kt
@@ -0,0 +1,109 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity.robots
+
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers.isChecked
+import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
+import androidx.test.espresso.matcher.ViewMatchers.isNotChecked
+import androidx.test.espresso.matcher.ViewMatchers.withId
+import androidx.test.espresso.matcher.ViewMatchers.withText
+import androidx.test.uiautomator.UiScrollable
+import androidx.test.uiautomator.UiSelector
+import org.hamcrest.CoreMatchers.allOf
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.EspressoHelper.hasCousin
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.packageName
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+
+class SettingsAdvancedMenuRobot {
+ fun verifyAdvancedSettingsItems() {
+ advancedSettingsList.waitForExists(waitingTime)
+ developerToolsHeading().check(matches(isDisplayed()))
+ remoteDebuggingSwitch().check(matches(isDisplayed()))
+ assertRemoteDebuggingSwitchState()
+ openLinksInAppsButton().check(matches(isDisplayed()))
+ assertOpenLinksInAppsSwitchState()
+ }
+
+ fun verifyOpenLinksInAppsSwitchState(enabled: Boolean) = assertOpenLinksInAppsSwitchState(enabled)
+ fun clickOpenLinksInAppsSwitch() = openLinksInAppsButton().perform(click())
+
+ class Transition {
+ fun goBackToSettings(interact: SettingsRobot.() -> Unit): SettingsRobot.Transition {
+ mDevice.pressBack()
+ SettingsRobot().interact()
+ return SettingsRobot.Transition()
+ }
+ }
+}
+
+private fun openLinksInAppsButton() = onView(withText(R.string.preferences_open_links_in_apps))
+
+private fun assertOpenLinksInAppsSwitchState(enabled: Boolean = false) {
+ if (enabled) {
+ openLinksInAppsButton()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ openLinksInAppsButton()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+}
+
+private val advancedSettingsList =
+ UiScrollable(UiSelector().resourceId("$packageName:id/recycler_view"))
+
+private fun developerToolsHeading() = onView(withText(R.string.preference_advanced_summary))
+
+private fun remoteDebuggingSwitch() = onView(withText("Remote debugging via USB/Wi-Fi"))
+
+private fun assertRemoteDebuggingSwitchState(enabled: Boolean = false) {
+ if (enabled) {
+ remoteDebuggingSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ remoteDebuggingSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsGeneralMenuRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsGeneralMenuRobot.kt
new file mode 100644
index 0000000000..4601e7d6bb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsGeneralMenuRobot.kt
@@ -0,0 +1,197 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity.robots
+
+import android.os.Build
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.ViewInteraction
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.intent.Intents.intended
+import androidx.test.espresso.intent.matcher.IntentMatchers
+import androidx.test.espresso.matcher.ViewMatchers.hasSibling
+import androidx.test.espresso.matcher.ViewMatchers.isChecked
+import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
+import androidx.test.espresso.matcher.ViewMatchers.isNotChecked
+import androidx.test.espresso.matcher.ViewMatchers.withId
+import androidx.test.espresso.matcher.ViewMatchers.withText
+import androidx.test.uiautomator.UiScrollable
+import androidx.test.uiautomator.UiSelector
+import junit.framework.TestCase.assertTrue
+import org.hamcrest.Matchers.allOf
+import org.junit.Assert.assertFalse
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.EspressoHelper.hasCousin
+import org.mozilla.focus.helpers.TestHelper.appName
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+
+class SettingsGeneralMenuRobot {
+ companion object {
+ const val ACTION_REQUEST_ROLE = "android.app.role.action.REQUEST_ROLE"
+ }
+
+ fun verifyGeneralSettingsItems(defaultBrowserSwitchState: Boolean = false) {
+ verifyThemesList()
+ languageMenuButton().check(matches(isDisplayed()))
+ defaultBrowserSwitch().check(matches(isDisplayed()))
+ assertDefaultBrowserSwitchState(defaultBrowserSwitchState)
+ }
+
+ fun clickSetDefaultBrowser() {
+ defaultBrowserSwitch()
+ .check(matches(isDisplayed()))
+ .perform(click())
+ }
+
+ fun verifyAndroidDefaultAppsMenuAppears() {
+ // method used to assert the default apps menu on API 24 and above
+ when (Build.VERSION.SDK_INT) {
+ in Build.VERSION_CODES.N..Build.VERSION_CODES.P ->
+ assertTrue(
+ mDevice.findObject(UiSelector().resourceId("com.android.settings:id/list"))
+ .waitForExists(waitingTime),
+ )
+ in Build.VERSION_CODES.Q..Build.VERSION_CODES.R ->
+ intended(IntentMatchers.hasAction(ACTION_REQUEST_ROLE))
+ }
+ }
+
+ fun selectFocusDefaultBrowser() {
+ // method used to set default browser on API 30 and above
+ mDevice.findObject(UiSelector().text(appName)).click()
+ mDevice.findObject(UiSelector().textContains("Set as default")).click()
+ }
+
+ fun verifySwitchIsToggled(checked: Boolean) {
+ onView(withId(R.id.switch_widget)).check(
+ matches(
+ if (checked) {
+ isChecked()
+ } else {
+ isNotChecked()
+ },
+ ),
+ )
+ }
+
+ fun openLanguageSelectionMenu(localizedText: String = "Language"): ViewInteraction =
+ languageMenuButton(localizedText).perform(click())
+
+ fun verifySystemLocaleSelected(localizedText: String = "System default") {
+ assertTrue(
+ languageMenu.getChild(
+ UiSelector()
+ .text(localizedText)
+ .index(1),
+ ).getFromParent(
+ UiSelector().index(0),
+ ).isChecked,
+ )
+ }
+
+ fun selectLanguage(language: String) {
+ // Due to scrolling issues on Compose LazyList, avoid setting a language that is under the fold.
+ // see https://github.com/mozilla-mobile/focus-android/issues/7282
+ languageMenu
+ .getChildByText(UiSelector().text(language), language, true)
+ .click()
+ }
+
+ fun verifyThemesList() {
+ darkThemeToggle.check(matches(isDisplayed()))
+ lightThemeToggle.check(matches(isDisplayed()))
+ deviceThemeToggle
+ .check(matches(isDisplayed()))
+ .check(matches(isChecked()))
+ }
+
+ fun verifyThemeApplied(isDarkTheme: Boolean = false, isLightTheme: Boolean = false, getThemeState: Boolean) {
+ when {
+ // getUiTheme() returns true if dark is applied
+ isDarkTheme -> assertTrue("Dark theme not applied", getThemeState)
+ // getUiTheme() returns false if light is applied
+ isLightTheme -> assertFalse("Light theme not applied", getThemeState)
+ }
+ }
+
+ fun selectDarkTheme() = darkThemeToggle.perform(click())
+
+ fun selectLightTheme() = lightThemeToggle.perform(click())
+
+ fun selectDeviceTheme() = deviceThemeToggle.perform(click())
+
+ class Transition {
+ // add here transitions to other robot classes
+ }
+}
+
+private fun defaultBrowserSwitch() = onView(withText("Make $appName default browser"))
+
+private fun assertDefaultBrowserSwitchState(enabled: Boolean) {
+ if (enabled) {
+ defaultBrowserSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switch_widget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ defaultBrowserSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switch_widget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+}
+
+private val openWithDialogTitle = mDevice.findObject(
+ UiSelector()
+ .text("Open with"),
+)
+
+private val openWithList = mDevice.findObject(
+ UiSelector()
+ .resourceId("android:id/resolver_list"),
+)
+
+private fun languageMenuButton(localizedText: String = "Language") = onView(withText(localizedText))
+
+private val languageMenu = UiScrollable(UiSelector().scrollable(true))
+
+private val darkThemeToggle =
+ onView(
+ allOf(
+ withId(R.id.radio_button),
+ hasSibling(withText("Dark")),
+ ),
+ )
+
+private val lightThemeToggle =
+ onView(
+ allOf(
+ withId(R.id.radio_button),
+ hasSibling(withText("Light")),
+ ),
+ )
+
+private val deviceThemeToggle =
+ onView(
+ allOf(
+ withId(R.id.radio_button),
+ hasSibling(withText("Follow device theme")),
+ ),
+ )
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsMozillaMenuRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsMozillaMenuRobot.kt
new file mode 100644
index 0000000000..c5ce1748eb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsMozillaMenuRobot.kt
@@ -0,0 +1,187 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity.robots
+
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers.hasSibling
+import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
+import androidx.test.espresso.matcher.ViewMatchers.withId
+import androidx.test.espresso.matcher.ViewMatchers.withParent
+import androidx.test.espresso.matcher.ViewMatchers.withText
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.UiScrollable
+import androidx.test.uiautomator.UiSelector
+import junit.framework.TestCase.assertTrue
+import mozilla.components.support.utils.ext.getPackageInfoCompat
+import org.hamcrest.Matchers.allOf
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.TestHelper.appName
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.packageName
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.idlingResources.SessionLoadedIdlingResource
+
+class SettingsMozillaMenuRobot {
+
+ private lateinit var sessionLoadedIdlingResource: SessionLoadedIdlingResource
+
+ fun verifyMozillaMenuItems() {
+ mozillaSettingsList.waitForExists(waitingTime)
+ aboutFocusPageLink.check(matches(isDisplayed()))
+ helpPageLink.check(matches(isDisplayed()))
+ yourRightsLink.check(matches(isDisplayed()))
+ privacyNoticeLink.check(matches(isDisplayed()))
+ licenseInfo.check(matches(isDisplayed()))
+ librariesUsedLink.check(matches(isDisplayed()))
+ }
+
+ fun verifyVersionNumbers() {
+ val context = InstrumentationRegistry.getInstrumentation().targetContext
+ val packageInfo = context.packageManager.getPackageInfoCompat(context.packageName, 0)
+ val versionName = packageInfo.versionName
+ val gvBuildId = org.mozilla.geckoview.BuildConfig.MOZ_APP_BUILDID
+ val gvVersion = org.mozilla.geckoview.BuildConfig.MOZ_APP_VERSION
+
+ sessionLoadedIdlingResource = SessionLoadedIdlingResource()
+
+ runWithIdleRes(sessionLoadedIdlingResource) {
+ assertTrue(
+ "Expected app version number not found",
+ mDevice.findObject(UiSelector().textContains(versionName))
+ .waitForExists(waitingTime),
+ )
+
+ assertTrue(
+ "Expected GV version not found",
+ mDevice.findObject(UiSelector().textContains(gvVersion))
+ .waitForExists(waitingTime),
+ )
+
+ assertTrue(
+ "Expected GV build ID not found",
+ mDevice.findObject(UiSelector().textContains(gvBuildId))
+ .waitForExists(waitingTime),
+ )
+ }
+ }
+
+ fun verifyLibrariesUsedTitle() {
+ librariesUsedTitle
+ .check(matches(isDisplayed()))
+ }
+
+ class Transition {
+ fun openAboutPage(interact: SettingsMozillaMenuRobot.() -> Unit): Transition {
+ aboutFocusPageLink
+ .check(matches(isDisplayed()))
+ .perform(click())
+
+ SettingsMozillaMenuRobot().interact()
+ return Transition()
+ }
+
+ fun openAboutPageLearnMoreLink(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ mDevice.findObject(UiSelector().text("Learn more")).click()
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun openYourRightsPage(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ yourRightsLink
+ .check(matches(isDisplayed()))
+ .perform(click())
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun openLicenseInformation(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ licenseInfo
+ .check(matches(isDisplayed()))
+ .perform(click())
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun openLibrariesUsedPage(interact: SettingsMozillaMenuRobot.() -> Unit): BrowserRobot.Transition {
+ librariesUsedLink
+ .check(matches(isDisplayed()))
+ .perform(click())
+
+ SettingsMozillaMenuRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun openPrivacyNotice(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ privacyNoticeLink
+ .check(matches(isDisplayed()))
+ .perform(click())
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun openHelpLink(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ helpPageLink
+ .check(matches(isDisplayed()))
+ .perform(click())
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+ }
+}
+
+private val mozillaSettingsList =
+ UiScrollable(UiSelector().resourceId("$packageName:id/recycler_view"))
+
+private val aboutFocusPageLink = onView(withText("About $appName"))
+
+private val helpPageLink =
+ onView(
+ allOf(
+ withText("Help"),
+ withParent(
+ hasSibling(withId(R.id.icon_frame)),
+ ),
+ ),
+ )
+
+private val yourRightsLink =
+ onView(
+ allOf(
+ withText("Your Rights"),
+ withParent(
+ hasSibling(withId(R.id.icon_frame)),
+ ),
+ ),
+ )
+
+private val privacyNoticeLink =
+ onView(
+ allOf(
+ withText("Privacy Notice"),
+ withParent(
+ hasSibling(withId(R.id.icon_frame)),
+ ),
+ ),
+ )
+
+private val licenseInfo =
+ onView(
+ allOf(
+ withText("Licensing information"),
+ withParent(
+ hasSibling(withId(R.id.icon_frame)),
+ ),
+ ),
+ )
+
+private val librariesUsedLink = onView(withText("Libraries that we use"))
+private val librariesUsedTitle = onView(withText("$appName | OSS Libraries"))
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsPrivacyMenuRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsPrivacyMenuRobot.kt
new file mode 100644
index 0000000000..7c549c4d36
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsPrivacyMenuRobot.kt
@@ -0,0 +1,741 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+@file:Suppress("TooManyFunctions")
+
+package org.mozilla.focus.activity.robots
+
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu
+import androidx.test.espresso.ViewInteraction
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers.isChecked
+import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
+import androidx.test.espresso.matcher.ViewMatchers.isEnabled
+import androidx.test.espresso.matcher.ViewMatchers.isNotChecked
+import androidx.test.espresso.matcher.ViewMatchers.withId
+import androidx.test.espresso.matcher.ViewMatchers.withText
+import androidx.test.uiautomator.UiScrollable
+import androidx.test.uiautomator.UiSelector
+import org.hamcrest.CoreMatchers.allOf
+import org.hamcrest.CoreMatchers.containsString
+import org.hamcrest.Matchers
+import org.junit.Assert.assertTrue
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.EspressoHelper.hasCousin
+import org.mozilla.focus.helpers.TestHelper.getStringResource
+import org.mozilla.focus.helpers.TestHelper.getTargetContext
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.packageName
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.helpers.TestHelper.waitingTimeShort
+
+class SettingsPrivacyMenuRobot {
+
+ fun verifyPrivacySettingsItems() {
+ privacySettingsList.waitForExists(waitingTime)
+ adTrackersBlockSwitch().check(matches(isDisplayed()))
+ assertAdTrackersBlockSwitchState()
+ analyticTrackersBlockSwitch().check(matches(isDisplayed()))
+ assertAnalyticTrackersBlockSwitchState()
+ socialTrackersBlockSwitch().check(matches(isDisplayed()))
+ assertSocialTrackersBlockSwitchState()
+ otherContentTrackersBlockSwitch().check(matches(isDisplayed()))
+ assertOtherContentTrackersBlockSwitchState()
+ blockWebFontsSwitch().check(matches(isDisplayed()))
+ assertBlockWebFontsSwitchState()
+ blockJavaScriptSwitch().check(matches(isDisplayed()))
+ assertBlockJavaScriptSwitchState()
+ assertTrue(cookiesAndSiteDataSection().exists())
+ assertTrue(blockCookiesMenuButton().exists())
+ assertTrue(blockCookiesDefaultOption().exists())
+ assertTrue(sitePermissions().exists())
+ verifyExceptionsListDisabled()
+ useFingerprintSwitch().check(matches(isDisplayed()))
+ assertUseFingerprintSwitchState()
+ stealthModeSwitch().check(matches(isDisplayed()))
+ assertStealthModeSwitchState()
+ safeBrowsingSwitch().check(matches(isDisplayed()))
+ assertSafeBrowsingSwitchState()
+ httpsOnlyModeSwitch().check(matches(isDisplayed()))
+ assertHttpsOnlyModeSwitchState()
+ sendDataSwitch().check(matches(isDisplayed()))
+ if (packageName != "org.mozilla.focus.debug") {
+ assertSendDataSwitchState(true)
+ } else {
+ assertSendDataSwitchState()
+ }
+ studiesOption().check(matches(isDisplayed()))
+ studiesDefaultOption().check(matches(isDisplayed()))
+ }
+
+ fun verifyCookiesAndSiteDataSection() {
+ privacySettingsList.waitForExists(waitingTime)
+ assertTrue(cookiesAndSiteDataSection().exists())
+ assertTrue(blockCookiesMenuButton().exists())
+ assertTrue(blockCookiesDefaultOption().exists())
+ assertTrue(sitePermissions().exists())
+ }
+
+ fun verifyBlockCookiesPrompt() {
+ assertTrue(blockCookiesPromptHeading.waitForExists(waitingTimeShort))
+ assertTrue(blockCookiesYesPleaseOption.waitForExists(waitingTimeShort))
+ assertTrue(block3rdPartyCookiesOnlyOption.waitForExists(waitingTimeShort))
+ assertTrue(block3rdPartyTrackerCookiesOnlyOption.waitForExists(waitingTimeShort))
+ assertTrue(blockCrossSiteCookiesOption.waitForExists(waitingTimeShort))
+ assertTrue(noThanksOption.waitForExists(waitingTimeShort))
+ assertTrue(cancelBlockCookiesPrompt.waitForExists(waitingTimeShort))
+ }
+
+ fun verifyBlockAdTrackersEnabled(enabled: Boolean) {
+ if (enabled) {
+ adTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ adTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+ }
+
+ fun verifyBlockAnalyticTrackersEnabled(enabled: Boolean) {
+ if (enabled) {
+ analyticTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ analyticTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+ }
+
+ fun verifyBlockSocialTrackersEnabled(enabled: Boolean) {
+ if (enabled) {
+ socialTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ socialTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+ }
+
+ fun verifyBlockOtherTrackersEnabled(shouldBeEnabled: Boolean) {
+ if (shouldBeEnabled) {
+ otherContentTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ otherContentTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+ }
+
+ fun clickAdTrackersBlockSwitch() = adTrackersBlockSwitch().perform(click())
+
+ fun clickAnalyticsTrackersBlockSwitch() = analyticTrackersBlockSwitch().perform(click())
+
+ fun clickSocialTrackersBlockSwitch() = socialTrackersBlockSwitch().perform(click())
+
+ fun clickOtherContentTrackersBlockSwitch() = otherContentTrackersBlockSwitch().perform(click())
+
+ fun clickBlockCookies() = blockCookiesMenuButton().click()
+
+ fun clickCancelBlockCookiesPrompt() {
+ cancelBlockCookiesPrompt.click()
+ mDevice.waitForIdle(waitingTimeShort)
+ }
+
+ fun clickYesPleaseOption() = blockCookiesYesPleaseOption.click()
+ fun clickBlockThirdPartyCookiesOnly() = block3rdPartyCookiesOnlyOption.click()
+
+ fun switchSafeBrowsingToggle(): ViewInteraction = safeBrowsingSwitch().perform(click())
+
+ fun verifyExceptionsListDisabled() {
+ exceptionsList()
+ .check(matches(Matchers.not(isEnabled())))
+ }
+
+ fun openExceptionsList() {
+ exceptionsList()
+ .check(matches(isEnabled()))
+ .perform(click())
+ }
+
+ fun verifyExceptionURL(url: String) {
+ onView(withId(R.id.domainView)).check(matches(withText(containsString(url))))
+ }
+
+ fun removeException() {
+ openActionBarOverflowOrOptionsMenu(getTargetContext)
+ onView(withText("Remove"))
+ .perform(click())
+ onView(withId(R.id.checkbox))
+ .perform(click())
+ onView(withId(R.id.remove))
+ .perform(click())
+ }
+
+ fun removeAllExceptions() {
+ onView(withId(R.id.removeAllExceptions))
+ .perform(click())
+ }
+
+ class Transition {
+ fun goBackToSettings(interact: SettingsRobot.() -> Unit): SettingsRobot.Transition {
+ mDevice.pressBack()
+
+ SettingsRobot().interact()
+ return SettingsRobot.Transition()
+ }
+
+ fun clickSitePermissionsSettings(interact: SettingsSitePermissionsRobot.() -> Unit): SettingsSitePermissionsRobot.Transition {
+ sitePermissions().waitForExists(waitingTime)
+ sitePermissions().click()
+
+ SettingsSitePermissionsRobot().interact()
+ return SettingsSitePermissionsRobot.Transition()
+ }
+ }
+}
+
+private val privacySettingsList =
+ UiScrollable(UiSelector().resourceId("$packageName:id/recycler_view"))
+
+private fun adTrackersBlockSwitch(): ViewInteraction {
+ privacySettingsList
+ .scrollTextIntoView("Block ad trackers")
+ return onView(withText("Block ad trackers"))
+}
+
+private fun assertAdTrackersBlockSwitchState(enabled: Boolean = true) {
+ if (enabled) {
+ adTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ adTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+}
+
+private fun analyticTrackersBlockSwitch(): ViewInteraction {
+ privacySettingsList
+ .scrollTextIntoView("Block analytic trackers")
+ return onView(withText("Block analytic trackers"))
+}
+
+private fun assertAnalyticTrackersBlockSwitchState(enabled: Boolean = true) {
+ if (enabled) {
+ analyticTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ analyticTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+}
+
+private fun socialTrackersBlockSwitch(): ViewInteraction {
+ privacySettingsList
+ .scrollTextIntoView("Block social trackers")
+ return onView(withText("Block social trackers"))
+}
+
+private fun assertSocialTrackersBlockSwitchState(enabled: Boolean = true) {
+ if (enabled) {
+ socialTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ socialTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+}
+
+private fun otherContentTrackersBlockSwitch(): ViewInteraction {
+ privacySettingsList
+ .scrollTextIntoView("Block other content trackers")
+ return onView(withText("Block other content trackers"))
+}
+
+private fun assertOtherContentTrackersBlockSwitchState(enabled: Boolean = false) {
+ if (enabled) {
+ otherContentTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ otherContentTrackersBlockSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+}
+
+private fun blockWebFontsSwitch(): ViewInteraction {
+ privacySettingsList
+ .scrollTextIntoView("Block web fonts")
+ return onView(withText("Block web fonts"))
+}
+
+private fun assertBlockWebFontsSwitchState(enabled: Boolean = false) {
+ if (enabled) {
+ blockWebFontsSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ blockWebFontsSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+}
+
+private fun blockJavaScriptSwitch(): ViewInteraction {
+ privacySettingsList
+ .scrollTextIntoView("Block JavaScript")
+ return onView(withText("Block JavaScript"))
+}
+
+private fun assertBlockJavaScriptSwitchState(enabled: Boolean = false) {
+ if (enabled) {
+ blockJavaScriptSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ blockJavaScriptSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+}
+
+private fun cookiesAndSiteDataSection() =
+ privacySettingsList
+ .getChildByText(
+ UiSelector().text("Cookies and Site Data"),
+ "Cookies and Site Data",
+ true,
+ )
+
+private fun blockCookiesMenuButton() =
+ privacySettingsList
+ .getChildByText(
+ UiSelector().text("Block cookies"),
+ "Block cookies",
+ true,
+ )
+
+private fun blockCookiesDefaultOption() =
+ privacySettingsList
+ .getChildByText(
+ UiSelector().text("Block cross-site cookies"),
+ "Block cross-site cookies",
+ true,
+ )
+
+private fun sitePermissions() =
+ privacySettingsList
+ .getChildByText(UiSelector().text("Site permissions"), "Site permissions", true)
+
+private fun useFingerprintSwitch(): ViewInteraction {
+ val useFingerprintSwitchSummary = getStringResource(R.string.preference_security_biometric_summary2)
+ privacySettingsList.scrollTextIntoView(useFingerprintSwitchSummary)
+ return onView(withText(useFingerprintSwitchSummary))
+}
+
+private fun assertUseFingerprintSwitchState(enabled: Boolean = false) {
+ if (enabled) {
+ useFingerprintSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ useFingerprintSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+}
+
+private fun stealthModeSwitch(): ViewInteraction {
+ val stealthModeSwitchSummary = getStringResource(R.string.preference_privacy_stealth_summary)
+ privacySettingsList.scrollTextIntoView(stealthModeSwitchSummary)
+ return onView(withText(stealthModeSwitchSummary))
+}
+
+private fun assertStealthModeSwitchState(enabled: Boolean = false) {
+ if (enabled) {
+ stealthModeSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ stealthModeSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+}
+
+private fun safeBrowsingSwitch(): ViewInteraction {
+ val safeBrowsingSwitchText =
+ mDevice.findObject(
+ UiSelector().text(
+ getStringResource(R.string.preference_safe_browsing_summary),
+ ),
+ )
+ privacySettingsList.scrollToEnd(3)
+ privacySettingsList.scrollIntoView(safeBrowsingSwitchText)
+ return onView(withText(getStringResource(R.string.preference_safe_browsing_summary)))
+}
+
+private fun assertSafeBrowsingSwitchState(enabled: Boolean = true) {
+ if (enabled) {
+ safeBrowsingSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ safeBrowsingSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+}
+
+private fun httpsOnlyModeSwitch(): ViewInteraction {
+ val httpsOnlyModeSwitchText = getStringResource(R.string.preference_https_only_title)
+ privacySettingsList.scrollTextIntoView(httpsOnlyModeSwitchText)
+ return onView(withText(httpsOnlyModeSwitchText))
+}
+
+private fun assertHttpsOnlyModeSwitchState(enabled: Boolean = true) {
+ if (enabled) {
+ httpsOnlyModeSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ httpsOnlyModeSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+}
+
+private fun sendDataSwitch(): ViewInteraction {
+ val sendDataSwitchSummary = getStringResource(R.string.preference_mozilla_telemetry_summary2)
+ privacySettingsList.scrollTextIntoView(sendDataSwitchSummary)
+ return onView(withText(sendDataSwitchSummary))
+}
+
+private fun assertSendDataSwitchState(enabled: Boolean = false) {
+ if (enabled) {
+ sendDataSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isChecked(),
+ ),
+ ),
+ ),
+ )
+ } else {
+ sendDataSwitch()
+ .check(
+ matches(
+ hasCousin(
+ allOf(
+ withId(R.id.switchWidget),
+ isNotChecked(),
+ ),
+ ),
+ ),
+ )
+ }
+}
+
+private fun studiesOption(): ViewInteraction {
+ val studies = getStringResource(R.string.preference_studies)
+ privacySettingsList.scrollTextIntoView(studies)
+ return onView(withText(R.string.preference_studies))
+}
+
+private fun studiesDefaultOption(): ViewInteraction {
+ privacySettingsList.scrollToEnd(3)
+ return onView(withText(R.string.preference_state_on))
+}
+
+private fun exceptionsList(): ViewInteraction {
+ val exceptionsTitle = getStringResource(R.string.preference_exceptions)
+ privacySettingsList.scrollTextIntoView(exceptionsTitle)
+ return onView(withText(exceptionsTitle))
+}
+
+private val blockCookiesPromptHeading =
+ mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/alertTitle")
+ .textContains(getStringResource(R.string.preference_block_cookies_title)),
+ )
+
+private val blockCookiesYesPleaseOption =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.preference_privacy_should_block_cookies_yes_option2)),
+ )
+
+private val block3rdPartyCookiesOnlyOption =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.preference_privacy_should_block_cookies_third_party_only_option)),
+ )
+
+private val block3rdPartyTrackerCookiesOnlyOption =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.preference_privacy_should_block_cookies_third_party_tracker_cookies_option)),
+ )
+
+private val blockCrossSiteCookiesOption =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.preference_privacy_should_block_cookies_cross_site_option)),
+ )
+
+private val noThanksOption =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.preference_privacy_should_block_cookies_no_option2)),
+ )
+
+private val cancelBlockCookiesPrompt =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.action_cancel)),
+ )
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsRobot.kt
new file mode 100644
index 0000000000..b29032d656
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsRobot.kt
@@ -0,0 +1,114 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity.robots
+
+import androidx.test.uiautomator.UiScrollable
+import androidx.test.uiautomator.UiSelector
+import org.junit.Assert.assertTrue
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.TestHelper.getStringResource
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.packageName
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+
+class SettingsRobot {
+
+ fun verifySettingsMenuItems() {
+ settingsMenuList.waitForExists(waitingTime)
+ assertTrue(generalSettingsMenu().exists())
+ assertTrue(searchSettingsMenu.exists())
+ assertTrue(privacySettingsMenu.exists())
+ assertTrue(advancedSettingsMenu.exists())
+ assertTrue(mozillaSettingsMenu.exists())
+ }
+
+ class Transition {
+ fun openSearchSettingsMenu(interact: SearchSettingsRobot.() -> Unit): SearchSettingsRobot.Transition {
+ searchSettingsMenu.waitForExists(waitingTime)
+ searchSettingsMenu.click()
+
+ SearchSettingsRobot().interact()
+ return SearchSettingsRobot.Transition()
+ }
+
+ fun openGeneralSettingsMenu(
+ localizedText: String = getStringResource(R.string.preference_category_general),
+ interact: SettingsGeneralMenuRobot.() -> Unit,
+ ): SettingsGeneralMenuRobot.Transition {
+ generalSettingsMenu(localizedText).waitForExists(waitingTime)
+ generalSettingsMenu(localizedText).click()
+
+ SettingsGeneralMenuRobot().interact()
+ return SettingsGeneralMenuRobot.Transition()
+ }
+
+ fun openPrivacySettingsMenu(
+ interact: SettingsPrivacyMenuRobot.() -> Unit,
+ ): SettingsPrivacyMenuRobot.Transition {
+ privacySettingsMenu.waitForExists(waitingTime)
+ privacySettingsMenu.click()
+
+ SettingsPrivacyMenuRobot().interact()
+ return SettingsPrivacyMenuRobot.Transition()
+ }
+
+ fun openAdvancedSettingsMenu(
+ interact: SettingsAdvancedMenuRobot.() -> Unit,
+ ): SettingsAdvancedMenuRobot.Transition {
+ advancedSettingsMenu.waitForExists(waitingTime)
+ advancedSettingsMenu.click()
+
+ SettingsAdvancedMenuRobot().interact()
+ return SettingsAdvancedMenuRobot.Transition()
+ }
+
+ fun openMozillaSettingsMenu(
+ interact: SettingsMozillaMenuRobot.() -> Unit,
+ ): SettingsMozillaMenuRobot.Transition {
+ mozillaSettingsMenu.waitForExists(waitingTime)
+ mozillaSettingsMenu.click()
+
+ SettingsMozillaMenuRobot().interact()
+ return SettingsMozillaMenuRobot.Transition()
+ }
+
+ fun goBackToHomeScreen(
+ interact: SearchRobot.() -> Unit,
+ ): SearchRobot.Transition {
+ mDevice.pressBack()
+
+ SearchRobot().interact()
+ return SearchRobot.Transition()
+ }
+ }
+}
+
+private val settingsMenuList =
+ UiScrollable(UiSelector().resourceId("$packageName:id/recycler_view"))
+
+private fun generalSettingsMenu(localizedText: String = getStringResource(R.string.preference_category_general)) =
+ settingsMenuList.getChild(
+ UiSelector()
+ .text(localizedText),
+ )
+
+private val searchSettingsMenu = settingsMenuList.getChild(
+ UiSelector()
+ .text(getStringResource(R.string.preference_category_search)),
+)
+
+private val privacySettingsMenu = settingsMenuList.getChild(
+ UiSelector()
+ .text(getStringResource(R.string.preference_privacy_and_security_header)),
+)
+
+private val advancedSettingsMenu = settingsMenuList.getChild(
+ UiSelector()
+ .text(getStringResource(R.string.preference_category_advanced)),
+)
+
+private val mozillaSettingsMenu = settingsMenuList.getChild(
+ UiSelector()
+ .text(getStringResource(R.string.preference_mozilla_summary)),
+)
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsSearchMenuRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsSearchMenuRobot.kt
new file mode 100644
index 0000000000..f96d01fbd0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsSearchMenuRobot.kt
@@ -0,0 +1,169 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity.robots
+
+import androidx.test.espresso.Espresso
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.action.ViewActions.typeText
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
+import androidx.test.espresso.matcher.ViewMatchers.withId
+import androidx.test.espresso.matcher.ViewMatchers.withText
+import androidx.test.uiautomator.UiObject
+import androidx.test.uiautomator.UiScrollable
+import androidx.test.uiautomator.UiSelector
+import org.junit.Assert.assertFalse
+import org.junit.Assert.assertTrue
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.TestHelper.getStringResource
+import org.mozilla.focus.helpers.TestHelper.getTargetContext
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.packageName
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+
+class SearchSettingsRobot {
+
+ fun verifySearchSettingsItems() {
+ assertTrue(searchEngineSubMenu.exists())
+ assertTrue(searchEngineDefaultOption.exists())
+ assertTrue(searchSuggestionsHeading.exists())
+ assertTrue(searchSuggestionDescription.exists())
+ verifySearchSuggestionsSwitchState()
+ assertTrue(searchSuggestionLearnMoreLink.exists())
+ assertTrue(urlAutocompleteSubMenu.exists())
+ assertTrue(urlAutocompleteDefaultOption.exists())
+ }
+
+ fun openSearchEngineSubMenu() {
+ searchEngineSubMenu.waitForExists(waitingTime)
+ searchEngineSubMenu.click()
+ }
+
+ fun selectSearchEngine(engineName: String) {
+ searchEngineList.waitForExists(waitingTime)
+ searchEngineList
+ .getChild(UiSelector().text(engineName))
+ .click()
+ }
+
+ fun clickSearchSuggestionsSwitch() {
+ searchSuggestionsSwitch.waitForExists(waitingTime)
+ searchSuggestionsSwitch.click()
+ }
+
+ fun verifySearchSuggestionsSwitchState(enabled: Boolean = false) {
+ if (enabled) {
+ assertTrue(searchSuggestionsSwitch.isChecked)
+ } else {
+ assertFalse(searchSuggestionsSwitch.isChecked)
+ }
+ }
+
+ fun openUrlAutocompleteSubMenu() {
+ urlAutocompleteSubMenu.waitForExists(waitingTime)
+ urlAutocompleteSubMenu.click()
+ }
+
+ fun openManageSitesSubMenu() {
+ manageSitesSubMenu.check(matches(isDisplayed()))
+ manageSitesSubMenu.perform(click())
+ }
+
+ fun openAddCustomUrlDialog() {
+ addCustomUrlButton.check(matches(isDisplayed()))
+ addCustomUrlButton.perform(click())
+ }
+
+ fun enterCustomUrl(url: String) {
+ customUrlText.check(matches(isDisplayed()))
+ customUrlText.perform(typeText(url))
+ }
+
+ fun saveCustomUrl() = saveButton.perform(click())
+
+ fun verifySavedCustomURL(url: String) {
+ customUrlText.check(matches(withText(url)))
+ }
+
+ fun removeCustomUrl() {
+ Espresso.openActionBarOverflowOrOptionsMenu(getTargetContext)
+ onView(withText(R.string.preference_autocomplete_menu_remove)).perform(click())
+ customUrlText.perform(click())
+ onView(withId(R.id.remove)).perform(click())
+ }
+
+ fun verifyCustomUrlDialogNotClosed() {
+ saveButton.check(matches(isDisplayed()))
+ }
+
+ fun toggleCustomAutocomplete() {
+ onView(withText(R.string.preference_switch_autocomplete_user_list)).perform(click())
+ }
+
+ fun toggleTopSitesAutocomplete() {
+ onView(withText(R.string.preference_switch_autocomplete_topsites)).perform(click())
+ }
+
+ class Transition
+}
+
+private val searchEngineSubMenu =
+ UiScrollable(UiSelector().resourceId("$packageName:id/recycler_view"))
+ .getChild(UiSelector().text(getStringResource(R.string.preference_search_engine_label)))
+
+private val searchEngineDefaultOption =
+ mDevice.findObject(UiSelector().textContains("Google"))
+
+private val searchEngineList = UiScrollable(
+ UiSelector()
+ .resourceId("$packageName:id/search_engine_group").enabled(true),
+)
+
+private val searchSuggestionsHeading: UiObject =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.preference_show_search_suggestions)),
+ )
+
+private val searchSuggestionDescription: UiObject =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.preference_show_search_suggestions_summary)),
+ )
+
+private val searchSuggestionLearnMoreLink: UiObject =
+ mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/link"),
+ )
+
+private val searchSuggestionsSwitch: UiObject =
+ mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/switchWidget"),
+ )
+
+private val urlAutocompleteSubMenu =
+ UiScrollable(UiSelector().resourceId("$packageName:id/recycler_view"))
+ .getChildByText(
+ UiSelector().text(getStringResource(R.string.preference_subitem_autocomplete)),
+ getStringResource(R.string.preference_subitem_autocomplete),
+ true,
+ )
+
+private val urlAutocompleteDefaultOption =
+ mDevice.findObject(
+ UiSelector()
+ .textContains(getStringResource(R.string.preference_state_on)),
+ )
+
+private val manageSitesSubMenu = onView(withText(R.string.preference_autocomplete_subitem_manage_sites))
+
+private val addCustomUrlButton = onView(withText(R.string.preference_autocomplete_action_add))
+
+private val customUrlText = onView(withId(R.id.domainView))
+
+private val saveButton = onView(withId(R.id.save))
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsSitePermissionsRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsSitePermissionsRobot.kt
new file mode 100644
index 0000000000..e1bc361186
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SettingsSitePermissionsRobot.kt
@@ -0,0 +1,166 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity.robots
+
+import androidx.test.uiautomator.UiSelector
+import org.junit.Assert.assertTrue
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.TestHelper.getStringResource
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+
+class SettingsSitePermissionsRobot {
+
+ fun verifySitePermissionsItems() {
+ assertTrue(autoplaySettings.waitForExists(waitingTime))
+ assertTrue(autoplayDefaultValue.exists())
+ assertTrue(cameraPermissionsSettings.exists())
+ assertTrue(cameraDefaultValue.exists())
+ assertTrue(locationPermissionsSettings.exists())
+ assertTrue(locationDefaultValue.exists())
+ assertTrue(microphonePermissionsSettings.exists())
+ assertTrue(microphoneDefaultValue.exists())
+ assertTrue(notificationPermissionsSettings.exists())
+ assertTrue(notificationDefaultValue.exists())
+ assertTrue(DRMContentPermissionsSettings.exists())
+ assertTrue(DRMContentDefaultValue.exists())
+ }
+
+ fun verifyAutoplaySection() {
+ assertTrue(autoplayAllowAudioAndVideoOption.exists())
+ assertTrue(autoplayBlockAudioOnlyOption.exists())
+ assertTrue(recommendedDescription.exists())
+ assertBlockAudioOnlyIsChecked()
+ assertTrue(blockAudioAndVideoOption.exists())
+ }
+
+ fun openAutoPlaySettings() {
+ autoplaySettings.waitForExists(waitingTime)
+ autoplaySettings.click()
+ }
+
+ fun openCameraPermissionsSettings() {
+ cameraPermissionsSettings.waitForExists(waitingTime)
+ cameraPermissionsSettings.click()
+ }
+
+ fun openLocationPermissionsSettings() {
+ locationPermissionsSettings.waitForExists(waitingTime)
+ locationPermissionsSettings.click()
+ }
+
+ fun verifyAskToAllowChecked() {
+ askToAllowRadioButton.waitForExists(waitingTime)
+ assertTrue(askToAllowRadioButton.isChecked)
+ }
+
+ fun verifyPermissionsStateSettings() {
+ assertTrue(askToAllowRadioButton.waitForExists(waitingTime))
+ assertTrue(blockedRadioButton.waitForExists(waitingTime))
+ }
+
+ fun verifyBlockedByAndroidState() {
+ assertTrue(blockedByAndroidInfo.waitForExists(waitingTime))
+ assertTrue(goToSettingsButton.waitForExists(waitingTime))
+ }
+
+ fun selectBlockAudioVideoAutoplay() {
+ blockAudioAndVideoOption.waitForExists(waitingTime)
+ blockAudioAndVideoOption.click()
+ }
+
+ fun selectAllowAudioVideoAutoplay() {
+ autoplayAllowAudioAndVideoOption.waitForExists(waitingTime)
+ autoplayAllowAudioAndVideoOption.click()
+ }
+
+ class Transition
+}
+
+private val autoplaySettings =
+ mDevice.findObject(
+ UiSelector().text(getStringResource(R.string.preference_autoplay)),
+ )
+
+private val autoplayDefaultValue =
+ mDevice.findObject(
+ UiSelector().text(getStringResource(R.string.preference_block_autoplay_audio_only)),
+ )
+
+private val autoplayAllowAudioAndVideoOption =
+ mDevice.findObject(UiSelector().text(getStringResource(R.string.preference_allow_audio_video_autoplay)))
+
+private val autoplayBlockAudioOnlyOption =
+ mDevice.findObject(UiSelector().text(getStringResource(R.string.preference_block_autoplay_audio_only)))
+
+private val recommendedDescription =
+ mDevice.findObject(UiSelector().text(getStringResource(R.string.preference_block_autoplay_audio_only_summary)))
+
+private val blockAudioAndVideoOption =
+ mDevice.findObject(UiSelector().text(getStringResource(R.string.preference_block_autoplay_audio_video)))
+
+private fun assertBlockAudioOnlyIsChecked() {
+ // the childSelector doesn't work anymore, so we are unable to find it by text
+ val radioButton =
+ mDevice.findObject(
+ UiSelector()
+ .checkable(true)
+ .index(1),
+ )
+ assertTrue(radioButton.isChecked)
+}
+
+private val locationPermissionsSettings =
+ mDevice.findObject(UiSelector().text("Location"))
+
+private val locationDefaultValue =
+ mDevice.findObject(UiSelector().text("Location"))
+ .getFromParent(UiSelector().text("Blocked by Android"))
+
+private val cameraPermissionsSettings =
+ mDevice.findObject(UiSelector().text("Camera"))
+
+private val cameraDefaultValue =
+ mDevice.findObject(UiSelector().text("Camera"))
+ .getFromParent(UiSelector().text("Blocked by Android"))
+
+private val microphonePermissionsSettings =
+ mDevice.findObject(UiSelector().text("Microphone"))
+
+private val microphoneDefaultValue =
+ mDevice.findObject(UiSelector().text("Microphone"))
+ .getFromParent(UiSelector().text("Blocked by Android"))
+
+private val notificationPermissionsSettings =
+ mDevice.findObject(UiSelector().text("Notification"))
+
+private val notificationDefaultValue =
+ mDevice.findObject(UiSelector().text("Notification"))
+ .getFromParent(UiSelector().text("Ask to allow"))
+
+private val DRMContentPermissionsSettings =
+ mDevice.findObject(UiSelector().text("DRM-controlled content"))
+
+private val DRMContentDefaultValue =
+ mDevice.findObject(UiSelector().text("DRM-controlled content"))
+ .getFromParent(UiSelector().text("Ask to allow"))
+
+private val askToAllowRadioButton =
+ // the childSelector doesn't work anymore, so we are unable to find it by text
+ mDevice.findObject(
+ UiSelector()
+ .checkable(true)
+ .index(0),
+ )
+
+private val blockedRadioButton =
+ mDevice.findObject(UiSelector().text("Blocked"))
+ .getFromParent(UiSelector().className("android.widget.RadioButton"))
+
+private val blockedByAndroidInfo =
+ mDevice.findObject(UiSelector().text("Blocked by Android"))
+
+private val goToSettingsButton =
+ mDevice.findObject(UiSelector().text("Go to Settings"))
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SiteSecurityInfoSheetRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SiteSecurityInfoSheetRobot.kt
new file mode 100644
index 0000000000..243e0f8d8d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/SiteSecurityInfoSheetRobot.kt
@@ -0,0 +1,75 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity.robots
+
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.RootMatchers.isDialog
+import androidx.test.espresso.matcher.ViewMatchers.hasSibling
+import androidx.test.espresso.matcher.ViewMatchers.isChecked
+import androidx.test.espresso.matcher.ViewMatchers.withId
+import androidx.test.espresso.matcher.ViewMatchers.withText
+import androidx.test.uiautomator.UiSelector
+import org.hamcrest.Matchers.allOf
+import org.hamcrest.Matchers.not
+import org.junit.Assert.assertTrue
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.packageName
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+
+class SiteSecurityInfoSheetRobot {
+
+ fun verifySiteConnectionInfoIsSecure(isSecure: Boolean) {
+ assertTrue(site_security_info.waitForExists(waitingTime))
+ assertTrue(site_identity_title.exists())
+ assertTrue(site_identity_Icon.exists())
+ if (isSecure) {
+ assertTrue(site_security_info.text.equals("Connection is secure"))
+ } else {
+ assertTrue(site_security_info.text.equals("Connection is not secure"))
+ }
+ }
+
+ fun verifyTrackingProtectionIsEnabled(enabled: Boolean) {
+ if (enabled) {
+ trackingProtectionSwitch.check(matches(isChecked()))
+ } else {
+ trackingProtectionSwitch.check(matches(not(isChecked())))
+ }
+ }
+
+ class Transition {
+ fun closeSecurityInfoSheet(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ mDevice.pressBack()
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun clickTrackingProtectionSwitch(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ trackingProtectionSwitch.perform(click())
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+ }
+}
+
+private val site_security_info = mDevice.findObject(UiSelector().resourceId("$packageName:id/security_info"))
+
+private val site_identity_title =
+ mDevice.findObject(UiSelector().resourceId("$packageName:id/site_title"))
+
+private val site_identity_Icon =
+ mDevice.findObject(UiSelector().resourceId("$packageName:id/site_favicon"))
+
+private val trackingProtectionSwitch =
+ onView(
+ allOf(
+ withId(R.id.switch_widget),
+ hasSibling(withText("Enhanced Tracking Protection")),
+ ),
+ ).inRoot(isDialog())
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/TabsTrayRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/TabsTrayRobot.kt
new file mode 100644
index 0000000000..d99d704b56
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/TabsTrayRobot.kt
@@ -0,0 +1,69 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity.robots
+
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers.hasSibling
+import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
+import androidx.test.espresso.matcher.ViewMatchers.withId
+import androidx.test.espresso.matcher.ViewMatchers.withText
+import androidx.test.uiautomator.UiSelector
+import org.hamcrest.Matchers.allOf
+import org.hamcrest.Matchers.containsString
+import org.junit.Assert.assertTrue
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.packageName
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.helpers.TestHelper.waitingTimeShort
+
+class TabsTrayRobot {
+ fun verifyTabsOrder(vararg tabTitle: String) {
+ for (tab in tabTitle.indices) {
+ assertTrue(
+ mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/session_item")
+ .index(tab)
+ .childSelector(UiSelector().textContains(tabTitle[tab])),
+ ).waitForExists(waitingTime),
+ )
+ }
+ }
+
+ fun verifyCloseTabButton(tabTitle: String) = closeTabButton(tabTitle).check(matches(isDisplayed()))
+
+ class Transition {
+ fun selectTab(tabTitle: String, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ onView(withText(containsString(tabTitle))).perform(click())
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun closeTab(tabTitle: String, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ closeTabButton(tabTitle).perform(click())
+ // waiting for the tab to be completely gone before trying other actions on the toolbar
+ mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/mozac_browser_toolbar_url_view")
+ .textContains(tabTitle),
+ ).waitUntilGone(waitingTimeShort)
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+ }
+}
+
+private fun closeTabButton(tabTitle: String) =
+ onView(
+ allOf(
+ withId(R.id.close_button),
+ hasSibling(withText(containsString(tabTitle))),
+ ),
+ )
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/ThreeDotMainMenuRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/ThreeDotMainMenuRobot.kt
new file mode 100644
index 0000000000..6bb650dc34
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/ThreeDotMainMenuRobot.kt
@@ -0,0 +1,238 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity.robots
+
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers
+import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
+import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility
+import androidx.test.espresso.matcher.ViewMatchers.withText
+import androidx.test.uiautomator.By
+import androidx.test.uiautomator.UiSelector
+import androidx.test.uiautomator.Until
+import junit.framework.TestCase.assertTrue
+import org.hamcrest.Matchers.allOf
+import org.junit.Assert.assertFalse
+import org.mozilla.focus.R
+import org.mozilla.focus.helpers.TestHelper.getStringResource
+import org.mozilla.focus.helpers.TestHelper.mDevice
+import org.mozilla.focus.helpers.TestHelper.packageName
+import org.mozilla.focus.helpers.TestHelper.progressBar
+import org.mozilla.focus.helpers.TestHelper.waitingTime
+import org.mozilla.focus.helpers.TestHelper.waitingTimeShort
+
+class ThreeDotMainMenuRobot {
+
+ fun verifyShareButtonExists() = assertTrue(shareBtn.exists())
+
+ fun verifyAddToHomeButtonExists() = assertTrue(addToHomeButton.exists())
+
+ fun verifyFindInPageExists() = findInPageButton.check(matches(isDisplayed()))
+
+ fun verifyOpenInButtonExists() = assertTrue(openInBtn.exists())
+
+ fun verifyRequestDesktopSiteExists() = assertTrue(requestDesktopSiteButton.exists())
+
+ fun verifyRequestDesktopSiteIsEnabled(expectedState: Boolean) {
+ if (expectedState) {
+ assertTrue(requestDesktopSiteButton.isChecked)
+ } else {
+ assertFalse(requestDesktopSiteButton.isChecked)
+ }
+ }
+
+ fun verifySettingsButtonExists() = settingsMenuButton().check(matches(isDisplayed()))
+
+ fun verifyReportSiteIssueButtonExists() {
+ // Report Site Issue lazily appears, so we need to wait
+ val reportSiteIssueButton = mDevice.wait(
+ Until.hasObject(
+ By.res("$packageName:id/mozac_browser_menu_menuView").hasDescendant(
+ By.text("Report Site Issue…"),
+ ),
+ ),
+ waitingTime,
+ )
+
+ assertTrue(reportSiteIssueButton)
+ }
+
+ fun verifyHelpPageLinkExists() = helpPageMenuLink.check(matches(isDisplayed()))
+
+ fun clickOpenInOption() {
+ openInBtn.waitForExists(waitingTime)
+ openInBtn.click()
+ }
+
+ fun verifyOpenInDialog() {
+ assertTrue(openInDialogTitle.waitForExists(waitingTime))
+ assertTrue(openWithList.waitForExists(waitingTime))
+ }
+
+ fun clickOpenInChrome() {
+ val chromeBrowser = mDevice.findObject(UiSelector().text("Chrome"))
+ if (chromeBrowser.exists()) {
+ chromeBrowser.click()
+ }
+ }
+
+ fun clickAddToShortcuts() {
+ addShortcutButton.waitForExists(waitingTimeShort)
+ addShortcutButton.click()
+ }
+
+ class Transition {
+ fun openSettings(
+ localizedText: String = getStringResource(R.string.menu_settings),
+ interact: SettingsRobot.() -> Unit,
+ ): SettingsRobot.Transition {
+ mDevice.findObject(UiSelector().text(localizedText)).waitForExists(waitingTime)
+ settingsMenuButton(localizedText)
+ .check(matches(isDisplayed()))
+ .perform(click())
+
+ SettingsRobot().interact()
+ return SettingsRobot.Transition()
+ }
+
+ fun openShareScreen(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ shareBtn.waitForExists(waitingTime)
+ shareBtn.click()
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun openAddToHSDialog(interact: AddToHomeScreenRobot.() -> Unit): AddToHomeScreenRobot.Transition {
+ addToHomeButton.waitForExists(waitingTime)
+ addToHomeButton.click()
+
+ AddToHomeScreenRobot().interact()
+ return AddToHomeScreenRobot.Transition()
+ }
+
+ fun clickHelpPageLink(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ helpPageMenuLink
+ .check(matches(isDisplayed()))
+ .perform(click())
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun clickReloadButton(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ reloadButton.click()
+ progressBar.waitUntilGone(waitingTime)
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun clickStopLoadingButton(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ stopLoadingButton.click()
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun openFindInPage(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ findInPageButton.perform(click())
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun switchDesktopSiteMode(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ requestDesktopSiteButton.waitForExists(waitingTime)
+ requestDesktopSiteButton.click()
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun pressBack(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ backButton.click()
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+
+ fun pressForward(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
+ forwardButton.click()
+
+ BrowserRobot().interact()
+ return BrowserRobot.Transition()
+ }
+ }
+}
+
+private fun settingsMenuButton(localizedText: String = "Settings") =
+ onView(
+ allOf(withText(localizedText), withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)),
+ )
+
+private val shareBtn = mDevice.findObject(
+ UiSelector()
+ .description("Share…"),
+)
+
+private val addShortcutButton =
+ mDevice.findObject(
+ UiSelector()
+ .text("Add to Shortcuts"),
+ )
+
+private val reloadButton = mDevice.findObject(
+ UiSelector()
+ .description("Reload website"),
+)
+
+private val stopLoadingButton = mDevice.findObject(
+ UiSelector()
+ .description("Stop loading website"),
+)
+
+private val addToHomeButton = mDevice.findObject(
+ UiSelector()
+ .text("Add to Home screen"),
+)
+
+private val findInPageButton = onView(withText("Find in Page"))
+
+private val helpPageMenuLink = onView(withText("Help"))
+
+private val openInBtn = mDevice.findObject(
+ UiSelector()
+ .text("Open in…"),
+)
+
+private val openInDialogTitle = mDevice.findObject(
+ UiSelector()
+ .text("Open in…"),
+)
+
+private val openWithList = mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/apps"),
+)
+
+private val requestDesktopSiteButton =
+ mDevice.findObject(
+ UiSelector()
+ .resourceId("$packageName:id/switch_widget"),
+ )
+
+private val backButton =
+ mDevice.findObject(
+ UiSelector()
+ .description("Navigate back"),
+ )
+
+private val forwardButton =
+ mDevice.findObject(
+ UiSelector()
+ .description("Navigate forward"),
+ )
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/Constants.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/Constants.kt
new file mode 100644
index 0000000000..81d273a294
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/Constants.kt
@@ -0,0 +1,9 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.helpers
+
+object Constants {
+ const val RETRY_COUNT = 3
+ const val LONG_CLICK_DURATION: Long = 5000
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/DeleteFilesHelper.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/DeleteFilesHelper.kt
new file mode 100644
index 0000000000..85c2a76842
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/DeleteFilesHelper.kt
@@ -0,0 +1,52 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.helpers
+
+import android.content.Context
+import android.database.Cursor
+import android.net.Uri
+import android.provider.MediaStore
+import android.util.Log
+import androidx.core.net.toUri
+
+object DeleteFilesHelper {
+ fun deleteFileUsingDisplayName(context: Context, displayName: String): Boolean {
+ val uri = getUriFromDisplayName(context, displayName)
+ if (uri != null) {
+ val resolver = context.contentResolver
+ val selectionArgs = arrayOf(displayName)
+ resolver.delete(
+ uri,
+ MediaStore.Files.FileColumns.DISPLAY_NAME + "=?",
+ selectionArgs,
+ )
+ Log.d("TestLog", "Download file deleted")
+ return true
+ }
+ Log.d("TestLog", "Download file could not be found")
+ return false
+ }
+
+ private fun getUriFromDisplayName(context: Context, displayName: String): Uri? {
+ val projection = arrayOf(MediaStore.Files.FileColumns._ID)
+ val extUri: Uri = MediaStore.Files.getContentUri("external")
+ val cursor: Cursor = context.contentResolver.query(
+ extUri,
+ projection,
+ MediaStore.Files.FileColumns.DISPLAY_NAME + " LIKE ?",
+ arrayOf(displayName),
+ null,
+ )!!
+ cursor.moveToFirst()
+ return if (cursor.count > 0) {
+ val columnIndex: Int = cursor.getColumnIndex(projection[0])
+ val fileId: Long = cursor.getLong(columnIndex)
+ cursor.close()
+ "$extUri/$fileId".toUri()
+ } else {
+ null
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/EspressoHelper.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/EspressoHelper.kt
new file mode 100644
index 0000000000..78a4b64cdb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/EspressoHelper.kt
@@ -0,0 +1,84 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.helpers
+
+import android.view.View
+import android.view.ViewGroup
+import androidx.annotation.StringRes
+import androidx.test.espresso.Espresso
+import androidx.test.espresso.action.ViewActions
+import androidx.test.espresso.assertion.ViewAssertions
+import androidx.test.espresso.matcher.ViewMatchers
+import androidx.test.espresso.matcher.ViewMatchers.hasSibling
+import androidx.test.espresso.matcher.ViewMatchers.withChild
+import androidx.test.espresso.matcher.ViewMatchers.withParent
+import org.hamcrest.Description
+import org.hamcrest.Matcher
+import org.hamcrest.Matchers
+import org.hamcrest.TypeSafeMatcher
+import org.mozilla.focus.R
+
+/**
+ * Some convenient methods for testing Focus with espresso.
+ */
+object EspressoHelper {
+ fun hasCousin(matcher: Matcher<View>): Matcher<View> {
+ return withParent(
+ hasSibling(
+ withChild(
+ matcher,
+ ),
+ ),
+ )
+ }
+
+ @JvmStatic
+ fun openSettings() {
+ openMenu()
+ Espresso.onView(ViewMatchers.withId(R.id.settings))
+ .check(ViewAssertions.matches(ViewMatchers.isDisplayed()))
+ .perform(ViewActions.click())
+ assertToolbarMatchesText(R.string.menu_settings)
+ }
+
+ @JvmStatic
+ fun openMenu() {
+ Espresso.onView(ViewMatchers.withId(R.id.menuView))
+ .check(ViewAssertions.matches(ViewMatchers.isDisplayed()))
+ .perform(ViewActions.click())
+ }
+
+ @JvmStatic
+ fun assertToolbarMatchesText(@StringRes titleResource: Int) {
+ Espresso.onView(
+ Matchers.allOf(
+ ViewMatchers.withClassName(Matchers.endsWith("TextView")),
+ ViewMatchers.withParent(ViewMatchers.withId(R.id.toolbar)),
+ ),
+ )
+ .check(ViewAssertions.matches(ViewMatchers.isDisplayed()))
+ .check(ViewAssertions.matches(ViewMatchers.withText(titleResource)))
+ }
+
+ @JvmStatic
+ fun childAtPosition(
+ parentMatcher: Matcher<View?>,
+ position: Int,
+ ): Matcher<View> {
+ return object : TypeSafeMatcher<View>() {
+ override fun describeTo(description: Description) {
+ description.appendText("Child at position $position in parent ")
+ parentMatcher.describeTo(description)
+ }
+
+ public override fun matchesSafely(view: View): Boolean {
+ val parent = view.parent
+ return (
+ parent is ViewGroup && parentMatcher.matches(parent) &&
+ view == parent.getChildAt(position)
+ )
+ }
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/FeatureSettingsHelper.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/FeatureSettingsHelper.kt
new file mode 100644
index 0000000000..b0bf3f3db0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/FeatureSettingsHelper.kt
@@ -0,0 +1,51 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.helpers
+
+import android.content.Context
+import androidx.test.platform.app.InstrumentationRegistry
+import org.mozilla.focus.cookiebanner.CookieBannerOption
+import org.mozilla.focus.ext.settings
+
+class FeatureSettingsHelper {
+ val context: Context = InstrumentationRegistry.getInstrumentation().targetContext
+ private val settings = context.settings
+
+ // saving default values of feature flags
+ private var shouldShowCfrForTrackingProtection: Boolean =
+ settings.shouldShowCfrForTrackingProtection
+
+ fun setCfrForTrackingProtectionEnabled(enabled: Boolean) {
+ settings.shouldShowCfrForTrackingProtection = enabled
+ }
+
+ fun setShowStartBrowsingCfrEnabled(enabled: Boolean) {
+ settings.shouldShowStartBrowsingCfr = enabled
+ }
+
+ fun setCookieBannerReductionEnabled(enabled: Boolean) {
+ settings.isCookieBannerEnable = enabled
+ if (enabled) {
+ settings.saveCurrentCookieBannerOptionInSharePref(CookieBannerOption.CookieBannerRejectAll())
+ } else {
+ settings.saveCurrentCookieBannerOptionInSharePref(CookieBannerOption.CookieBannerDisabled())
+ }
+ }
+
+ fun setSearchWidgetDialogEnabled(enabled: Boolean) {
+ if (enabled) {
+ settings.addClearBrowsingSessions(4)
+ } else {
+ settings.addClearBrowsingSessions(10)
+ }
+ }
+
+ // Important:
+ // Use this after each test if you have modified these feature settings
+ // to make sure the app goes back to the default state
+ fun resetAllFeatureFlags() {
+ settings.shouldShowCfrForTrackingProtection = shouldShowCfrForTrackingProtection
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/HostScreencapScreenshotStrategy.java b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/HostScreencapScreenshotStrategy.java
new file mode 100644
index 0000000000..1a8428218e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/HostScreencapScreenshotStrategy.java
@@ -0,0 +1,116 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.helpers;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import androidx.test.InstrumentationRegistry;
+import androidx.test.uiautomator.UiDevice;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.ConnectException;
+import java.net.HttpURLConnection;
+import java.net.SocketTimeoutException;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+
+import tools.fastlane.screengrab.ScreenshotCallback;
+import tools.fastlane.screengrab.ScreenshotStrategy;
+
+/**
+ * This ScreenshotStrategy implementation pings the host system (the computer the emulator is
+ * running on) to take a screenshot using "screencap" via adb. After that the screenshot is read
+ * from the internal app storage and passed back to fastlane/screengrab using the provided callback.
+ */
+public class HostScreencapScreenshotStrategy implements ScreenshotStrategy {
+ private static final int CONNECT_TIMEOUT = 1000;
+ private static final int READ_TIMEOUT = 5000;
+ private static final String HOST_LOOPBACK = "10.0.2.2";
+ private static final int PORT = 9771;
+
+ private UiDevice device;
+
+ public HostScreencapScreenshotStrategy(UiDevice device) {
+ this.device = device;
+ }
+
+ @Override
+ public void takeScreenshot(String screenshotName, ScreenshotCallback screenshotCallback) {
+ device.waitForIdle();
+
+ takeScreenshotViaHost(screenshotName);
+
+ Bitmap bitmap = readScreenshotFromStorage();
+
+ if (bitmap == null) {
+ bitmap = createDummyScreenShot();
+ }
+
+ screenshotCallback.screenshotCaptured(screenshotName, bitmap);
+ }
+
+ private void takeScreenshotViaHost(String name) {
+ try {
+ final HttpURLConnection connection = (HttpURLConnection) new URL("http://" + HOST_LOOPBACK + ":" + PORT + "/" + name).openConnection();
+ connection.setConnectTimeout(CONNECT_TIMEOUT);
+ connection.setReadTimeout(READ_TIMEOUT);
+
+ try (final InputStream stream = connection.getInputStream()) {
+ final String response = readInput(stream);
+ stream.close();
+ connection.disconnect();
+
+ if (!"screenshot, exit=0".equals(response)) {
+ throw new RuntimeException("Taking screenshot failed, response: " + response);
+ }
+ }
+ } catch (ConnectException | SocketTimeoutException e) {
+ // We ignore those two exceptions because they occur if the http server on the host
+ // system is not running and we want to be able to execute this test even if we are
+ // not taking screenshots with fastlane. By running this test whenever we run the
+ // other UI tests we make sure that this test doesn't break without us noticing.
+ } catch (IOException e) {
+ throw new RuntimeException("Taking screenshot failed", e);
+ }
+ }
+
+ private Bitmap readScreenshotFromStorage() {
+ final Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
+
+ final String screenshotPath = new File(context.getFilesDir(), "temp_screen.png").getAbsolutePath();
+
+ final BitmapFactory.Options options = new BitmapFactory.Options();
+ options.inPreferredConfig = Bitmap.Config.ARGB_8888;
+
+ return BitmapFactory.decodeFile(screenshotPath);
+ }
+
+ private Bitmap createDummyScreenShot() {
+ final Bitmap bitmap = Bitmap.createBitmap(480, 800, Bitmap.Config.ARGB_8888);
+ final Canvas canvas = new Canvas(bitmap);
+ canvas.drawColor(Color.MAGENTA);
+ return bitmap;
+ }
+
+ private static String readInput(InputStream stream) throws IOException {
+ try (final BufferedReader reader = new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8))) {
+ final StringBuilder builder = new StringBuilder();
+ String line;
+
+ while ((line = reader.readLine()) != null) {
+ builder.append(line);
+ }
+
+ return builder.toString();
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/MainActivityTestRule.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/MainActivityTestRule.kt
new file mode 100644
index 0000000000..b0d670421e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/MainActivityTestRule.kt
@@ -0,0 +1,151 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+@file:Suppress("DEPRECATION")
+
+package org.mozilla.focus.helpers
+
+import android.view.ViewConfiguration.getLongPressTimeout
+import androidx.annotation.CallSuper
+import androidx.test.espresso.intent.rule.IntentsTestRule
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.rule.ActivityTestRule
+import androidx.test.uiautomator.UiDevice
+import androidx.test.uiautomator.UiSelector
+import kotlinx.coroutines.runBlocking
+import mozilla.components.support.utils.ThreadUtils
+import org.mozilla.focus.activity.MainActivity
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.helpers.TestHelper.getTargetContext
+import org.mozilla.focus.helpers.TestHelper.pressBackKey
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.AppStore
+import org.mozilla.focus.state.Screen
+
+// Basic Test rule with pref to skip the onboarding screen
+open class MainActivityFirstrunTestRule(
+ launchActivity: Boolean = true,
+ private val showFirstRun: Boolean,
+ private val showNewOnboarding: Boolean = true,
+ private val showStartBrowsingCfrVisibility: Boolean = false,
+) : ActivityTestRule<MainActivity>(MainActivity::class.java, launchActivity) {
+ private val longTapUserPreference = getLongPressTimeout()
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @CallSuper
+ override fun beforeActivityLaunched() {
+ super.beforeActivityLaunched()
+ updateFirstRun(showFirstRun)
+ featureSettingsHelper.setShowStartBrowsingCfrEnabled(showStartBrowsingCfrVisibility)
+ featureSettingsHelper.setCookieBannerReductionEnabled(false)
+ setNewOnboarding(showNewOnboarding)
+ setLongTapTimeout(3000)
+ }
+
+ override fun afterActivityFinished() {
+ super.afterActivityFinished()
+
+ ThreadUtils.postToMainThread {
+ InstrumentationRegistry
+ .getInstrumentation()
+ .targetContext
+ .applicationContext
+ .components
+ .tabsUseCases
+ .removeAllTabs()
+ }
+
+ featureSettingsHelper.resetAllFeatureFlags()
+ closeNotificationShade()
+ setLongTapTimeout(longTapUserPreference)
+ }
+}
+
+// Test rule that allows usage of Espresso Intents
+open class MainActivityIntentsTestRule(
+ launchActivity: Boolean = true,
+ private val showFirstRun: Boolean,
+ private val showStartBrowsingCfrVisibility: Boolean = false,
+ private val cookieBannerReductionEnabled: Boolean = false,
+) :
+ IntentsTestRule<MainActivity>(MainActivity::class.java, launchActivity) {
+ private val longTapUserPreference = getLongPressTimeout()
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @CallSuper
+ override fun beforeActivityLaunched() {
+ super.beforeActivityLaunched()
+
+ updateFirstRun(showFirstRun)
+ featureSettingsHelper.setShowStartBrowsingCfrEnabled(showStartBrowsingCfrVisibility)
+ featureSettingsHelper.setCookieBannerReductionEnabled(cookieBannerReductionEnabled)
+ setLongTapTimeout(3000)
+ }
+
+ override fun afterActivityFinished() {
+ super.afterActivityFinished()
+ ThreadUtils.postToMainThread {
+ InstrumentationRegistry
+ .getInstrumentation()
+ .targetContext
+ .applicationContext
+ .components
+ .tabsUseCases
+ .removeAllTabs()
+ }
+
+ closeNotificationShade()
+ setLongTapTimeout(longTapUserPreference)
+ }
+}
+
+// Some tests will leave the notification shade open if they fail, needs to be closed before the next tests
+private fun closeNotificationShade() {
+ val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+ if (mDevice.findObject(
+ UiSelector().resourceId("com.android.systemui:id/notification_stack_scroller"),
+ ).exists()
+ ) {
+ pressBackKey()
+ }
+}
+
+private fun updateFirstRun(showFirstRun: Boolean) {
+ val appContext = InstrumentationRegistry.getInstrumentation()
+ .targetContext
+ .applicationContext
+
+ val appStore = appContext.components.appStore
+ if (appStore.state.screen is Screen.FirstRun && !showFirstRun) {
+ hideFirstRun(appStore)
+ } else if (appStore.state.screen !is Screen.FirstRun && showFirstRun) {
+ showFirstRun(appStore)
+ }
+ appContext.settings.isFirstRun = showFirstRun
+}
+
+private fun showFirstRun(appStore: AppStore) {
+ val job = appStore.dispatch(
+ AppAction.ShowFirstRun,
+ )
+ runBlocking { job.join() }
+}
+
+private fun hideFirstRun(appStore: AppStore) {
+ val job = appStore.dispatch(
+ AppAction.FinishFirstRun(tabId = null),
+ )
+ runBlocking { job.join() }
+}
+
+private fun setNewOnboarding(enabled: Boolean) {
+ getTargetContext.settings.isNewOnboardingEnable = enabled
+}
+
+// changing the device preference for Touch and Hold delay, to avoid long-clicks instead of a single-click
+private fun setLongTapTimeout(delay: Int) {
+ val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+ mDevice.executeShellCommand("settings put secure long_press_timeout $delay")
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/MockLocationUpdatesRule.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/MockLocationUpdatesRule.kt
new file mode 100644
index 0000000000..5ed7ae4d51
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/MockLocationUpdatesRule.kt
@@ -0,0 +1,113 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.helpers
+
+import android.content.Context
+import android.location.Location
+import android.location.LocationManager
+import android.os.Build
+import android.os.SystemClock
+import android.util.Log
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
+import org.junit.rules.ExternalResource
+import org.mozilla.focus.helpers.TestHelper.executeShellCommandBlocking
+import java.util.Date
+import kotlin.random.Random
+
+private const val mockProviderName = LocationManager.GPS_PROVIDER
+
+/**
+ * Rule that sets up a mock location provider that can inject location samples
+ * straight to the device that the test is running on.
+ *
+ * Credit to the mapbox team
+ * https://github.com/mapbox/mapbox-navigation-android/blob/87fab7ea1152b29533ee121eaf6c05bc202adf02/libtesting-ui/src/main/java/com/mapbox/navigation/testing/ui/MockLocationUpdatesRule.kt
+ *
+ */
+class MockLocationUpdatesRule : ExternalResource() {
+ private val instrumentation = getInstrumentation()
+ private val appContext = (ApplicationProvider.getApplicationContext() as Context)
+ val latitude = Random.nextDouble(-90.0, 90.0)
+ val longitude = Random.nextDouble(-180.0, 180.0)
+
+ private val locationManager: LocationManager by lazy {
+ (appContext.getSystemService(Context.LOCATION_SERVICE) as LocationManager)
+ }
+
+ override fun before() {
+ /* ADB command to enable the mock location setting on the device.
+ * Will not be turned back off due to limitations on knowing its initial state.
+ */
+ instrumentation.uiAutomation.executeShellCommandBlocking(
+ "appops set " +
+ appContext.packageName +
+ " android:mock_location allow",
+ )
+
+ // To mock locations we need a location provider, so we generate and set it here.
+ try {
+ locationManager.addTestProvider(
+ mockProviderName,
+ false,
+ false,
+ false,
+ false,
+ true,
+ true,
+ true,
+ 3,
+ 2,
+ )
+ } catch (ex: Exception) {
+ // unstable
+ Log.w("MockLocationUpdatesRule", "addTestProvider failed")
+ }
+ locationManager.setTestProviderEnabled(mockProviderName, true)
+ }
+
+ // Cleaning up the location provider after the test.
+ override fun after() {
+ locationManager.setTestProviderEnabled(mockProviderName, false)
+ locationManager.removeTestProvider(mockProviderName)
+ }
+
+ /**
+ * Generate a valid mock location data and set with the help of a test provider.
+ *
+ * @param modifyLocation optional callback for modifying the constructed location before setting it.
+ */
+ fun setMockLocation(modifyLocation: (Location.() -> Unit)? = null) {
+ check(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ "MockLocationUpdatesRule is supported only on Android devices " +
+ "running version >= Build.VERSION_CODES.M"
+ }
+
+ val location = Location(mockProviderName)
+ location.time = Date().time
+ location.elapsedRealtimeNanos = SystemClock.elapsedRealtimeNanos()
+ location.accuracy = 5f
+ location.altitude = 0.0
+ location.bearing = 0f
+ location.speed = 5f
+ location.latitude = latitude
+ location.longitude = longitude
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ location.verticalAccuracyMeters = 5f
+ location.bearingAccuracyDegrees = 5f
+ location.speedAccuracyMetersPerSecond = 5f
+ }
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
+ location.elapsedRealtimeUncertaintyNanos = 0.0
+ }
+
+ modifyLocation?.let {
+ location.apply(it)
+ }
+
+ locationManager.setTestProviderLocation(mockProviderName, location)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/MockWebServerHelper.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/MockWebServerHelper.kt
new file mode 100644
index 0000000000..0679e6282c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/MockWebServerHelper.kt
@@ -0,0 +1,76 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.helpers
+
+import android.os.Handler
+import android.os.Looper
+import androidx.core.net.toUri
+import androidx.test.platform.app.InstrumentationRegistry
+import okhttp3.mockwebserver.Dispatcher
+import okhttp3.mockwebserver.MockResponse
+import okhttp3.mockwebserver.MockWebServer
+import okhttp3.mockwebserver.RecordedRequest
+import okio.Buffer
+import okio.source
+import java.io.IOException
+import java.io.InputStream
+
+object MockWebServerHelper {
+ /**
+ * A [MockWebServer] [Dispatcher] that will return Android assets in the body of requests.
+ *
+ * If the dispatcher is unable to read a requested asset, it will fail the test by throwing an
+ * Exception on the main thread.
+ *
+ */
+ const val HTTP_OK = 200
+ const val HTTP_NOT_FOUND = 404
+
+ class AndroidAssetDispatcher : Dispatcher() {
+ private val mainThreadHandler = Handler(Looper.getMainLooper())
+
+ override fun dispatch(request: RecordedRequest): MockResponse {
+ val assetManager = InstrumentationRegistry.getInstrumentation().context.assets
+ try {
+ val pathWithoutQueryParams = request.path!!.drop(1).toUri().path
+ assetManager.open(pathWithoutQueryParams!!).use { inputStream ->
+ return fileToResponse(pathWithoutQueryParams, inputStream)
+ }
+ } catch (e: IOException) { // e.g. file not found.
+ // We're on a background thread so we need to forward the exception to the main thread.
+ mainThreadHandler.postAtFrontOfQueue { throw e }
+ return MockResponse().setResponseCode(HTTP_NOT_FOUND)
+ }
+ }
+ }
+
+ @Throws(IOException::class)
+ private fun fileToResponse(path: String, file: InputStream): MockResponse {
+ return MockResponse()
+ .setResponseCode(HTTP_OK)
+ .setBody(fileToBytes(file)!!)
+ .addHeader("content-type: " + contentType(path))
+ }
+
+ @Throws(IOException::class)
+ private fun fileToBytes(file: InputStream): Buffer? {
+ val result = Buffer()
+ result.writeAll(file.source())
+ return result
+ }
+
+ private fun contentType(path: String): String? {
+ return when {
+ path.endsWith(".png") -> "image/png"
+ path.endsWith(".jpg") -> "image/jpeg"
+ path.endsWith(".jpeg") -> "image/jpeg"
+ path.endsWith(".gif") -> "image/gif"
+ path.endsWith(".svg") -> "image/svg+xml"
+ path.endsWith(".html") -> "text/html; charset=utf-8"
+ path.endsWith(".txt") -> "text/plain; charset=utf-8"
+ else -> "application/octet-stream"
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/RetryTestRule.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/RetryTestRule.kt
new file mode 100644
index 0000000000..e854df2496
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/RetryTestRule.kt
@@ -0,0 +1,44 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.helpers
+
+import androidx.test.espresso.NoMatchingViewException
+import androidx.test.uiautomator.UiObjectNotFoundException
+import org.junit.rules.TestRule
+import org.junit.runner.Description
+import org.junit.runners.model.Statement
+import java.lang.AssertionError
+
+class RetryTestRule(private val retryCount: Int = 5) : TestRule {
+
+ override fun apply(base: Statement, description: Description): Statement {
+ return statement {
+ for (i in 1..retryCount) {
+ try {
+ base.evaluate()
+ break
+ } catch (t: AssertionError) {
+ if (i == retryCount) {
+ throw t
+ }
+ } catch (t: UiObjectNotFoundException) {
+ if (i == retryCount) {
+ throw t
+ }
+ } catch (t: NoMatchingViewException) {
+ if (i == retryCount) {
+ throw t
+ }
+ }
+ }
+ }
+ }
+
+ private inline fun statement(crossinline eval: () -> Unit): Statement {
+ return object : Statement() {
+ override fun evaluate() = eval()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/StringsHelper.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/StringsHelper.kt
new file mode 100644
index 0000000000..affe13e4ee
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/StringsHelper.kt
@@ -0,0 +1,27 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.helpers
+
+object StringsHelper {
+ const val FR_ENGLISH_LOCALE = "English (United States)"
+ const val FR_LANGUAGE_MENU = "Langue"
+ const val FR_SETTINGS = "Paramètres"
+ const val FR_GENERAL_HEADING = "Général"
+ const val FR_LANGUAGE_SYSTEM_DEFAULT = "Valeur par défaut du système"
+
+ const val EN_LANGUAGE_MENU_HEADING = "Language"
+ const val EN_AFRIKAANS_LOCALE = "Afrikaans"
+
+ const val AF_LANGUAGE_MENU = "Taal"
+ const val AF_SETTINGS = "Instellings"
+ const val AF_HELP = "Hulp"
+ const val AF_GENERAL_HEADING = "Algemeen"
+ const val AF_LANGUAGE_SYSTEM_DEFAULT = "System default"
+
+ // App package names
+ const val GMAIL_APP = "com.google.android.gm"
+ const val PHONE_APP = "com.android.dialer"
+ const val GOOGLE_PHOTOS = "com.google.android.apps.photos"
+ const val GOOGLE_CHROME = "com.google.android.apps.chrome"
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/TestAssetHelper.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/TestAssetHelper.kt
new file mode 100644
index 0000000000..27247458ca
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/TestAssetHelper.kt
@@ -0,0 +1,71 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.helpers
+
+import okhttp3.mockwebserver.MockWebServer
+
+/**
+ * Helper for hosting web pages locally for testing purposes.
+ */
+object TestAssetHelper {
+ data class TestAsset(val url: String, val content: String, val title: String)
+
+ /**
+ * Hosts simple websites, found at androidTest/assets/tab[1|2|3].html
+ * Returns a list of TestAsset, which can be used to navigate to each and
+ * assert that the correct information is being displayed.
+ *
+ * Content for these pages all follow the same pattern. See [tab1.html] for
+ * content implementation details.
+ */
+ fun getGenericTabAsset(server: MockWebServer, pageNum: Int): TestAsset {
+ val url = server.url("tab$pageNum.html").toString()
+ val content = "Tab $pageNum"
+ val title = "tab$pageNum"
+
+ return TestAsset(url, content, title)
+ }
+
+ fun getGenericAsset(server: MockWebServer): TestAsset {
+ val url = server.url("genericPage.html").toString()
+ val content = "focus test page"
+ val title = "GenericPage"
+
+ return TestAsset(url, content, title)
+ }
+
+ fun getHTMLControlsPageAsset(server: MockWebServer): TestAsset {
+ val url = server.url("htmlControls.html").toString()
+ val content = ""
+ val title = "Html_Control_Form"
+
+ return TestAsset(url, content, title)
+ }
+
+ fun getEnhancedTrackingProtectionAsset(server: MockWebServer, pageTitle: String): TestAsset {
+ val url = server.url("etpPages/$pageTitle.html").toString()
+ val content = ""
+
+ return TestAsset(url, content, pageTitle)
+ }
+
+ fun getImageTestAsset(server: MockWebServer): TestAsset {
+ val url = server.url("image_test.html").toString()
+
+ return TestAsset(url, "", "")
+ }
+
+ fun getStorageTestAsset(server: MockWebServer, pageTitle: String): TestAsset {
+ val url = server.url(pageTitle).toString()
+
+ return TestAsset(url, "", "")
+ }
+
+ fun getMediaTestAsset(server: MockWebServer, pageTitle: String): TestAsset {
+ val url = server.url("$pageTitle.html").toString()
+
+ return TestAsset(url, "", pageTitle)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/TestHelper.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/TestHelper.kt
new file mode 100644
index 0000000000..522c07de6c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/TestHelper.kt
@@ -0,0 +1,379 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.helpers
+
+import android.app.PendingIntent
+import android.app.UiAutomation
+import android.content.ActivityNotFoundException
+import android.content.ComponentName
+import android.content.Context
+import android.content.Intent
+import android.content.pm.PackageManager
+import android.graphics.Bitmap
+import android.graphics.Canvas
+import android.graphics.Color
+import android.os.Build
+import android.os.Build.VERSION.SDK_INT
+import android.os.storage.StorageManager
+import android.os.storage.StorageVolume
+import android.util.Log
+import android.view.KeyEvent
+import android.view.inputmethod.InputMethodManager
+import androidx.browser.customtabs.CustomTabColorSchemeParams
+import androidx.browser.customtabs.CustomTabsIntent
+import androidx.browser.customtabs.CustomTabsIntent.SHARE_STATE_ON
+import androidx.core.net.toUri
+import androidx.test.espresso.Espresso
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.intent.Intents.intended
+import androidx.test.espresso.intent.matcher.IntentMatchers.toPackage
+import androidx.test.espresso.matcher.ViewMatchers
+import androidx.test.espresso.matcher.ViewMatchers.withId
+import androidx.test.espresso.matcher.ViewMatchers.withText
+import androidx.test.espresso.web.sugar.Web
+import androidx.test.filters.SdkSuppress
+import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
+import androidx.test.uiautomator.UiDevice
+import androidx.test.uiautomator.UiSelector
+import junit.framework.AssertionFailedError
+import mozilla.components.support.utils.ext.getApplicationInfoCompat
+import okio.Buffer
+import org.hamcrest.Matchers
+import org.hamcrest.Matchers.allOf
+import org.junit.Assert
+import org.junit.Assert.assertFalse
+import org.junit.Assert.assertTrue
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.IntentReceiverActivity
+import org.mozilla.focus.utils.IntentUtils
+import java.io.File
+import java.io.FileInputStream
+import java.io.IOException
+import java.io.InputStream
+import java.util.concurrent.TimeUnit
+
+@Suppress("TooManyFunctions")
+object TestHelper {
+ @JvmField
+ var mDevice = UiDevice.getInstance(getInstrumentation())
+ val waitingTime = TimeUnit.SECONDS.toMillis(15)
+ val pageLoadingTime = TimeUnit.SECONDS.toMillis(25)
+ val waitingTimeShort: Long = TimeUnit.SECONDS.toMillis(3)
+
+ private val charPool: List<Char> = ('a'..'z') + ('A'..'Z') + ('0'..'9')
+ fun randomString(stringLength: Int) =
+ (1..stringLength)
+ .map { kotlin.random.Random.nextInt(0, charPool.size) }
+ .map(charPool::get)
+ .joinToString("")
+
+ @JvmStatic
+ val getTargetContext: Context = getInstrumentation().targetContext
+
+ @JvmStatic
+ val packageName: String = getTargetContext.packageName
+
+ @JvmStatic
+ val appName: String = getTargetContext.getString(R.string.app_name)
+
+ fun getStringResource(id: Int) = getTargetContext.resources.getString(id, appName)
+
+ fun verifySnackBarText(text: String) {
+ val snackbarText = mDevice.findObject(UiSelector().textContains(text))
+ assertTrue(snackbarText.waitForExists(waitingTime))
+ }
+
+ fun clickSnackBarActionButton(action: String) {
+ val snackbarActionButton =
+ onView(
+ allOf(
+ withId(R.id.snackbar_action),
+ withText(action),
+ ),
+ )
+ snackbarActionButton.perform(click())
+ }
+
+ fun waitUntilSnackBarGone() {
+ mDevice.findObject(UiSelector().resourceId("$appName:id/snackbar_layout"))
+ .waitUntilGone(waitingTime)
+ }
+
+ fun isPackageInstalled(packageName: String): Boolean {
+ return try {
+ val packageManager = getInstrumentation().context.packageManager
+ packageManager.getApplicationInfoCompat(packageName, 0).enabled
+ } catch (exception: PackageManager.NameNotFoundException) {
+ Log.d("TestLog", exception.message.toString())
+ false
+ }
+ }
+
+ fun restartApp(activity: MainActivityFirstrunTestRule) {
+ with(activity) {
+ finishActivity()
+ mDevice.waitForIdle()
+ launchActivity(null)
+ }
+ }
+
+ // exit to the main view
+ fun exitToTop() {
+ val homeScreen =
+ mDevice.findObject(UiSelector().resourceId("$packageName:id/landingLayout"))
+ var homeScreenVisible = false
+ while (!homeScreenVisible) {
+ mDevice.pressBack()
+ homeScreenVisible = homeScreen.waitForExists(2000)
+ }
+ }
+
+ // exit to the browser view
+ fun exitToBrowser() {
+ val browserScreen =
+ mDevice.findObject(UiSelector().resourceId("$packageName:id/main_content"))
+ var browserScreenVisible = false
+ while (!browserScreenVisible) {
+ mDevice.pressBack()
+ browserScreenVisible = browserScreen.waitForExists(2000)
+ }
+ }
+
+ fun setNetworkEnabled(enabled: Boolean) {
+ when (enabled) {
+ true -> {
+ mDevice.executeShellCommand("svc data enable")
+ mDevice.executeShellCommand("svc wifi enable")
+ }
+
+ false -> {
+ mDevice.executeShellCommand("svc data disable")
+ mDevice.executeShellCommand("svc wifi disable")
+ }
+ }
+ mDevice.waitForIdle(waitingTime)
+ }
+
+ // verifies localized strings in different UIs
+ fun verifyTranslatedTextExists(text: String) =
+ assertTrue(mDevice.findObject(UiSelector().text(text)).waitForExists(waitingTime))
+
+ fun openAppFromExternalLink(url: String) {
+ val intent = Intent().apply {
+ action = Intent.ACTION_VIEW
+ data = url.toUri()
+ `package` = packageName
+ flags = Intent.FLAG_ACTIVITY_NEW_TASK
+ }
+ try {
+ getTargetContext.startActivity(intent)
+ } catch (ex: ActivityNotFoundException) {
+ intent.setPackage(null)
+ getTargetContext.startActivity(intent)
+ }
+ }
+
+ @SdkSuppress(minSdkVersion = Build.VERSION_CODES.R)
+ fun verifyDownloadedFileOnStorage(fileName: String) {
+ val storageManager =
+ getInstrumentation().targetContext.getSystemService(Context.STORAGE_SERVICE) as StorageManager
+ val storageVolumes = storageManager.storageVolumes
+ val storageVolume: StorageVolume = storageVolumes[0]
+ val file = File("${storageVolume.directory!!.path}/Download/$fileName")
+ assertTrue(file.exists())
+ }
+
+ // Method for granting app permission to access location/camera/mic
+ fun grantAppPermission() {
+ if (SDK_INT >= 23) {
+ mDevice.findObject(
+ UiSelector().textContains(
+ when (SDK_INT) {
+ Build.VERSION_CODES.R ->
+ "While using the app"
+ else -> "Allow"
+ },
+ ),
+ ).click()
+ }
+ }
+
+ fun UiAutomation.executeShellCommandBlocking(command: String) {
+ val output = executeShellCommand(command)
+ FileInputStream(output.fileDescriptor).use { it.readBytes() }
+ }
+
+ @JvmStatic
+ fun pressEnterKey() {
+ mDevice.pressKeyCode(KeyEvent.KEYCODE_ENTER)
+ }
+
+ @JvmStatic
+ fun pressBackKey() {
+ mDevice.pressBack()
+ }
+
+ @JvmStatic
+ fun pressHomeKey() {
+ mDevice.pressHome()
+ }
+
+ fun createCustomTabIntent(
+ pageUrl: String,
+ customMenuItemLabel: String = "",
+ customActionButtonDescription: String = "",
+ ): Intent {
+ val appContext = getInstrumentation()
+ .targetContext
+ .applicationContext
+ val pendingIntent = PendingIntent.getActivity(appContext, 0, Intent(), IntentUtils.defaultIntentPendingFlags())
+
+ val customTabColorSchemeBuilder = CustomTabColorSchemeParams.Builder()
+ customTabColorSchemeBuilder.setToolbarColor(Color.MAGENTA)
+
+ val customTabsIntent = CustomTabsIntent.Builder()
+ .addMenuItem(customMenuItemLabel, pendingIntent)
+ .setShareState(SHARE_STATE_ON)
+ .setActionButton(createTestBitmap(), customActionButtonDescription, pendingIntent, true)
+ .setDefaultColorSchemeParams(customTabColorSchemeBuilder.build())
+ .build()
+ customTabsIntent.intent.data = pageUrl.toUri()
+ customTabsIntent.intent.component = ComponentName(appContext, IntentReceiverActivity::class.java)
+ return customTabsIntent.intent
+ }
+
+ fun assertNativeAppOpens(appPackageName: String) {
+ try {
+ if (isPackageInstalled(packageName)) {
+ intended(toPackage(appPackageName))
+ }
+ } catch (e: AssertionFailedError) {
+ e.printStackTrace()
+ }
+ }
+
+ private fun createTestBitmap(): Bitmap {
+ val bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888)
+ val canvas = Canvas(bitmap)
+ canvas.drawColor(Color.GREEN)
+ return bitmap
+ }
+
+ /**
+ * Wrapper for tests to run only when certain conditions are met.
+ * For example: this method will avoid accidentally running a test on GV versions where the feature is disabled.
+ */
+ fun runWithCondition(condition: Boolean, testBlock: () -> Unit) {
+ if (condition) {
+ testBlock()
+ }
+ }
+
+ /********* Old code locators - used only in Screenshots tests */
+ // wait for web area to be visible
+ @JvmStatic
+ fun waitForWebContent() {
+ Assert.assertTrue(geckoView.waitForExists(waitingTime))
+ }
+
+ @JvmField
+ var menuButton = Espresso.onView(
+ Matchers.allOf(
+ ViewMatchers.withId(R.id.menuView),
+ ViewMatchers.isDisplayed(),
+ ),
+ )
+
+ @JvmField
+ var permAllowBtn = mDevice.findObject(
+ UiSelector()
+ .textContains("Allow")
+ .clickable(true),
+ )
+
+ @JvmField
+ var webView = mDevice.findObject(
+ UiSelector()
+ .className("android.webkit.WebView")
+ .enabled(true),
+ )
+ var geckoView = mDevice.findObject(
+ UiSelector()
+ .resourceId(packageName + ":id/engineView")
+ .enabled(true),
+ )
+
+ @JvmField
+ var progressBar = mDevice.findObject(
+ UiSelector()
+ .resourceId(packageName + ":id/progress")
+ .enabled(true),
+ )
+
+ @JvmField
+ var AddtoHSmenuItem = mDevice.findObject(
+ UiSelector()
+ .resourceId(packageName + ":id/add_to_homescreen")
+ .enabled(true),
+ )
+
+ @JvmField
+ var AddtoHSCancelBtn = mDevice.findObject(
+ UiSelector()
+ .resourceId(packageName + ":id/addtohomescreen_dialog_cancel")
+ .enabled(true),
+ )
+
+ @JvmField
+ var securityInfoIcon = mDevice.findObject(
+ UiSelector()
+ .resourceId(packageName + ":id/security_info")
+ .enabled(true),
+ )
+
+ @JvmField
+ var identityState = mDevice.findObject(
+ UiSelector()
+ .resourceId(packageName + ":id/site_identity_state")
+ .enabled(true),
+ )
+
+ @JvmField
+ var shareAppList = mDevice.findObject(
+ UiSelector()
+ .resourceId("android:id/resolver_list")
+ .enabled(true),
+ )
+
+ @JvmStatic
+ @Throws(IOException::class)
+ fun readTestAsset(filename: String?): Buffer {
+ getInstrumentation().getContext().assets.open(filename!!)
+ .use { stream -> return readStreamFile(stream) }
+ }
+
+ @Throws(IOException::class)
+ fun readStreamFile(file: InputStream?): Buffer {
+ val buffer = Buffer()
+ buffer.write(file!!.readBytes())
+ return buffer
+ }
+
+ @JvmStatic
+ fun waitForWebSiteTitleLoad() {
+ Web.onWebView(ViewMatchers.withText("focus test page"))
+ }
+
+ @JvmStatic
+ fun verifyKeyboardVisibility(isExpectedToBeVisible: Boolean) {
+ val imm = getTargetContext.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
+
+ if (isExpectedToBeVisible) {
+ assertTrue(imm.isAcceptingText)
+ } else {
+ assertFalse(imm.isAcceptingText)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/ext/WaitNotNull.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/ext/WaitNotNull.kt
new file mode 100644
index 0000000000..33ca1a5d4a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/ext/WaitNotNull.kt
@@ -0,0 +1,20 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.helpers.ext
+
+import androidx.test.uiautomator.SearchCondition
+import androidx.test.uiautomator.UiDevice
+import org.junit.Assert.assertNotNull
+import org.mozilla.focus.helpers.TestHelper
+
+/**
+ * Blocks the test for [waitTime] miliseconds before continuing.
+ *
+ * Will cause the test to fail is the condition is not met before the timeout.
+ */
+fun UiDevice.waitNotNull(
+ searchCondition: SearchCondition<*>,
+ waitTime: Long = TestHelper.waitingTime,
+) = assertNotNull(wait(searchCondition, waitTime))
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/idlingResources/RecyclerViewIdlingResource.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/idlingResources/RecyclerViewIdlingResource.kt
new file mode 100644
index 0000000000..08edc53908
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/idlingResources/RecyclerViewIdlingResource.kt
@@ -0,0 +1,32 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.idlingResources
+
+import androidx.test.espresso.IdlingResource
+
+class RecyclerViewIdlingResource constructor(
+ private val recycler: androidx.recyclerview.widget.RecyclerView,
+ private val minItemCount: Int = 0,
+) : IdlingResource {
+
+ private var callback: IdlingResource.ResourceCallback? = null
+
+ override fun isIdleNow(): Boolean {
+ if (recycler.adapter != null && recycler.adapter!!.itemCount >= minItemCount) {
+ if (callback != null) {
+ callback!!.onTransitionToIdle()
+ }
+ return true
+ }
+ return false
+ }
+
+ override fun registerIdleTransitionCallback(callback: IdlingResource.ResourceCallback) {
+ this.callback = callback
+ }
+
+ override fun getName(): String {
+ return RecyclerViewIdlingResource::class.java.name + ":" + recycler.id
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/idlingResources/SessionLoadedIdlingResource.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/idlingResources/SessionLoadedIdlingResource.kt
new file mode 100644
index 0000000000..63cb622f0d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/idlingResources/SessionLoadedIdlingResource.kt
@@ -0,0 +1,48 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.idlingResources
+
+import androidx.test.espresso.IdlingResource
+import androidx.test.platform.app.InstrumentationRegistry
+import mozilla.components.browser.state.selector.selectedTab
+import org.mozilla.focus.FocusApplication
+
+/**
+ * An IdlingResource implementation that waits until the current session is not loading anymore.
+ * Only after loading has completed further actions will be performed.
+ */
+class SessionLoadedIdlingResource : IdlingResource {
+ private var resourceCallback: IdlingResource.ResourceCallback? = null
+
+ override fun getName(): String {
+ return SessionLoadedIdlingResource::class.java.simpleName
+ }
+
+ override fun isIdleNow(): Boolean {
+ val context = InstrumentationRegistry.getInstrumentation().targetContext.applicationContext as FocusApplication
+ val tab = context.components.store.state.selectedTab
+
+ return if (tab?.content?.loading == true) {
+ false
+ } else {
+ if (tab?.content?.progress == 100) {
+ invokeCallback()
+ true
+ } else {
+ false
+ }
+ }
+ }
+
+ private fun invokeCallback() {
+ if (resourceCallback != null) {
+ resourceCallback!!.onTransitionToIdle()
+ }
+ }
+
+ override fun registerIdleTransitionCallback(callback: IdlingResource.ResourceCallback) {
+ this.resourceCallback = callback
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/privacy/GlobalPrivacyControlTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/privacy/GlobalPrivacyControlTest.kt
new file mode 100644
index 0000000000..0675a59f70
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/privacy/GlobalPrivacyControlTest.kt
@@ -0,0 +1,60 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.privacy
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.TestAssetHelper.getStorageTestAsset
+import java.io.IOException
+
+/**
+ * Test that Global Privacy Control is always enabled in Focus.
+ */
+@RunWith(AndroidJUnit4ClassRunner::class)
+class GlobalPrivacyControlTest {
+ private lateinit var webServer: MockWebServer
+
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ @get: Rule
+ var mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Before
+ fun setUp() {
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ featureSettingsHelper.setSearchWidgetDialogEnabled(false)
+ }
+
+ @After
+ fun tearDown() {
+ try {
+ webServer.shutdown()
+ } catch (e: IOException) {
+ throw AssertionError("Could not stop web server", e)
+ }
+ }
+
+ @Test
+ fun gpcTest() {
+ val storageStartUrl = getStorageTestAsset(webServer, "global_privacy_control.html").url
+
+ searchScreen {
+ }.loadPage(storageStartUrl) {
+ verifyPageContent("GPC is enabled.")
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/privacy/LocalSessionStorageTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/privacy/LocalSessionStorageTest.kt
new file mode 100644
index 0000000000..839f90f924
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/privacy/LocalSessionStorageTest.kt
@@ -0,0 +1,96 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.privacy
+
+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.FeatureSettingsHelper
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.MockWebServerHelper
+import org.mozilla.focus.helpers.TestAssetHelper.getStorageTestAsset
+import org.mozilla.focus.testAnnotations.SmokeTest
+import java.io.IOException
+
+/**
+ * Make sure that session storage values are kept and written but removed at the end of a session.
+ */
+@RunWith(AndroidJUnit4ClassRunner::class)
+class LocalSessionStorageTest {
+ private lateinit var webServer: MockWebServer
+
+ private val featureSettingsHelper = FeatureSettingsHelper()
+
+ companion object {
+ const val SESSION_STORAGE_HIT = "Session storage has value"
+ const val LOCAL_STORAGE_MISS = "Local storage empty"
+ }
+
+ @get: Rule
+ var mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false)
+
+ @Before
+ fun setUp() {
+ webServer = MockWebServer().apply {
+ dispatcher = MockWebServerHelper.AndroidAssetDispatcher()
+ start()
+ }
+ featureSettingsHelper.setCfrForTrackingProtectionEnabled(false)
+ featureSettingsHelper.setSearchWidgetDialogEnabled(false)
+ }
+
+ @After
+ fun tearDown() {
+ try {
+ webServer.shutdown()
+ } catch (e: IOException) {
+ throw AssertionError("Could not stop web server", e)
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun testLocalAndSessionStorageIsWrittenAndRemoved() {
+ val storageStartUrl = getStorageTestAsset(webServer, "storage_start.html").url
+ val storageCheckUrl = getStorageTestAsset(webServer, "storage_check.html").url
+
+ searchScreen {
+ }.loadPage(storageStartUrl) {
+ // Assert website is loaded and values are written.
+ verifyPageContent("Values written to storage")
+ }.openSearchBar {
+ // Now load the next website and assert that the values are still in the storage
+ }.loadPage(storageCheckUrl) {
+ verifyPageContent(SESSION_STORAGE_HIT)
+ verifyPageContent(LOCAL_STORAGE_MISS)
+ }.clearBrowsingData {}
+ searchScreen {
+ }.loadPage(storageCheckUrl) {
+ verifyPageContent("Session storage empty")
+ verifyPageContent("Local storage empty")
+ }
+ }
+
+ @SmokeTest
+ @Test
+ fun eraseCookiesTest() {
+ val storageStartUrl = getStorageTestAsset(webServer, "storage_start.html").url
+
+ searchScreen {
+ }.loadPage(storageStartUrl) {
+ verifyPageContent("No cookies set")
+ clickSetCookiesButton()
+ verifyPageContent("user=android")
+ }.clearBrowsingData {}
+ searchScreen {
+ }.loadPage(storageStartUrl) {
+ verifyPageContent("No cookies set")
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/AllowListScreenshots.java b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/AllowListScreenshots.java
new file mode 100644
index 0000000000..8b1cdba03b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/AllowListScreenshots.java
@@ -0,0 +1,123 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.screenshots;
+
+import android.os.SystemClock;
+
+import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.UiObjectNotFoundException;
+import androidx.test.uiautomator.UiScrollable;
+import androidx.test.uiautomator.UiSelector;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mozilla.focus.R;
+import org.mozilla.focus.helpers.TestHelper;
+
+import java.io.IOException;
+
+import okhttp3.mockwebserver.MockResponse;
+import okhttp3.mockwebserver.MockWebServer;
+import tools.fastlane.screengrab.Screengrab;
+import tools.fastlane.screengrab.locale.LocaleTestRule;
+
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.action.ViewActions.click;
+import static androidx.test.espresso.action.ViewActions.pressImeActionButton;
+import static androidx.test.espresso.action.ViewActions.replaceText;
+import static androidx.test.espresso.assertion.ViewAssertions.matches;
+import static androidx.test.espresso.matcher.ViewMatchers.hasFocus;
+import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.espresso.matcher.ViewMatchers.withText;
+
+@Ignore("See: https://github.com/mozilla-mobile/mobile-test-eng/issues/305")
+@RunWith(AndroidJUnit4.class)
+public class AllowListScreenshots extends ScreenshotTest {
+
+ @ClassRule
+ public static final LocaleTestRule localeTestRule = new LocaleTestRule();
+
+ private MockWebServer webServer;
+
+ @Before
+ public void setUpWebServer() throws IOException {
+ webServer = new MockWebServer();
+
+ // Test page
+ webServer.enqueue(new MockResponse()
+ .setBody(TestHelper.readTestAsset("image_test.html")));
+ webServer.enqueue(new MockResponse()
+ .setBody(TestHelper.readTestAsset("rabbit.jpg")));
+ webServer.enqueue(new MockResponse()
+ .setBody(TestHelper.readTestAsset("download.jpg")));
+ // Download
+ webServer.enqueue(new MockResponse()
+ .setBody(TestHelper.readTestAsset("image_test.html")));
+ webServer.enqueue(new MockResponse()
+ .setBody(TestHelper.readTestAsset("rabbit.jpg")));
+ webServer.enqueue(new MockResponse()
+ .setBody(TestHelper.readTestAsset("download.jpg")));
+ }
+
+ @After
+ public void tearDownWebServer() {
+ try {
+ webServer.close();
+ webServer.shutdown();
+ } catch (IOException e) {
+ throw new AssertionError("Could not stop web server", e);
+ }
+ }
+
+ @Test
+ public void takeScreenshotsOfMenuandAllowlist() throws UiObjectNotFoundException {
+ SystemClock.sleep(5000);
+ onView(withId(R.id.mozac_browser_toolbar_edit_url_view))
+ .check(matches(isDisplayed()))
+ .check(matches(hasFocus()))
+ .perform(click(), replaceText(webServer.url("/").toString()));
+
+ onView(withId(R.id.mozac_browser_toolbar_edit_url_view))
+ .check(matches(isDisplayed()))
+ .check(matches(hasFocus()))
+ .perform(pressImeActionButton());
+
+ device.findObject(new UiSelector()
+ .resourceId(TestHelper.getAppName() + ":id/webview")
+ .enabled(true))
+ .waitForExists(waitingTime);
+
+ TestHelper.menuButton.perform(click());
+ Screengrab.screenshot("BrowserViewMenu");
+ onView(withId(R.id.enhanced_tracking)).perform(click());
+
+ // Open setting
+ onView(withId(R.id.menuView))
+ .check(matches(isDisplayed()))
+ .perform(click());
+ onView(withId(R.id.settings))
+ .check(matches(isDisplayed()))
+ .perform(click());
+ onView(withText(R.string.preference_privacy_and_security_header)).perform(click());
+
+ UiScrollable settingsView = new UiScrollable(new UiSelector().scrollable(true));
+ if (settingsView.exists()) { // On tablet, this will not be found
+ settingsView.scrollToEnd(5);
+ onView(withText(R.string.preference_exceptions)).perform(click());
+ }
+
+ onView(withId(R.id.removeAllExceptions))
+ .check(matches(isDisplayed()));
+ Screengrab.screenshot("ExceptionsDialog");
+ onView(withId(R.id.removeAllExceptions))
+ .perform(click());
+
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/BrowserScreenScreenshots.java b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/BrowserScreenScreenshots.java
new file mode 100644
index 0000000000..1fa82b2a83
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/BrowserScreenScreenshots.java
@@ -0,0 +1,301 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.screenshots;
+
+import android.os.SystemClock;
+
+import androidx.test.espresso.NoMatchingViewException;
+import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.UiObject;
+import androidx.test.uiautomator.UiObjectNotFoundException;
+import androidx.test.uiautomator.UiSelector;
+import androidx.test.uiautomator.Until;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mozilla.focus.R;
+import org.mozilla.focus.helpers.TestHelper;
+
+import java.io.IOException;
+
+import okhttp3.mockwebserver.MockResponse;
+import okhttp3.mockwebserver.MockWebServer;
+import tools.fastlane.screengrab.Screengrab;
+import tools.fastlane.screengrab.locale.LocaleTestRule;
+
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.action.ViewActions.click;
+import static androidx.test.espresso.action.ViewActions.pressImeActionButton;
+import static androidx.test.espresso.action.ViewActions.replaceText;
+import static androidx.test.espresso.assertion.ViewAssertions.matches;
+import static androidx.test.espresso.matcher.ViewMatchers.hasFocus;
+import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.isEnabled;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.espresso.matcher.ViewMatchers.withResourceName;
+import static androidx.test.espresso.matcher.ViewMatchers.withText;
+import static junit.framework.Assert.assertTrue;
+import static org.hamcrest.Matchers.allOf;
+import static org.hamcrest.Matchers.containsString;
+import static org.mozilla.focus.helpers.EspressoHelper.openSettings;
+
+@Ignore("See: https://github.com/mozilla-mobile/mobile-test-eng/issues/305")
+@RunWith(AndroidJUnit4.class)
+public class BrowserScreenScreenshots extends ScreenshotTest {
+
+
+ @ClassRule
+ public static final LocaleTestRule localeTestRule = new LocaleTestRule();
+
+ private MockWebServer webServer;
+
+ @Before
+ public void setUpWebServer() throws IOException {
+ webServer = new MockWebServer();
+
+ // Test page
+ webServer.enqueue(new MockResponse()
+ .setBody(TestHelper.readTestAsset("image_test.html")));
+ webServer.enqueue(new MockResponse()
+ .setBody(TestHelper.readTestAsset("rabbit.jpg")));
+ webServer.enqueue(new MockResponse()
+ .setBody(TestHelper.readTestAsset("download.jpg")));
+ // Download
+ webServer.enqueue(new MockResponse()
+ .setBody(TestHelper.readTestAsset("image_test.html")));
+ webServer.enqueue(new MockResponse()
+ .setBody(TestHelper.readTestAsset("rabbit.jpg")));
+ webServer.enqueue(new MockResponse()
+ .setBody(TestHelper.readTestAsset("download.jpg")));
+ }
+
+ @After
+ public void tearDownWebServer() {
+ try {
+ webServer.close();
+ webServer.shutdown();
+ } catch (IOException e) {
+ throw new AssertionError("Could not stop web server", e);
+ }
+ }
+
+ @Test
+ public void takeScreenshotsOfBrowsingScreen() throws Exception {
+ SystemClock.sleep(5000);
+ takeScreenshotsOfBrowsingView();
+ takeScreenshotsOfOpenWithAndShare();
+ takeAddToHomeScreenScreenshot();
+ takeScreenshotofInsecureCon();
+ takeScreenshotOfFindDialog();
+ takeScreenshotOfTabsTrayAndErase();
+ takeScreenshotofSecureCon();
+ }
+
+ private void takeScreenshotsOfBrowsingView() {
+ onView(withId(R.id.mozac_browser_toolbar_edit_url_view))
+ .check(matches(isDisplayed()));
+
+ // click yes, then go into search dialog and change to twitter, or create twitter engine
+ // If it does not exist (In order to get search unavailable dialog)
+ openSettings();
+ onView(withText(R.string.preference_category_search))
+ .perform(click());
+ onView(allOf(withText(R.string.preference_search_engine_label),
+ withResourceName("title")))
+ .perform(click());
+ onView(withText(R.string.preference_search_installed_search_engines))
+ .check(matches(isDisplayed()));
+
+ try {
+ onView(withText("Twitter"))
+ .check(matches(isDisplayed()))
+ .perform(click());
+ } catch (NoMatchingViewException doesnotexist) {
+ final String addEngineLabel = getString(R.string.preference_search_add2);
+ onView(withText(addEngineLabel))
+ .check(matches(isEnabled()))
+ .perform(click());
+ onView(withId(R.id.edit_engine_name))
+ .check(matches(isEnabled()));
+ onView(withId(R.id.edit_engine_name))
+ .perform(replaceText("twitter"));
+ onView(withId(R.id.edit_search_string))
+ .perform(replaceText("https://twitter.com/search?q=%s"));
+ onView(withId(R.id.menu_save_search_engine))
+ .check(matches(isEnabled()))
+ .perform(click());
+ }
+
+ device.pressBack();
+ onView(allOf(withText(R.string.preference_search_engine_label),
+ withResourceName("title")))
+ .check(matches(isDisplayed()));
+ device.pressBack();
+ onView(withText(R.string.preference_category_search))
+ .check(matches(isDisplayed()));
+ device.pressBack();
+
+ onView(withId(R.id.mozac_browser_toolbar_edit_url_view))
+ .check(matches(isDisplayed()))
+ .check(matches(hasFocus()))
+ .perform(click(), replaceText(webServer.url("/").toString()));
+ try {
+ onView(withId(R.id.enable_search_suggestions_button))
+ .check(matches(isDisplayed()));
+ Screengrab.screenshot("Enable_Suggestion_dialog");
+ onView(withId(R.id.enable_search_suggestions_button))
+ .perform(click());
+ Screengrab.screenshot("Suggestion_unavailable_dialog");
+ onView(withId(R.id.dismiss_no_suggestions_message))
+ .perform(click());
+ } catch (AssertionError dne) { }
+
+ onView(withId(R.id.mozac_browser_toolbar_edit_url_view))
+ .check(matches(isDisplayed()))
+ .check(matches(hasFocus()))
+ .perform(pressImeActionButton());
+
+ device.findObject(new UiSelector()
+ .resourceId(TestHelper.getAppName() + ":id/engineView")
+ .enabled(true))
+ .waitForExists(waitingTime);
+
+ onView(withId(R.id.mozac_browser_toolbar_url_view))
+ .check(matches(isDisplayed()))
+ .check(matches(withText(containsString(webServer.getHostName()))));
+ }
+
+ private void takeScreenshotsOfOpenWithAndShare() throws Exception {
+ /* Open_With View */
+ TestHelper.menuButton.perform(click());
+
+ UiObject openWithBtn = device.findObject(new UiSelector()
+ .resourceId(TestHelper.getAppName() + ":id/open_select_browser")
+ .enabled(true));
+ assertTrue(openWithBtn.waitForExists(waitingTime));
+ openWithBtn.click();
+ UiObject shareList = device.findObject(new UiSelector()
+ .resourceId(TestHelper.getAppName() + ":id/apps")
+ .enabled(true));
+ assertTrue(shareList.waitForExists(waitingTime));
+ Screengrab.screenshot("OpenWith_Dialog");
+
+ /* Share View */
+ UiObject shareBtn = device.findObject(new UiSelector()
+ .resourceId(TestHelper.getAppName() + ":id/share")
+ .enabled(true));
+ device.pressBack();
+ TestHelper.menuButton.perform(click());
+ assertTrue(shareBtn.waitForExists(waitingTime));
+ shareBtn.click();
+ TestHelper.shareAppList.waitForExists(waitingTime);
+ Screengrab.screenshot("Share_Dialog");
+
+ device.pressBack();
+ }
+
+ private void takeAddToHomeScreenScreenshot() throws UiObjectNotFoundException {
+ TestHelper.menuButton.perform(click());
+
+ TestHelper.AddtoHSmenuItem.waitForExists(waitingTime);
+ TestHelper.AddtoHSmenuItem.click();
+
+ TestHelper.AddtoHSCancelBtn.waitForExists(waitingTime);
+ Screengrab.screenshot("AddtoHSDialog");
+ TestHelper.AddtoHSCancelBtn.click();
+ }
+
+ private void takeScreenshotOfTabsTrayAndErase() throws Exception {
+ final UiObject mozillaImage = device.findObject(new UiSelector()
+ .resourceId("download")
+ .enabled(true));
+
+ UiObject imageMenuTitle = device.findObject(new UiSelector()
+ .resourceId(TestHelper.getAppName() + ":id/topPanel")
+ .enabled(true));
+ UiObject openNewTabTitle = device.findObject(new UiSelector()
+ .resourceId(TestHelper.getAppName() + ":id/design_menu_item_text")
+ .text(getString(R.string.mozac_feature_contextmenu_open_link_in_private_tab))
+ .enabled(true));
+ UiObject multiTabBtn = device.findObject(new UiSelector()
+ .resourceId(TestHelper.getAppName() + ":id/tabs")
+ .enabled(true));
+ UiObject eraseHistoryBtn = device.findObject(new UiSelector()
+ .text(getString(R.string.tabs_tray_action_erase))
+ .enabled(true));
+
+ assertTrue(mozillaImage.waitForExists(waitingTime));
+ mozillaImage.dragTo(mozillaImage, 7);
+ assertTrue(imageMenuTitle.waitForExists(waitingTime));
+ assertTrue(imageMenuTitle.exists());
+ Screengrab.screenshot("Image_Context_Menu");
+
+ //Open a new tab
+ openNewTabTitle.click();
+ TestHelper.mDevice.wait(Until.findObject(
+ By.res(TestHelper.getAppName(), "snackbar_text")), 5000);
+ Screengrab.screenshot("New_Tab_Popup");
+ TestHelper.mDevice.wait(Until.gone(
+ By.res(TestHelper.getAppName(), "snackbar_text")), 5000);
+
+ assertTrue(multiTabBtn.waitForExists(waitingTime));
+ multiTabBtn.click();
+ assertTrue(eraseHistoryBtn.waitForExists(waitingTime));
+ Screengrab.screenshot("Multi_Tab_Menu");
+
+ eraseHistoryBtn.click();
+
+ device.wait(Until.findObject(
+ By.res(TestHelper.getAppName(), "snackbar_text")), waitingTime);
+
+ Screengrab.screenshot("YourBrowsingHistoryHasBeenErased");
+ }
+
+ private void takeScreenshotOfFindDialog() throws Exception {
+ UiObject findinpageMenuItem = device.findObject(new UiSelector()
+ .resourceId(TestHelper.getAppName() + ":id/find_in_page")
+ .enabled(true));
+ UiObject findinpageCloseBtn = device.findObject(new UiSelector()
+ .resourceId(TestHelper.getAppName() + ":id/close_find_in_page")
+ .enabled(true));
+
+ TestHelper.menuButton.perform(click());
+ findinpageMenuItem.waitForExists(waitingTime);
+ findinpageMenuItem.click();
+
+ findinpageCloseBtn.waitForExists(waitingTime);
+ Screengrab.screenshot("Find_In_Page_Dialog");
+ findinpageCloseBtn.click();
+ }
+
+ private void takeScreenshotofInsecureCon() throws Exception {
+
+ TestHelper.securityInfoIcon.click();
+ TestHelper.identityState.waitForExists(waitingTime);
+ Screengrab.screenshot("insecure_connection");
+ device.pressBack();
+ }
+
+ // This test requires external internet connection
+ private void takeScreenshotofSecureCon() throws Exception {
+
+ // take the security info of google.com for https connection
+ onView(withId(R.id.mozac_browser_toolbar_edit_url_view))
+ .check(matches(isDisplayed()))
+ .check(matches(hasFocus()))
+ .perform(click(), replaceText("www.google.com"), pressImeActionButton());
+ TestHelper.waitForWebContent();
+ TestHelper.progressBar.waitUntilGone(waitingTime);
+ TestHelper.securityInfoIcon.click();
+ TestHelper.identityState.waitForExists(waitingTime);
+ Screengrab.screenshot("secure_connection");
+ device.pressBack();
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/ErrorPagesScreenshots.java b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/ErrorPagesScreenshots.java
new file mode 100644
index 0000000000..aa95e0923e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/ErrorPagesScreenshots.java
@@ -0,0 +1,96 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.screenshots;
+
+import android.os.Build;
+
+import androidx.test.espresso.web.webdriver.Locator;
+import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.UiObject;
+import androidx.test.uiautomator.UiSelector;
+
+import org.junit.ClassRule;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mozilla.focus.R;
+import org.mozilla.focus.helpers.TestHelper;
+
+import tools.fastlane.screengrab.Screengrab;
+import tools.fastlane.screengrab.locale.LocaleTestRule;
+
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.action.ViewActions.click;
+import static androidx.test.espresso.action.ViewActions.pressImeActionButton;
+import static androidx.test.espresso.action.ViewActions.replaceText;
+import static androidx.test.espresso.assertion.ViewAssertions.matches;
+import static androidx.test.espresso.matcher.ViewMatchers.hasFocus;
+import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.espresso.web.sugar.Web.onWebView;
+import static androidx.test.espresso.web.webdriver.DriverAtoms.findElement;
+import static androidx.test.espresso.web.webdriver.DriverAtoms.webClick;
+import static androidx.test.espresso.web.webdriver.DriverAtoms.webScrollIntoView;
+import static junit.framework.Assert.assertTrue;
+
+@Ignore("See: https://github.com/mozilla-mobile/mobile-test-eng/issues/305")
+@RunWith(AndroidJUnit4.class)
+public class ErrorPagesScreenshots extends ScreenshotTest {
+
+ @ClassRule
+ public static final LocaleTestRule localeTestRule = new LocaleTestRule();
+
+ private enum ErrorTypes {
+ ERROR_UNKNOWN (-1),
+ ERROR_HOST_LOOKUP (-2),
+ ERROR_CONNECT (-6),
+ ERROR_TIMEOUT (-8),
+ ERROR_REDIRECT_LOOP (-9),
+ ERROR_UNSUPPORTED_SCHEME (-10),
+ ERROR_FAILED_SSL_HANDSHAKE (-11),
+ ERROR_BAD_URL (-12),
+ ERROR_TOO_MANY_REQUESTS (-15);
+ private int value;
+
+ ErrorTypes(int value) {
+ this.value = value;
+ }
+ }
+
+ @Test
+ public void takeScreenshotsOfErrorPages() {
+ for (ErrorTypes error: ErrorTypes.values()) {
+ onView(withId(R.id.mozac_browser_toolbar_edit_url_view))
+ .check(matches(isDisplayed()))
+ .check(matches(hasFocus()))
+ .perform(click(), replaceText("error:" + error.value), pressImeActionButton());
+
+ assertTrue(TestHelper.webView.waitForExists(waitingTime));
+ assertTrue(TestHelper.progressBar.waitUntilGone(waitingTime));
+
+ // Android O has an issue with using Locator.ID
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ UiObject tryAgainBtn = device.findObject(new UiSelector()
+ .resourceId("errorTryAgain")
+ .clickable(true));
+ assertTrue(tryAgainBtn.waitForExists(waitingTime));
+ } else {
+ onWebView()
+ .withElement(findElement(Locator.ID, "errorTitle"))
+ .perform(webClick());
+
+ onWebView()
+ .withElement(findElement(Locator.ID, "errorTryAgain"))
+ .perform(webScrollIntoView());
+ }
+
+ Screengrab.screenshot(error.name());
+
+ onView(withId(R.id.mozac_browser_toolbar_edit_url_view))
+ .check(matches(isDisplayed()))
+ .perform(click());
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/FirstRunScreenshots.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/FirstRunScreenshots.kt
new file mode 100644
index 0000000000..cdd8fd0465
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/FirstRunScreenshots.kt
@@ -0,0 +1,55 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+@file:Suppress("DEPRECATION")
+
+package org.mozilla.focus.screenshots
+
+import android.os.SystemClock
+import androidx.test.rule.ActivityTestRule
+import org.junit.Ignore
+import org.junit.Rule
+import org.junit.Test
+import org.mozilla.focus.activity.MainActivity
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import tools.fastlane.screengrab.Screengrab
+import tools.fastlane.screengrab.locale.LocaleTestRule
+
+class FirstRunScreenshots : ScreenshotTest() {
+ @Rule
+ @JvmField
+ var mActivityTestRule: ActivityTestRule<MainActivity> =
+ object : MainActivityFirstrunTestRule(true, true) {
+ }
+
+ @Rule
+ @JvmField
+ val localeTestRule = LocaleTestRule()
+
+ @Ignore
+ @Test
+ fun takeScreenshotsOfFirstrun() {
+ homeScreen {
+ verifyOnboardingFirstSlide()
+ device.waitForIdle()
+ SystemClock.sleep(5000)
+ Screengrab.screenshot("Onboarding_1_View")
+
+ clickOnboardingNextButton()
+
+ verifyOnboardingSecondSlide()
+ Screengrab.screenshot("Onboarding_2_View")
+
+ clickOnboardingNextButton()
+
+ verifyOnboardingThirdSlide()
+ Screengrab.screenshot("Onboarding_3_View")
+
+ clickOnboardingNextButton()
+
+ verifyOnboardingLastSlide()
+ Screengrab.screenshot("Onboarding_last_View")
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/HomeScreenScreenshots.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/HomeScreenScreenshots.kt
new file mode 100644
index 0000000000..9f724f8b0c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/HomeScreenScreenshots.kt
@@ -0,0 +1,129 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+@file:Suppress("DEPRECATION")
+
+package org.mozilla.focus.screenshots
+
+import android.os.SystemClock
+import androidx.appcompat.app.AppCompatDelegate
+import androidx.test.espresso.Espresso
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.ViewInteraction
+import androidx.test.espresso.action.ViewActions
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers
+import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
+import androidx.test.espresso.matcher.ViewMatchers.withId
+import androidx.test.rule.ActivityTestRule
+import androidx.test.uiautomator.UiObject
+import androidx.test.uiautomator.UiSelector
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.MainActivity
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.TestHelper
+import org.mozilla.focus.helpers.TestHelper.waitForWebContent
+import tools.fastlane.screengrab.Screengrab
+import tools.fastlane.screengrab.locale.LocaleTestRule
+import java.util.Locale
+
+class HomeScreenScreenshots : ScreenshotTest() {
+ @Rule @JvmField
+ var mActivityTestRule: ActivityTestRule<MainActivity> =
+ object : MainActivityFirstrunTestRule(true, false) {
+ }
+
+ @Rule @JvmField
+ val localeTestRule = LocaleTestRule()
+
+ @Before
+ fun setUp() {
+ mActivityTestRule.runOnUiThread {
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
+ }
+ }
+
+ @Test
+ fun takeScreenshotsOfHomeScreen() {
+ onView(withId(R.id.mozac_browser_toolbar_edit_url_view))
+ .check(matches(isDisplayed()))
+ .check(matches(ViewMatchers.hasFocus()))
+ SystemClock.sleep(5000)
+ editURLBar.click()
+ typeInSearchBar("")
+
+ Screengrab.screenshot("Home_View")
+ }
+
+ @Test
+ fun takeScreenshotShortCutsHomeScreen() {
+ homeScreen {
+ addSiteToShortCuts("mozilla.com")
+ addSiteToShortCuts("pocket.com")
+ addSiteToShortCuts("relay.com")
+ addSiteToShortCuts("monitor.firefox.com")
+ TestHelper.mDevice.waitForIdle()
+ Espresso.closeSoftKeyboard()
+ SystemClock.sleep(5000)
+ Screengrab.screenshot("ShortCuts")
+ }
+ }
+
+ @Test
+ fun openWebsiteFocus() {
+ var currentLocale: String = Locale.getDefault().getLanguage()
+
+ editURLBar.click()
+ SystemClock.sleep(1000)
+
+ typeInSearchBar("www.mozilla.org/" + currentLocale + "/firefox/browsers/mobile/focus/")
+ TestHelper.mDevice.waitForIdle()
+ TestHelper.mDevice.pressEnter()
+ waitForWebContent()
+ TestHelper.waitForWebSiteTitleLoad()
+
+ SystemClock.sleep(30000)
+ waitForWebContent()
+ Screengrab.screenshot("FocusWebsite")
+ }
+
+ private fun addSiteToShortCuts(website: String) {
+ editURLBar.click()
+ SystemClock.sleep(1000)
+ typeInSearchBar(website)
+ TestHelper.mDevice.pressEnter()
+ TestHelper.mDevice.waitForIdle()
+ menuButton.click()
+ TestHelper.mDevice.waitForIdle()
+ addToShortCuts()
+ TestHelper.mDevice.waitForIdle()
+ eraseButton.click()
+ TestHelper.mDevice.waitForIdle()
+ }
+ private val editURLBar: UiObject =
+ TestHelper.mDevice.findObject(
+ UiSelector().resourceId("${TestHelper.packageName}:id/mozac_browser_toolbar_edit_url_view"),
+ )
+
+ private fun typeInSearchBar(searchString: String) {
+ searchBar.clearTextField()
+ searchBar.setText(searchString)
+ }
+
+ private val searchBar =
+ TestHelper.mDevice.findObject(UiSelector().resourceId("${TestHelper.packageName}:id/mozac_browser_toolbar_edit_url_view"))
+
+ private val menuButton =
+ TestHelper.mDevice.findObject(UiSelector().resourceId("${TestHelper.packageName}:id/mozac_browser_toolbar_menu"))
+
+ private fun addToShortCuts(): ViewInteraction? = onView(ViewMatchers.withText(R.string.menu_add_to_shortcuts)).perform(
+ ViewActions.click(),
+ )
+
+ private val eraseButton =
+ TestHelper.mDevice.findObject(UiSelector().resourceId("${TestHelper.packageName}:id/erase"))
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/NotificationScreenshots.java b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/NotificationScreenshots.java
new file mode 100644
index 0000000000..3a7e63738b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/NotificationScreenshots.java
@@ -0,0 +1,104 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.screenshots;
+
+import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.UiObject;
+import androidx.test.uiautomator.UiSelector;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mozilla.focus.R;
+import org.mozilla.focus.helpers.TestHelper;
+
+import java.io.IOException;
+
+import okhttp3.mockwebserver.MockResponse;
+import okhttp3.mockwebserver.MockWebServer;
+import tools.fastlane.screengrab.Screengrab;
+import tools.fastlane.screengrab.locale.LocaleTestRule;
+
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.action.ViewActions.click;
+import static androidx.test.espresso.action.ViewActions.pressImeActionButton;
+import static androidx.test.espresso.action.ViewActions.replaceText;
+import static androidx.test.espresso.assertion.ViewAssertions.matches;
+import static androidx.test.espresso.matcher.ViewMatchers.hasFocus;
+import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.espresso.matcher.ViewMatchers.withText;
+import static junit.framework.Assert.assertTrue;
+import static org.hamcrest.Matchers.containsString;
+
+/**
+ * This test has been super flaky in the past so we moved it to its own test. This way we wat least
+ * only lose screenshots of this test in case it fails.
+ */
+@Ignore("See: https://github.com/mozilla-mobile/mobile-test-eng/issues/305")
+@RunWith(AndroidJUnit4.class)
+public class NotificationScreenshots extends ScreenshotTest {
+
+ @ClassRule
+ public static final LocaleTestRule localeTestRule = new LocaleTestRule();
+
+ private MockWebServer webServer;
+
+ @Before
+ public void setUpWebServer() throws IOException {
+ webServer = new MockWebServer();
+
+ // Test page
+ webServer.enqueue(new MockResponse().setBody(TestHelper.readTestAsset("genericPage.html")));
+ }
+
+ @After
+ public void tearDownWebServer() {
+ try {
+ webServer.close();
+ webServer.shutdown();
+ } catch (IOException e) {
+ throw new AssertionError("Could not stop web server", e);
+ }
+ }
+
+ @Test
+ public void takeScreenshotOfNotification() throws Exception {
+ onView(withId(R.id.mozac_browser_toolbar_edit_url_view))
+ .check(matches(isDisplayed()))
+ .check(matches(hasFocus()))
+ .perform(click(), replaceText(webServer.url("/").toString()), pressImeActionButton());
+
+ onView(withId(R.id.mozac_browser_toolbar_url_view))
+ .check(matches(isDisplayed()))
+ .check(matches(withText(containsString(webServer.getHostName()))));
+
+ final UiObject openAction = device.findObject(new UiSelector()
+ .descriptionContains(getString(R.string.notification_action_open))
+ .resourceId("android:id/action0")
+ .enabled(true));
+
+ device.openNotification();
+
+ try {
+ if (!openAction.waitForExists(waitingTime)) {
+ // The notification is not expanded. Let's expand it now.
+ device.findObject(new UiSelector()
+ .text(getString(R.string.app_name)))
+ .swipeDown(20);
+
+ assertTrue(openAction.waitForExists(waitingTime));
+ }
+
+ Screengrab.screenshot("DeleteHistory_NotificationBar");
+ } finally {
+ // Close notification tray again
+ device.pressBack();
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/ScreenshotTest.java b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/ScreenshotTest.java
new file mode 100644
index 0000000000..427d2f0661
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/ScreenshotTest.java
@@ -0,0 +1,94 @@
+package org.mozilla.focus.screenshots;
+
+import android.app.Instrumentation;
+import android.content.Context;
+import android.text.format.DateUtils;
+
+import androidx.annotation.StringRes;
+import androidx.test.InstrumentationRegistry;
+import androidx.test.rule.ActivityTestRule;
+import androidx.test.uiautomator.UiDevice;
+
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.rules.TestRule;
+import org.junit.rules.TestWatcher;
+import org.junit.runner.Description;
+import org.mozilla.focus.activity.MainActivity;
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule;
+import org.mozilla.focus.idlingResources.SessionLoadedIdlingResource;
+
+import tools.fastlane.screengrab.Screengrab;
+import tools.fastlane.screengrab.UiAutomatorScreenshotStrategy;
+
+/**
+ * Base class for tests that take screenshots.
+ */
+@Ignore("This test was written specifically for WebView and needs to be adapted for GeckoView, see: https://github.com/mozilla-mobile/mobile-test-eng/issues/305")
+public abstract class ScreenshotTest {
+ final long waitingTime = DateUtils.SECOND_IN_MILLIS * 10;
+
+ private Context targetContext;
+ private SessionLoadedIdlingResource loadingIdlingResource;
+
+ UiDevice device;
+
+ @Rule
+ public ActivityTestRule<MainActivity> mActivityTestRule = new MainActivityFirstrunTestRule(true, false, true,false) {
+ @Override
+ protected void beforeActivityLaunched() {
+ super.beforeActivityLaunched();
+ }
+ };
+
+ @Rule
+ public TestRule screenshotOnFailureRule = new TestWatcher() {
+ @Override
+ protected void failed(Throwable e, Description description) {
+ // On error take a screenshot so that we can debug it easily
+ Screengrab.screenshot("FAILURE-" + getScreenshotName(description));
+ }
+
+ private String getScreenshotName(Description description) {
+ return description.getClassName().replace(".", "-")
+ + "_"
+ + description.getMethodName().replace(".", "-");
+ }
+ };
+
+ @Before
+ public void setUpScreenshots() {
+ Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
+ targetContext = instrumentation.getTargetContext();
+ device = UiDevice.getInstance(instrumentation);
+
+ // Use this to switch between default strategy and HostScreencap strategy
+ Screengrab.setDefaultScreenshotStrategy(new UiAutomatorScreenshotStrategy());
+ //Screengrab.setDefaultScreenshotStrategy(new HostScreencapScreenshotStrategy(device));
+
+ device.waitForIdle();
+ }
+
+ /* Disable idlingResources. This causes error when accessing Settings Dialog */
+ /*
+ @Before
+ public void setUpIdlingResources() {
+ loadingIdlingResource = new SessionLoadedIdlingResource();
+ IdlingRegistry.getInstance().register(loadingIdlingResource);
+ }
+
+ @After
+ public void tearDownIdlingResources() {
+ device.waitForIdle();
+ IdlingRegistry.getInstance().unregister(loadingIdlingResource);
+ }
+ */
+ String getString(@StringRes int resourceId) {
+ return targetContext.getString(resourceId).trim();
+ }
+
+ String getString(@StringRes int resourceId, Object... formatArgs) {
+ return targetContext.getString(resourceId, formatArgs).trim();
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/SettingsScreenshots.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/SettingsScreenshots.kt
new file mode 100644
index 0000000000..cf051b0f4c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/screenshots/SettingsScreenshots.kt
@@ -0,0 +1,71 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+@file:Suppress("DEPRECATION")
+
+package org.mozilla.focus.screenshots
+
+import android.os.SystemClock
+import androidx.appcompat.app.AppCompatDelegate
+import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES
+import androidx.test.rule.ActivityTestRule
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.mozilla.focus.activity.MainActivity
+import org.mozilla.focus.activity.robots.homeScreen
+import org.mozilla.focus.activity.robots.searchScreen
+import org.mozilla.focus.helpers.MainActivityFirstrunTestRule
+import org.mozilla.focus.helpers.TestHelper
+import tools.fastlane.screengrab.Screengrab
+import tools.fastlane.screengrab.locale.LocaleTestRule
+
+class SettingsScreenshots : ScreenshotTest() {
+ @Rule
+ @JvmField
+ var mActivityTestRule: ActivityTestRule<MainActivity> =
+ object : MainActivityFirstrunTestRule(true, false) {
+ }
+
+ @Before
+ fun setUp() {
+ mActivityTestRule.runOnUiThread {
+ AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_YES)
+ }
+ }
+
+ @Rule
+ @JvmField
+ val localeTestRule = LocaleTestRule()
+
+ @Test
+ fun takeScreenshotOfSiteSettings() {
+ val pageUrl = "https://www.mozilla.org"
+
+ searchScreen {
+ }.loadPage(pageUrl) {
+ verifySiteTrackingProtectionIconShown()
+ SystemClock.sleep(5000)
+ TestHelper.waitForWebSiteTitleLoad()
+ TestHelper.waitForWebContent()
+ SystemClock.sleep(3000)
+ }.openSiteSettingsMenu {
+ SystemClock.sleep(5000)
+ Screengrab.screenshot("SiteSettingsSubMenu_View")
+ }
+ }
+
+ @Test
+ fun takeScreenshotOfSearchSettings() {
+ homeScreen {
+ }.openMainMenu {
+ }.openSettings {
+ verifySettingsMenuItems()
+ }.openSearchSettingsMenu {
+ verifySearchSettingsItems()
+ openSearchEngineSubMenu()
+ SystemClock.sleep(5000)
+ Screengrab.screenshot("SearchEngineSubMenu_View")
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/testAnnotations/SmokeTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/testAnnotations/SmokeTest.kt
new file mode 100644
index 0000000000..7894012bea
--- /dev/null
+++ b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/testAnnotations/SmokeTest.kt
@@ -0,0 +1,13 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.testAnnotations
+
+/**
+ * A custom annotation to mark the smoke tests corresponding to the ones in TestRail:
+ * https://testrail.stage.mozaws.net/index.php?/suites/view/1028
+ */
+@Target(AnnotationTarget.FUNCTION, AnnotationTarget.CLASS)
+@Retention(AnnotationRetention.RUNTIME)
+annotation class SmokeTest
diff --git a/mobile/android/focus-android/app/src/beta/res/drawable-v24/ic_splash_screen.xml b/mobile/android/focus-android/app/src/beta/res/drawable-v24/ic_splash_screen.xml
new file mode 100644
index 0000000000..dac3eb8620
--- /dev/null
+++ b/mobile/android/focus-android/app/src/beta/res/drawable-v24/ic_splash_screen.xml
@@ -0,0 +1,263 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <path
+ android:pathData="M78.59,61.31A19.11,19.11 0,0 1,75 68a47.27,47.27 0,0 1,-7.98 7.54h6.49A7.49,7.49 0,0 0,81 68.04V64.77A4.1,4.1 0,0 0,78.59 61.31Z"
+ android:fillColor="#008787"/>
+ <path
+ android:pathData="M78.59,61.31A19.11,19.11 0,0 1,75 68a47.27,47.27 0,0 1,-7.98 7.54h6.49A7.49,7.49 0,0 0,81 68.04V64.77A4.1,4.1 0,0 0,78.59 61.31Z"
+ android:strokeAlpha="0.9"
+ android:fillAlpha="0.9">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startX="78.08"
+ android:startY="73.28"
+ android:endX="70.09"
+ android:endY="65.71"
+ android:type="linear">
+ <item android:offset="0" android:color="#7F054096"/>
+ <item android:offset="0.05" android:color="#700F3D9C"/>
+ <item android:offset="0.26" android:color="#3F2F35B1"/>
+ <item android:offset="0.47" android:color="#1C462FBF"/>
+ <item android:offset="0.67" android:color="#07542BC8"/>
+ <item android:offset="0.86" android:color="#00592ACB"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M77.9,44.18c-1.13,-2.72 -3.42,-5.66 -5.22,-6.59a27.02,27.02 0,0 1,2.64 7.9l0.01,0.04c-2.94,-7.34 -7.94,-10.3 -12.01,-16.74 -0.21,-0.33 -0.41,-0.65 -0.61,-1 -0.11,-0.2 -0.21,-0.37 -0.29,-0.54a4.74,4.74 0,0 1,-0.39 -1.03,0.07 0.07,0 0,0 -0.06,-0.07 0.09,0.09 0,0 0,-0.05 0l-0.01,0.01 -0.02,0.01 0.01,-0.01a19,19 0,0 0,-8.96 14.46,13.03 13.03,0 0,0 -7.17,2.76 7.74,7.74 0,0 0,-0.67 -0.51,12.06 12.06,0 0,1 -0.07,-6.36 19.29,19.29 0,0 0,-6.27 4.84l-0.01,0c-1.03,-1.31 -0.96,-5.62 -0.9,-6.52a4.68,4.68 0,0 0,-0.87 0.46,18.97 18.97,0 0,0 -2.54,2.18 22.8,22.8 0,0 0,-2.43 2.92l-0,0 0,-0a21.97,21.97 0,0 0,-3.49 7.89c-0.01,0.06 -0.02,0.11 -0.04,0.17 -0.05,0.23 -0.23,1.38 -0.26,1.63 -0,0.02 -0,0.04 -0.01,0.06a24.81,24.81 0,0 0,-0.42 3.59c-0,0.04 -0,0.09 -0,0.13A26.04,26.04 0,0 0,79.47 58.26c0.04,-0.33 0.08,-0.67 0.12,-1A26.76,26.76 0,0 0,77.9 44.18ZM47.89,64.56c0.12,0.06 0.24,0.12 0.36,0.18l0.02,0.01C48.14,64.68 48.02,64.62 47.89,64.56ZM53.85,48.85 L53.85,48.85 53.85,48.85ZM75.32,45.54l-0,-0.03 0,0.03Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startX="77.15"
+ android:startY="39.95"
+ android:endX="32.1"
+ android:endY="68.33"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.13" android:color="#FF9356F4"/>
+ <item android:offset="0.29" android:color="#FF8951E5"/>
+ <item android:offset="0.46" android:color="#FF7A49CD"/>
+ <item android:offset="0.64" android:color="#FF643DAB"/>
+ <item android:offset="0.82" android:color="#FF492E81"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M77.9,44.18c-1.13,-2.72 -3.42,-5.66 -5.22,-6.59a27.02,27.02 0,0 1,2.64 7.9c-0,-0.01 0,0.01 0,0.02l0,0.03a23.57,23.57 0,0 1,-0.81 17.57C71.53,69.52 64.3,76.08 53,75.76 40.78,75.41 30.02,66.35 28.01,54.48a11.23,11.23 0,0 1,0.18 -4.34,19.4 19.4,0 0,0 -0.42,3.59c-0,0.04 -0,0.09 -0,0.13A26.04,26.04 0,0 0,79.47 58.26c0.04,-0.33 0.08,-0.67 0.12,-1A26.76,26.76 0,0 0,77.9 44.18Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="72.46"
+ android:centerY="32.08"
+ android:gradientRadius="54.27"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.65" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M77.9,44.18c-1.13,-2.72 -3.42,-5.66 -5.22,-6.59a27.02,27.02 0,0 1,2.64 7.9c-0,-0.01 0,0.01 0,0.02l0,0.03a23.57,23.57 0,0 1,-0.81 17.57C71.53,69.52 64.3,76.08 53,75.76 40.78,75.41 30.02,66.35 28.01,54.48a11.23,11.23 0,0 1,0.18 -4.34,19.4 19.4,0 0,0 -0.42,3.59c-0,0.04 -0,0.09 -0,0.13A26.04,26.04 0,0 0,79.47 58.26c0.04,-0.33 0.08,-0.67 0.12,-1A26.76,26.76 0,0 0,77.9 44.18Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="52.58"
+ android:centerY="54.26"
+ android:gradientRadius="54.28"
+ android:type="radial">
+ <item android:offset="0.25" android:color="#00AB71FF"/>
+ <item android:offset="0.42" android:color="#2D9462E0"/>
+ <item android:offset="0.73" android:color="#A4573B8D"/>
+ <item android:offset="0.94" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M65.25,47.24c0.06,0.04 0.11,0.08 0.16,0.12a14.16,14.16 0,0 0,-2.42 -3.15c-8.09,-8.09 -2.12,-17.55 -1.12,-18.03l0.01,-0.01a19,19 0,0 0,-8.96 14.46c0.3,-0.02 0.61,-0.05 0.91,-0.05A13.14,13.14 0,0 1,65.25 47.24Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="59.13"
+ android:centerY="19.75"
+ android:gradientRadius="39.24"
+ android:type="radial">
+ <item android:offset="0.18" android:color="#FF9658F9"/>
+ <item android:offset="0.33" android:color="#FF7E48EA"/>
+ <item android:offset="0.37" android:color="#FF7542E5"/>
+ <item android:offset="0.41" android:color="#FF6A3DD0"/>
+ <item android:offset="0.48" android:color="#FF5332A2"/>
+ <item android:offset="0.56" android:color="#FF41297E"/>
+ <item android:offset="0.63" android:color="#FF342264"/>
+ <item android:offset="0.69" android:color="#FF2C1E54"/>
+ <item android:offset="0.74" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M53.85,48.85l0,0c-0.04,0.65 -2.33,2.88 -3.13,2.88 -7.4,0 -8.61,4.48 -8.61,4.48a10.99,10.99 0,0 0,6.13 8.52c0.15,0.08 0.29,0.14 0.44,0.21 0.25,0.11 0.51,0.22 0.76,0.31a11.56,11.56 0,0 0,3.39 0.65c12.98,0.61 15.49,-15.52 6.13,-20.2a8.99,8.99 0,0 1,6.28 1.52,13.14 13.14,0 0,0 -11.41,-6.66c-0.31,0 -0.61,0.03 -0.91,0.05A13.03,13.03 0,0 0,45.76 43.38c0.4,0.34 0.85,0.78 1.79,1.72C49.31,46.84 53.84,48.64 53.85,48.85Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="46.3"
+ android:centerY="65.93"
+ android:gradientRadius="25.84"
+ android:type="radial">
+ <item android:offset="0.07" android:color="#FF9358FC"/>
+ <item android:offset="0.13" android:color="#FF9857F8"/>
+ <item android:offset="0.21" android:color="#FFA755EB"/>
+ <item android:offset="0.3" android:color="#FFBF52D7"/>
+ <item android:offset="0.39" android:color="#FFE14EBA"/>
+ <item android:offset="0.42" android:color="#FFEF4CAF"/>
+ <item android:offset="0.74" android:color="#FFFF7583"/>
+ <item android:offset="0.97" android:color="#FFFFB753"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M53.85,48.85l0,0c-0.04,0.65 -2.33,2.88 -3.13,2.88 -7.4,0 -8.61,4.48 -8.61,4.48a10.99,10.99 0,0 0,6.13 8.52c0.15,0.08 0.29,0.14 0.44,0.21 0.25,0.11 0.51,0.22 0.76,0.31a11.56,11.56 0,0 0,3.39 0.65c12.98,0.61 15.49,-15.52 6.13,-20.2a8.99,8.99 0,0 1,6.28 1.52,13.14 13.14,0 0,0 -11.41,-6.66c-0.31,0 -0.61,0.03 -0.91,0.05A13.03,13.03 0,0 0,45.76 43.38c0.4,0.34 0.85,0.78 1.79,1.72C49.31,46.84 53.84,48.64 53.85,48.85Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="53.35"
+ android:centerY="47.94"
+ android:gradientRadius="13.7"
+ android:type="radial">
+ <item android:offset="0.22" android:color="#4CFFB653"/>
+ <item android:offset="0.34" android:color="#7FFF807A"/>
+ <item android:offset="0.44" android:color="#7BFF7781"/>
+ <item android:offset="0.57" android:color="#6EFF5C94"/>
+ <item android:offset="0.64" android:color="#66FF4AA2"/>
+ <item android:offset="0.86" android:color="#4C9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M44.54,42.52c0.21,0.14 0.38,0.25 0.54,0.36a12.06,12.06 0,0 1,-0.07 -6.36,19.29 19.29,0 0,0 -6.27,4.84C38.87,41.35 42.65,41.29 44.54,42.52Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="51.9"
+ android:centerY="29.85"
+ android:gradientRadius="18.59"
+ android:type="radial">
+ <item android:offset="0.03" android:color="#FF9658F9"/>
+ <item android:offset="0.62" android:color="#FF7542E5"/>
+ <item android:offset="0.72" android:color="#FF6339C2"/>
+ <item android:offset="0.93" android:color="#FF37246B"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M28.01,54.48c2.01,11.87 12.77,20.93 24.99,21.28 11.31,0.32 18.53,-6.24 21.51,-12.64a23.57,23.57 0,0 0,0.81 -17.57l-0,-0 -0,-0.03c-0,-0.02 -0,-0.03 -0,-0.02l0.01,0.04c0.92,6.03 -2.14,11.87 -6.94,15.82l-0.01,0.03c-9.34,7.61 -18.28,4.59 -20.09,3.35 -0.13,-0.06 -0.25,-0.12 -0.38,-0.19 -5.45,-2.6 -7.7,-7.57 -7.22,-11.82a6.69,6.69 0,0 1,-6.17 -3.88,9.82 9.82,0 0,1 9.57,-0.38 12.96,12.96 0,0 0,9.78 0.38c-0.01,-0.21 -4.54,-2.01 -6.31,-3.75 -0.94,-0.93 -1.39,-1.38 -1.79,-1.71a7.74,7.74 0,0 0,-0.67 -0.51c-0.15,-0.11 -0.33,-0.22 -0.54,-0.36 -1.9,-1.23 -5.68,-1.17 -5.8,-1.16l-0.01,0c-1.03,-1.31 -0.96,-5.62 -0.9,-6.52a4.68,4.68 0,0 0,-0.87 0.46,18.97 18.97,0 0,0 -2.54,2.18 22.8,22.8 0,0 0,-2.43 2.92l-0,0 0,-0a21.97,21.97 0,0 0,-3.49 7.89C28.48,48.34 27.56,52.38 28.01,54.48Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="66.5"
+ android:centerY="18.14"
+ android:gradientRadius="76.15"
+ android:type="radial">
+ <item android:offset="0.2" android:color="#FFAB71FF"/>
+ <item android:offset="0.29" android:color="#FFA46BFC"/>
+ <item android:offset="0.41" android:color="#FF9059F2"/>
+ <item android:offset="0.54" android:color="#FF7542E5"/>
+ <item android:offset="0.64" android:color="#FF6239BF"/>
+ <item android:offset="0.94" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M62.99,44.2a14.16,14.16 0,0 1,2.42 3.15c0.14,0.11 0.28,0.22 0.39,0.32C71.7,53.12 68.61,60.81 68.38,61.36c4.8,-3.95 7.86,-9.79 6.94,-15.82 -2.94,-7.34 -7.94,-10.3 -12.01,-16.74 -0.21,-0.33 -0.41,-0.65 -0.61,-1 -0.11,-0.2 -0.21,-0.37 -0.29,-0.54a4.74,4.74 0,0 1,-0.39 -1.03,0.07 0.07,0 0,0 -0.06,-0.07 0.09,0.09 0,0 0,-0.05 0l-0.01,0.01 -0.02,0.01C60.87,26.66 54.9,36.11 62.99,44.2Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="59.05"
+ android:centerY="26.91"
+ android:gradientRadius="58.1"
+ android:type="radial">
+ <item android:offset="0.09" android:color="#FF9658F9"/>
+ <item android:offset="0.14" android:color="#FF8C51F3"/>
+ <item android:offset="0.26" android:color="#FF7542E5"/>
+ <item android:offset="0.29" android:color="#FF6E3ED6"/>
+ <item android:offset="0.4" android:color="#FF5533A6"/>
+ <item android:offset="0.5" android:color="#FF422980"/>
+ <item android:offset="0.59" android:color="#FF342365"/>
+ <item android:offset="0.67" android:color="#FF2C1E55"/>
+ <item android:offset="0.74" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M65.8,47.68c-0.11,-0.1 -0.25,-0.21 -0.39,-0.32 -0.05,-0.04 -0.1,-0.08 -0.16,-0.12a8.99,8.99 0,0 0,-6.28 -1.52C68.33,50.4 65.82,66.52 52.84,65.91a11.56,11.56 0,0 1,-3.39 -0.65c-0.25,-0.1 -0.51,-0.2 -0.76,-0.31 -0.15,-0.07 -0.29,-0.13 -0.44,-0.21l0.02,0.01c1.81,1.24 10.75,4.25 20.09,-3.35l0.01,-0.03C68.61,60.81 71.7,53.12 65.8,47.68Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="51.46"
+ android:centerY="36.73"
+ android:gradientRadius="49.52"
+ android:type="radial">
+ <item android:offset="0.01" android:color="#FF9658F9"/>
+ <item android:offset="0.12" android:color="#FF9155F6"/>
+ <item android:offset="0.25" android:color="#FF834CEE"/>
+ <item android:offset="0.34" android:color="#FF7542E5"/>
+ <item android:offset="0.78" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M42.12,56.21s1.2,-4.48 8.61,-4.48c0.8,0 3.09,-2.23 3.13,-2.88l-0,0 0,-0a12.96,12.96 0,0 1,-9.78 -0.38,9.82 9.82,0 0,0 -9.57,0.38 6.69,6.69 0,0 0,6.17 3.88c-0.48,4.26 1.77,9.22 7.22,11.82 0.12,0.06 0.24,0.12 0.36,0.18A10.99,10.99 0,0 1,42.12 56.21Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="64.53"
+ android:centerY="39.63"
+ android:gradientRadius="54.09"
+ android:type="radial">
+ <item android:offset="0.19" android:color="#FF9658F9"/>
+ <item android:offset="0.49" android:color="#FF834BED"/>
+ <item android:offset="0.66" android:color="#FF7542E5"/>
+ <item android:offset="0.7" android:color="#FF6B3DD2"/>
+ <item android:offset="0.79" android:color="#FF52319F"/>
+ <item android:offset="0.91" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M77.9,44.18c-1.13,-2.72 -3.42,-5.66 -5.22,-6.59a27.02,27.02 0,0 1,2.64 7.9l0.01,0.04c-2.94,-7.34 -7.94,-10.3 -12.01,-16.74 -0.21,-0.33 -0.41,-0.65 -0.61,-1 -0.11,-0.2 -0.21,-0.37 -0.29,-0.54a4.74,4.74 0,0 1,-0.39 -1.03,0.07 0.07,0 0,0 -0.06,-0.07 0.09,0.09 0,0 0,-0.05 0l-0.01,0.01 -0.02,0.01 0.01,-0.01a19,19 0,0 0,-8.96 14.46c0.3,-0.02 0.61,-0.05 0.91,-0.05a13.14,13.14 0,0 1,11.41 6.66,8.99 8.99,0 0,0 -6.28,-1.52C68.33,50.4 65.82,66.52 52.84,65.91a11.56,11.56 0,0 1,-3.39 -0.65c-0.25,-0.1 -0.51,-0.2 -0.76,-0.31 -0.15,-0.07 -0.29,-0.13 -0.44,-0.21l0.02,0.01c-0.13,-0.06 -0.25,-0.12 -0.38,-0.19 0.12,0.06 0.24,0.12 0.36,0.18a10.99,10.99 0,0 1,-6.13 -8.52s1.2,-4.48 8.61,-4.48c0.8,0 3.09,-2.23 3.13,-2.88l-0,0 0,-0c-0.01,-0.21 -4.54,-2.01 -6.31,-3.75 -0.94,-0.93 -1.39,-1.38 -1.79,-1.71a7.74,7.74 0,0 0,-0.67 -0.51,12.06 12.06,0 0,1 -0.07,-6.36 19.29,19.29 0,0 0,-6.27 4.84l-0.01,0c-1.03,-1.31 -0.96,-5.62 -0.9,-6.52a4.68,4.68 0,0 0,-0.87 0.46,18.97 18.97,0 0,0 -2.54,2.18 22.8,22.8 0,0 0,-2.43 2.92l-0,0 0,-0a21.97,21.97 0,0 0,-3.49 7.89c-0.01,0.06 -0.02,0.11 -0.04,0.17 -0.05,0.23 -0.27,1.39 -0.3,1.64 -0,0.02 0,-0.02 0,0a30.28,30.28 0,0 0,-0.38 3.63c-0,0.04 -0,0.09 -0,0.13A26.04,26.04 0,0 0,79.47 58.26c0.04,-0.33 0.08,-0.67 0.12,-1A26.76,26.76 0,0 0,77.9 44.18ZM75.32,45.52 L75.32,45.54 75.32,45.54Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startX="73.93"
+ android:startY="34.26"
+ android:endX="37.16"
+ android:endY="71.03"
+ android:type="linear">
+ <item android:offset="0" android:color="#E59059FF"/>
+ <item android:offset="0.61" android:color="#00291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M79.75,66.01h-21.53A9.23,9.23 0,0 0,49 75.24v4.51A1.25,1.25 0,0 0,50.25 81h21.53A9.23,9.23 0,0 0,81 71.77V64.77A1.25,1.25 0,0 1,79.75 66.01Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startX="52.52"
+ android:startY="67.39"
+ android:endX="81.77"
+ android:endY="79.77"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF54FFBD"/>
+ <item android:offset="1" android:color="#FF00DDFF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M54.26,70.33h2.65c1.42,0 2.22,0.64 2.22,1.79a1.42,1.42 0,0 1,-0.74 1.3,1.49 1.49,0 0,1 0.83,1.42c0,1.27 -0.88,1.9 -2.3,1.9L54.26,76.74ZM55.48,71.42v1.49h1.48c0.66,0 0.94,-0.33 0.94,-0.76 0,-0.45 -0.31,-0.72 -0.96,-0.72ZM55.48,74.02v1.6h1.47c0.68,0 1.03,-0.31 1.03,-0.81s-0.3,-0.79 -1.08,-0.79Z"
+ android:fillColor="#20123a"/>
+ <path
+ android:pathData="M60.42,70.33h4.31V71.49H61.66v1.44h3.08v1.17H61.66V75.56h3.08v1.18H60.42Z"
+ android:fillColor="#20123a"/>
+ <path
+ android:pathData="M67.58,71.47h-1.78V70.33h4.77v1.14H68.8v5.27H67.58Z"
+ android:fillColor="#20123a"/>
+ <path
+ android:pathData="M72.67,70.33h1.22l2.43,6.42L75.04,76.74l-0.42,-1.17L71.94,75.57l-0.42,1.17L70.24,76.74ZM72.35,74.45h1.85l-0.92,-2.55Z"
+ android:fillColor="#20123a"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/beta/res/drawable/ic_splash_screen.png b/mobile/android/focus-android/app/src/beta/res/drawable/ic_splash_screen.png
new file mode 100644
index 0000000000..d19e90b7d9
--- /dev/null
+++ b/mobile/android/focus-android/app/src/beta/res/drawable/ic_splash_screen.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/beta/res/values-night/colors.xml b/mobile/android/focus-android/app/src/beta/res/values-night/colors.xml
new file mode 100644
index 0000000000..38c1ed8f3e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/beta/res/values-night/colors.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <color name="splash_screen_background">#f0f0f4</color>
+</resources>
diff --git a/mobile/android/focus-android/app/src/debug/AndroidManifest.xml b/mobile/android/focus-android/app/src/debug/AndroidManifest.xml
new file mode 100644
index 0000000000..a170dd5bbb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<manifest xmlns:tools="http://schemas.android.com/tools"
+ xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- Allows unlocking your device and activating its screen so UI tests can succeed -->
+ <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
+ <uses-permission android:name="android.permission.WAKE_LOCK"/>
+
+ <!-- Allows for storing and retrieving screenshots -->
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+
+ <!-- Allows changing locales for FastLane screenshots -->
+ <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"
+ tools:ignore="ProtectedPermissions" />
+ <application
+ tools:replace="android:name"
+ android:name="org.mozilla.focus.DebugFocusApplication"
+ android:icon="@mipmap/ic_launcher">
+ </application>
+</manifest>
diff --git a/mobile/android/focus-android/app/src/debug/java/org/mozilla/focus/DebugFocusApplication.kt b/mobile/android/focus-android/app/src/debug/java/org/mozilla/focus/DebugFocusApplication.kt
new file mode 100644
index 0000000000..c8b42487df
--- /dev/null
+++ b/mobile/android/focus-android/app/src/debug/java/org/mozilla/focus/DebugFocusApplication.kt
@@ -0,0 +1,40 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus
+
+import androidx.preference.PreferenceManager
+import kotlinx.coroutines.DelicateCoroutinesApi
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
+import leakcanary.AppWatcher
+import leakcanary.LeakCanary
+import org.mozilla.focus.ext.application
+
+class DebugFocusApplication : FocusApplication() {
+
+ @OptIn(DelicateCoroutinesApi::class)
+ override fun setupLeakCanary() {
+ if (!AppWatcher.isInstalled) {
+ AppWatcher.manualInstall(
+ application = application,
+ watchersToInstall = AppWatcher.appDefaultWatchers(application),
+ )
+ }
+ GlobalScope.launch(Dispatchers.IO) {
+ val isEnabled = PreferenceManager.getDefaultSharedPreferences(applicationContext)
+ .getBoolean(getString(R.string.pref_key_leakcanary), true)
+ updateLeakCanaryState(isEnabled)
+ }
+ }
+
+ @OptIn(DelicateCoroutinesApi::class)
+ override fun updateLeakCanaryState(isEnabled: Boolean) {
+ GlobalScope.launch(Dispatchers.IO) {
+ LeakCanary.showLeakDisplayActivityLauncherIcon(isEnabled)
+ LeakCanary.config = LeakCanary.config.copy(dumpHeap = isEnabled)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/debug/java/org/mozilla/focus/utils/AdjustHelper.java b/mobile/android/focus-android/app/src/debug/java/org/mozilla/focus/utils/AdjustHelper.java
new file mode 100644
index 0000000000..b0aa2e1835
--- /dev/null
+++ b/mobile/android/focus-android/app/src/debug/java/org/mozilla/focus/utils/AdjustHelper.java
@@ -0,0 +1,14 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils;
+
+import android.content.Context;
+
+public class AdjustHelper {
+ public static void setupAdjustIfNeeded(Context context) {
+ // DEBUG: No Adjust - This class has different implementations for all build types.
+ }
+}
diff --git a/mobile/android/focus-android/app/src/debug/java/org/mozilla/focus/web/Config.kt b/mobile/android/focus-android/app/src/debug/java/org/mozilla/focus/web/Config.kt
new file mode 100644
index 0000000000..33ddf545d7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/debug/java/org/mozilla/focus/web/Config.kt
@@ -0,0 +1,10 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.web
+
+object Config {
+ const val EXPERIMENT_DESCRIPTOR_GECKOVIEW_ENGINE = "use-gecko"
+ const val EXPERIMENT_DESCRIPTOR_HOME_SCREEN_TIPS = "use-homescreen-tips"
+}
diff --git a/mobile/android/focus-android/app/src/debug/res/mipmap-anydpi-v26/ic_launcher.xml b/mobile/android/focus-android/app/src/debug/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000000..a8b7928d2e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/debug/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@drawable/ic_launcher_background"/>
+ <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
+</adaptive-icon> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/debug/res/mipmap-hdpi/ic_launcher.png b/mobile/android/focus-android/app/src/debug/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000000..3a67ba31af
--- /dev/null
+++ b/mobile/android/focus-android/app/src/debug/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/debug/res/mipmap-hdpi/ic_launcher_foreground.png b/mobile/android/focus-android/app/src/debug/res/mipmap-hdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000..eda227ffe8
--- /dev/null
+++ b/mobile/android/focus-android/app/src/debug/res/mipmap-hdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/debug/res/mipmap-xhdpi/ic_launcher.png b/mobile/android/focus-android/app/src/debug/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000000..ef9c4579f1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/debug/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/debug/res/mipmap-xhdpi/ic_launcher_foreground.png b/mobile/android/focus-android/app/src/debug/res/mipmap-xhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000..20f689eb47
--- /dev/null
+++ b/mobile/android/focus-android/app/src/debug/res/mipmap-xhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png b/mobile/android/focus-android/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000..caca7f639e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/debug/res/mipmap-xxhdpi/ic_launcher_foreground.png b/mobile/android/focus-android/app/src/debug/res/mipmap-xxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000..0962261d8d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/debug/res/mipmap-xxhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png b/mobile/android/focus-android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000..9e430cd544
--- /dev/null
+++ b/mobile/android/focus-android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/mobile/android/focus-android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000..4a562102cf
--- /dev/null
+++ b/mobile/android/focus-android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/focusBeta/ic_launcher-playstore.png b/mobile/android/focus-android/app/src/focusBeta/ic_launcher-playstore.png
new file mode 100644
index 0000000000..0e543571d0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/ic_launcher-playstore.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/focusBeta/java/org/mozilla/focus/utils/AdjustHelper.java b/mobile/android/focus-android/app/src/focusBeta/java/org/mozilla/focus/utils/AdjustHelper.java
new file mode 100644
index 0000000000..b0aa2e1835
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/java/org/mozilla/focus/utils/AdjustHelper.java
@@ -0,0 +1,14 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils;
+
+import android.content.Context;
+
+public class AdjustHelper {
+ public static void setupAdjustIfNeeded(Context context) {
+ // DEBUG: No Adjust - This class has different implementations for all build types.
+ }
+}
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/drawable-land/dark_background.xml b/mobile/android/focus-android/app/src/focusBeta/res/drawable-land/dark_background.xml
new file mode 100644
index 0000000000..b225a9d47a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/drawable-land/dark_background.xml
@@ -0,0 +1,29 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="640dp"
+ android:height="360dp"
+ android:viewportWidth="640"
+ android:viewportHeight="360">
+ <path
+ android:pathData="M676,396V0H0V396H676Z"
+ android:fillType="evenOdd">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="-99.3094"
+ android:startX="-124.872"
+ android:endY="645.321"
+ android:endX="-3.30294"
+ android:type="linear">
+ <item android:offset="0.0929216" android:color="#FF303064"/>
+ <item android:offset="0.287379" android:color="#FF314771"/>
+ <item android:offset="0.482618" android:color="#FF07A2B3"/>
+ <item android:offset="0.626932" android:color="#FF2D779B"/>
+ <item android:offset="0.782446" android:color="#FF2D3B6F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+</vector>
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/drawable-v24/ic_launcher_foreground.xml b/mobile/android/focus-android/app/src/focusBeta/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000000..ab0b4c11c5
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,262 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <group android:scaleX="0.15398437"
+ android:scaleY="0.15398437"
+ android:translateX="14.58"
+ android:translateY="14.58">
+ <path
+ android:pathData="M471.579,0H40.421C18.097,0 0,18.097 0,40.421V471.579C0,493.903 18.097,512 40.421,512H471.579C493.903,512 512,493.903 512,471.579V40.421C512,18.097 493.903,0 471.579,0Z"
+ android:fillColor="#F0F0F4"/>
+ <path
+ android:pathData="M404.933,304.432H399.573L358.116,406.165H392.961C406.83,406.165 420.132,400.662 429.939,390.867C439.746,381.071 445.255,367.786 445.255,353.933V331.079C445.246,317.996 432.175,304.432 404.933,304.432Z"
+ android:fillColor="#008787"/>
+ <path
+ android:pathData="M404.933,304.432H399.573L358.116,406.165H392.961C406.83,406.165 420.132,400.662 429.939,390.867C439.746,381.071 445.255,367.786 445.255,353.933V331.079C445.246,317.996 432.175,304.432 404.933,304.432Z"
+ android:strokeAlpha="0.9"
+ android:fillAlpha="0.9">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="387.005"
+ android:startX="425.93"
+ android:endY="365.266"
+ android:endX="403.003"
+ android:type="linear">
+ <item android:offset="0" android:color="#7F054096"/>
+ <item android:offset="0.05" android:color="#700F3D9C"/>
+ <item android:offset="0.26" android:color="#3F2F35B1"/>
+ <item android:offset="0.47" android:color="#1C462FBF"/>
+ <item android:offset="0.67" android:color="#07542BC8"/>
+ <item android:offset="0.86" android:color="#00592ACB"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M431.539,183.869C423.256,163.969 406.477,142.489 393.307,135.68C404.029,156.669 410.23,177.73 412.606,193.445C412.606,193.445 412.606,193.552 412.606,193.757C391.056,140.115 354.531,118.484 324.68,71.392C323.171,69.009 321.661,66.618 320.213,64.101C319.373,62.664 318.703,61.361 318.113,60.157C316.877,57.768 315.924,55.243 315.272,52.634C315.278,52.511 315.237,52.39 315.157,52.296C315.078,52.202 314.966,52.141 314.843,52.125C314.727,52.089 314.602,52.089 314.486,52.125L314.388,52.179L314.254,52.25L314.325,52.143C266.453,80.146 250.219,131.95 248.727,157.865C229.611,159.176 211.334,166.21 196.281,178.051C194.703,176.721 193.054,175.478 191.34,174.33C186.999,159.153 186.814,143.091 190.804,127.818C171.228,136.742 155.959,150.788 144.933,163.219H144.844C137.294,153.662 137.821,122.169 138.259,115.556C138.161,115.146 132.621,118.43 131.898,118.921C125.23,123.675 118.996,129.008 113.269,134.859C106.756,141.458 100.803,148.586 95.471,156.169C83.219,173.516 74.528,193.116 69.9,213.836C69.811,214.246 69.739,214.675 69.65,215.094C69.284,216.763 67.997,225.151 67.774,226.972C67.774,227.115 67.774,227.249 67.774,227.391C66.107,236.056 65.074,244.831 64.682,253.646C64.682,253.976 64.682,254.297 64.682,254.618C64.682,359.725 149.999,444.931 255.249,444.931C349.501,444.931 427.759,376.591 443.082,286.825C443.404,284.389 443.663,281.935 443.976,279.481C447.684,246.864 443.458,212.551 431.539,183.869ZM211.89,332.837C212.783,333.265 213.623,333.729 214.57,334.14L214.704,334.22C213.739,333.774 212.819,333.31 211.89,332.837ZM412.66,193.873V193.686V193.891V193.873Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="152.975"
+ android:startX="426.053"
+ android:endY="360.786"
+ android:endX="96.5533"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.13" android:color="#FF9356F4"/>
+ <item android:offset="0.29" android:color="#FF8951E5"/>
+ <item android:offset="0.46" android:color="#FF7A49CD"/>
+ <item android:offset="0.64" android:color="#FF643DAB"/>
+ <item android:offset="0.82" android:color="#FF492E81"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M431.539,183.869C423.257,163.969 406.477,142.489 393.308,135.68C404.029,156.669 410.23,177.73 412.606,193.445C412.606,193.4 412.606,193.445 412.606,193.623V193.828C430.592,242.517 420.791,291.992 406.683,322.271C384.838,369.077 331.971,417.052 249.219,414.714C159.854,412.197 81.096,345.937 66.416,259.152C63.736,245.471 66.416,238.52 67.765,227.409C66.121,235.976 65.496,238.448 64.674,253.663C64.674,253.994 64.674,254.315 64.674,254.636C64.674,359.742 149.991,444.948 255.241,444.948C349.492,444.948 427.751,376.609 443.074,286.843C443.395,284.406 443.654,281.952 443.967,279.498C447.684,246.863 443.458,212.551 431.539,183.869Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="396.951"
+ android:centerX="378.637"
+ android:centerY="114.507"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.65" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M431.539,183.869C423.257,163.969 406.477,142.489 393.308,135.68C404.029,156.669 410.23,177.73 412.606,193.445C412.606,193.4 412.606,193.445 412.606,193.623V193.828C430.592,242.517 420.791,291.992 406.683,322.271C384.838,369.077 331.971,417.052 249.219,414.714C159.854,412.197 81.096,345.937 66.416,259.152C63.736,245.471 66.416,238.52 67.765,227.409C66.121,235.976 65.496,238.448 64.674,253.663C64.674,253.994 64.674,254.315 64.674,254.636C64.674,359.742 149.991,444.948 255.241,444.948C349.492,444.948 427.751,376.609 443.074,286.843C443.395,284.406 443.654,281.952 443.967,279.498C447.684,246.863 443.458,212.551 431.539,183.869Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="396.902"
+ android:centerX="286.635"
+ android:centerY="295.418"
+ android:type="radial">
+ <item android:offset="0.25" android:color="#00AB71FF"/>
+ <item android:offset="0.42" android:color="#2D9462E0"/>
+ <item android:offset="0.73" android:color="#A5573B8D"/>
+ <item android:offset="0.94" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M338.923,206.242C339.334,206.527 339.718,206.822 340.102,207.134C335.322,198.657 329.366,190.897 322.412,184.084C263.175,124.918 306.884,55.811 314.255,52.295L314.326,52.188C266.454,80.191 250.22,131.995 248.728,157.91C250.944,157.758 253.195,157.571 255.42,157.571C291.15,157.544 322.269,177.159 338.923,206.242Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="286.967"
+ android:centerX="334.471"
+ android:centerY="43.3936"
+ android:type="radial">
+ <item android:offset="0.18" android:color="#FF9658F9"/>
+ <item android:offset="0.33" android:color="#FF7E48EA"/>
+ <item android:offset="0.37" android:color="#FF7542E5"/>
+ <item android:offset="0.41" android:color="#FF6A3DD0"/>
+ <item android:offset="0.48" android:color="#FF5332A2"/>
+ <item android:offset="0.56" android:color="#FF41297E"/>
+ <item android:offset="0.63" android:color="#FF342264"/>
+ <item android:offset="0.69" android:color="#FF2C1E54"/>
+ <item android:offset="0.74" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M255.938,218.03C255.625,222.769 238.882,239.1 233.021,239.1C178.832,239.1 170.031,271.842 170.031,271.842C172.435,299.417 191.653,322.119 214.928,334.131C215.991,334.684 217.063,335.175 218.136,335.666C220.003,336.487 221.87,337.254 223.738,337.95C231.717,340.773 240.074,342.385 248.531,342.734C343.507,347.196 361.912,229.301 293.365,195.078C310.922,192.026 329.104,199.076 339.316,206.215C322.653,177.141 291.543,157.517 255.813,157.517C253.561,157.517 251.346,157.704 249.121,157.856C230.005,159.168 211.729,166.203 196.675,178.042C199.578,180.505 202.857,183.78 209.773,190.58C222.701,203.306 255.831,216.487 255.938,218.03Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="189.164"
+ android:centerX="200.409"
+ android:centerY="342.725"
+ android:type="radial">
+ <item android:offset="0.07" android:color="#FF9358FC"/>
+ <item android:offset="0.13" android:color="#FF9857F8"/>
+ <item android:offset="0.21" android:color="#FFA755EB"/>
+ <item android:offset="0.3" android:color="#FFBF52D7"/>
+ <item android:offset="0.39" android:color="#FFE14EBA"/>
+ <item android:offset="0.42" android:color="#FFEF4CAF"/>
+ <item android:offset="0.74" android:color="#FFFF7583"/>
+ <item android:offset="0.97" android:color="#FFFFB753"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M255.938,218.03C255.625,222.769 238.882,239.1 233.021,239.1C178.832,239.1 170.031,271.842 170.031,271.842C172.435,299.417 191.653,322.119 214.928,334.131C215.991,334.684 217.063,335.175 218.136,335.666C220.003,336.487 221.87,337.254 223.738,337.95C231.717,340.773 240.074,342.385 248.531,342.734C343.507,347.196 361.912,229.301 293.365,195.078C310.922,192.026 329.104,199.076 339.316,206.215C322.653,177.141 291.543,157.517 255.813,157.517C253.561,157.517 251.346,157.704 249.121,157.856C230.005,159.168 211.729,166.203 196.675,178.042C199.578,180.505 202.857,183.78 209.773,190.58C222.701,203.306 255.831,216.487 255.938,218.03Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="100.209"
+ android:centerX="245.177"
+ android:centerY="205.288"
+ android:type="radial">
+ <item android:offset="0.22" android:color="#4CFFB653"/>
+ <item android:offset="0.34" android:color="#7FFF807A"/>
+ <item android:offset="0.44" android:color="#7AFF7781"/>
+ <item android:offset="0.57" android:color="#6DFF5C94"/>
+ <item android:offset="0.64" android:color="#66FF4AA2"/>
+ <item android:offset="0.86" android:color="#4C9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M187.4,171.697C188.945,172.705 190.214,173.535 191.349,174.312C187.008,159.135 186.823,143.073 190.813,127.8C171.237,136.724 155.968,150.77 144.942,163.201C145.863,163.21 173.497,162.71 187.4,171.697Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="135.939"
+ android:centerX="281.589"
+ android:centerY="117.145"
+ android:type="radial">
+ <item android:offset="0.03" android:color="#FF9658F9"/>
+ <item android:offset="0.62" android:color="#FF7542E5"/>
+ <item android:offset="0.72" android:color="#FF6339C2"/>
+ <item android:offset="0.93" android:color="#FF37246B"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M66.417,259.152C81.123,345.937 159.882,412.197 249.3,414.732C332.053,417.07 384.919,369.095 406.764,322.288C420.872,292.036 430.673,242.535 412.688,193.846V193.659C412.688,193.516 412.688,193.436 412.688,193.48C412.688,193.525 412.688,193.587 412.688,193.793C419.442,237.877 396.989,280.587 361.894,309.465L361.787,309.715C293.401,365.329 227.964,343.269 214.714,334.238C213.82,333.791 212.864,333.345 211.935,332.854C172.069,313.829 155.593,277.526 159.123,246.426C125.457,246.426 113.985,218.066 113.985,218.066C113.985,218.066 144.211,196.541 184.041,215.263C220.941,232.603 255.59,218.075 255.599,218.066C255.527,216.522 222.353,203.35 209.425,190.624C202.518,183.824 199.239,180.54 196.335,178.131C194.758,176.801 193.109,175.558 191.394,174.41C190.26,173.633 188.991,172.803 187.445,171.795C173.543,162.773 145.908,163.273 144.988,163.299H144.899C137.349,153.742 137.876,122.249 138.314,115.637C138.215,115.226 132.676,118.51 131.952,119.001C125.285,123.755 119.051,129.089 113.324,134.939C106.811,141.538 100.858,148.666 95.526,156.249C83.273,173.596 74.582,193.196 69.955,213.916C69.821,214.264 63.057,243.82 66.417,259.152Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="556.972"
+ android:centerX="304.782"
+ android:centerY="-46.6315"
+ android:type="radial">
+ <item android:offset="0.2" android:color="#FFAB71FF"/>
+ <item android:offset="0.29" android:color="#FFA46BFC"/>
+ <item android:offset="0.41" android:color="#FF9059F2"/>
+ <item android:offset="0.54" android:color="#FF7542E5"/>
+ <item android:offset="0.64" android:color="#FF6239BF"/>
+ <item android:offset="0.94" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M322.42,184.057C329.375,190.87 335.33,198.631 340.111,207.108C341.165,207.902 342.139,208.679 342.97,209.446C386.178,249.211 363.52,305.441 361.849,309.448C396.944,280.57 419.397,237.86 412.642,193.775C391.092,140.134 354.567,118.502 324.716,71.41C323.207,69.028 321.697,66.636 320.249,64.119C319.409,62.683 318.739,61.38 318.15,60.175C316.913,57.786 315.96,55.261 315.308,52.652C315.314,52.529 315.273,52.409 315.193,52.314C315.114,52.22 315.002,52.159 314.879,52.144C314.763,52.108 314.638,52.108 314.522,52.144L314.424,52.197L314.29,52.269C306.892,55.785 263.184,124.892 322.42,184.057Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="424.441"
+ android:centerX="315.38"
+ android:centerY="122.268"
+ android:type="radial">
+ <item android:offset="0.09" android:color="#FF9658F9"/>
+ <item android:offset="0.14" android:color="#FF8C51F3"/>
+ <item android:offset="0.26" android:color="#FF7542E5"/>
+ <item android:offset="0.29" android:color="#FF6E3ED6"/>
+ <item android:offset="0.4" android:color="#FF5533A6"/>
+ <item android:offset="0.5" android:color="#FF422980"/>
+ <item android:offset="0.59" android:color="#FF342365"/>
+ <item android:offset="0.67" android:color="#FF2C1E55"/>
+ <item android:offset="0.74" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M342.971,209.445C342.14,208.678 341.184,207.901 340.111,207.107C339.727,206.822 339.343,206.527 338.932,206.215C328.756,199.076 310.529,192.017 292.981,195.069C361.519,229.292 343.122,347.151 248.138,342.706C239.681,342.357 231.324,340.745 223.345,337.923C221.477,337.236 219.619,336.469 217.752,335.639C216.67,335.148 215.598,334.657 214.535,334.113L214.669,334.193C227.919,343.224 293.357,365.284 361.742,309.67L361.85,309.42C363.538,305.44 386.179,249.21 342.971,209.445Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="362.165"
+ android:centerX="278.388"
+ android:centerY="167.443"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.12" android:color="#FF9155F6"/>
+ <item android:offset="0.25" android:color="#FF834CEE"/>
+ <item android:offset="0.34" android:color="#FF7542E5"/>
+ <item android:offset="0.78" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M169.648,271.85C169.648,271.85 178.439,239.117 232.637,239.117C238.489,239.117 255.242,222.787 255.554,218.048C255.554,218.048 220.897,232.585 183.997,215.246C144.166,196.506 113.94,218.048 113.94,218.048C113.94,218.048 125.412,246.408 159.078,246.408C155.504,277.526 172.024,313.811 211.891,332.837C212.784,333.265 213.624,333.729 214.571,334.14C191.261,322.119 172.051,299.417 169.648,271.85Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="395.544"
+ android:centerX="374.011"
+ android:centerY="188.619"
+ android:type="radial">
+ <item android:offset="0.19" android:color="#FF9658F9"/>
+ <item android:offset="0.49" android:color="#FF834BED"/>
+ <item android:offset="0.66" android:color="#FF7542E5"/>
+ <item android:offset="0.7" android:color="#FF6B3DD2"/>
+ <item android:offset="0.79" android:color="#FF52319F"/>
+ <item android:offset="0.91" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M431.539,183.869C423.257,163.969 406.477,142.489 393.308,135.68C404.029,156.669 410.23,177.73 412.606,193.445C412.606,193.445 412.606,193.552 412.606,193.757C391.056,140.115 354.531,118.484 324.681,71.392C323.171,69.009 321.661,66.618 320.213,64.101C319.374,62.664 318.703,61.361 318.114,60.157C316.878,57.768 315.924,55.243 315.273,52.634C315.278,52.511 315.237,52.39 315.157,52.296C315.078,52.202 314.966,52.141 314.844,52.125C314.727,52.089 314.603,52.089 314.486,52.125L314.388,52.179L314.254,52.25L314.325,52.143C266.454,80.146 250.219,131.95 248.727,157.865C250.943,157.713 253.195,157.526 255.419,157.526C291.158,157.526 322.259,177.158 338.923,206.224C328.746,199.085 310.519,192.026 292.972,195.078C361.509,229.301 343.113,347.16 248.129,342.716C239.671,342.366 231.314,340.754 223.335,337.932C221.468,337.245 219.609,336.478 217.742,335.648C216.661,335.157 215.589,334.666 214.526,334.122L214.66,334.202C213.766,333.756 212.81,333.31 211.881,332.819C212.774,333.247 213.614,333.711 214.561,334.122C191.331,322.101 172.077,299.399 169.674,271.833C169.674,271.833 178.465,239.1 232.663,239.1C238.515,239.1 255.267,222.769 255.58,218.03C255.509,216.486 222.334,203.315 209.406,190.589C202.499,183.789 199.22,180.505 196.317,178.096C194.74,176.765 193.09,175.523 191.376,174.374C187.035,159.197 186.85,143.135 190.84,127.863C171.264,136.787 155.995,150.833 144.969,163.264H144.88C137.33,153.706 137.857,122.214 138.295,115.601C138.197,115.191 132.657,118.475 131.934,118.965C125.266,123.72 119.032,129.053 113.305,134.904C106.792,141.503 100.839,148.631 95.507,156.214C83.255,173.561 74.564,193.16 69.936,213.881C69.847,214.291 69.775,214.719 69.686,215.139C69.32,216.808 67.712,225.312 67.488,227.142C66.017,235.927 65.077,244.792 64.674,253.69C64.674,254.02 64.674,254.342 64.674,254.663C64.674,359.769 149.991,444.975 255.241,444.975C349.492,444.975 427.751,376.636 443.074,286.87C443.395,284.433 443.654,281.979 443.967,279.525C447.684,246.863 443.458,212.551 431.539,183.869ZM412.633,193.641V193.846V193.641Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="111.335"
+ android:startX="402.492"
+ android:endY="380.491"
+ android:endX="133.659"
+ android:type="linear">
+ <item android:offset="0" android:color="#E59059FF"/>
+ <item android:offset="0.61" android:color="#00291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M436.498,340.565H264.953C258.044,340.547 251.2,341.89 244.811,344.516C238.422,347.141 232.614,350.999 227.718,355.868C222.822,360.737 218.936,366.522 216.279,372.892C213.623,379.262 212.25,386.093 212.239,392.993V436.649C212.241,437.794 212.469,438.927 212.91,439.984C213.351,441.041 213.996,442.001 214.808,442.809C215.62,443.617 216.584,444.257 217.644,444.693C218.704,445.129 219.839,445.352 220.986,445.35H392.531C399.439,445.368 406.282,444.025 412.671,441.4C419.059,438.775 424.867,434.918 429.763,430.05C434.658,425.182 438.545,419.398 441.202,413.029C443.858,406.66 445.232,399.83 445.245,392.931V331.864C445.244,333.009 445.017,334.143 444.576,335.201C444.136,336.258 443.491,337.218 442.678,338.027C441.866,338.835 440.902,339.475 439.841,339.911C438.781,340.346 437.645,340.569 436.498,340.565Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="347.329"
+ android:startX="234.575"
+ android:endY="440.649"
+ android:endX="454.859"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF54FFBD"/>
+ <item android:offset="1" android:color="#FF00DDFF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M276.675,391.993C280.437,389.771 282.527,386.175 282.527,381.365C282.527,371.959 276.193,366.712 264.908,366.712H243.876V419.14H265.051C276.327,419.14 283.296,413.964 283.296,403.63C283.296,398.169 280.928,394.224 276.675,391.993ZM253.561,375.689H265.114C270.269,375.689 272.708,377.92 272.708,381.579C272.708,385.238 270.484,387.826 265.257,387.826H253.561V375.689ZM265.176,410.02H253.561V396.946H264.765C270.966,396.946 273.334,399.32 273.334,403.416C273.334,407.512 270.546,410.02 265.185,410.02H265.176ZM292.677,419.14H326.87V409.52H302.496V397.598H326.87V388.04H302.496V376.269H326.87V366.712H292.677V419.14ZM373.089,366.712H335.278V376.055H349.412V419.14H359.097V376.055H373.089V366.712ZM399.41,366.712H389.734L370.516,419.14H380.612L383.954,409.591H405.191L408.533,419.14H418.629L399.41,366.712ZM387.224,400.4L394.604,379.571L401.912,400.4H387.224Z"
+ android:fillColor="#20123A"/>
+ </group>
+</vector>
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/drawable-v24/icon_foreground.xml b/mobile/android/focus-android/app/src/focusBeta/res/drawable-v24/icon_foreground.xml
new file mode 100644
index 0000000000..4be0323b4c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/drawable-v24/icon_foreground.xml
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <group android:scaleX="0.14238578"
+ android:scaleY="0.14238578"
+ android:translateX="26.875507"
+ android:translateY="25.95">
+ <path
+ android:pathData="M366.142,132.455C357.875,112.557 341.144,91.031 328.004,84.229C338.698,105.249 344.889,126.332 347.253,142.06C347.253,142.06 347.253,142.168 347.253,142.376C325.757,88.679 289.317,67.018 259.546,19.869C258.039,17.49 256.54,15.102 255.033,12.579C254.194,11.141 253.526,9.865 252.94,8.635C251.708,6.242 250.757,3.714 250.106,1.101C250.11,0.977 250.067,0.856 249.987,0.761C249.908,0.666 249.796,0.603 249.673,0.586C249.558,0.554 249.436,0.554 249.321,0.586L249.222,0.64L249.086,0.712L249.159,0.613C201.411,28.651 185.212,80.494 183.723,106.434C164.645,107.74 146.404,114.782 131.381,126.639C129.807,125.309 128.162,124.065 126.454,122.913C122.123,107.72 121.939,91.64 125.922,76.352C106.393,85.26 91.205,99.352 80.168,111.788H80.078C72.542,102.228 73.075,70.663 73.499,64.078C73.409,63.671 67.886,66.954 67.182,67.452C60.534,72.208 54.319,77.544 48.61,83.397C42.108,90.003 36.171,97.143 30.859,104.742C18.632,122.108 9.961,141.729 5.347,162.473C5.257,162.88 5.185,163.314 5.094,163.731C4.733,165.404 3.443,173.797 3.217,175.624C3.217,175.76 3.217,175.895 3.217,176.04C1.55,184.714 0.519,193.499 0.131,202.323C0.131,202.649 0.131,202.975 0.131,203.3C0.131,308.515 85.24,393.814 190.22,393.814C284.236,393.814 362.306,325.401 377.584,235.535C377.909,233.102 378.171,230.651 378.487,228.191C382.25,195.513 378.054,161.171 366.142,132.455ZM147.048,281.562C147.95,281.987 148.771,282.467 149.683,282.865L149.809,282.946C148.889,282.518 147.968,282.057 147.048,281.562ZM347.308,142.44V142.259C347.308,142.322 347.308,142.395 347.308,142.467V142.44Z"
+ android:fillColor="#9658F9"/>
+ <path
+ android:pathData="M366.142,132.455C357.876,112.557 341.145,91.031 328.005,84.229C338.699,105.249 344.89,126.331 347.254,142.06C347.254,142.06 347.254,142.06 347.254,142.241C347.254,142.422 347.254,142.376 347.254,142.449C365.185,191.18 355.376,240.735 341.334,271.025C319.549,317.876 266.82,365.902 184.31,363.56C95.122,361.027 16.556,294.695 1.891,207.822C-0.816,194.12 1.891,187.165 3.236,176.04C1.593,184.614 0.971,187.092 0.149,202.323C0.149,202.649 0.149,202.975 0.149,203.3C0.149,308.515 85.258,393.814 190.239,393.814C284.255,393.814 362.325,325.401 377.603,235.535C377.928,233.102 378.19,230.651 378.505,228.191C382.251,195.513 378.054,161.171 366.142,132.455Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="396.278"
+ android:centerX="326.399"
+ android:centerY="44.2073"
+ android:type="radial">
+ <item android:offset="0.13" android:color="#FF291D4F"/>
+ <item android:offset="0.56" android:color="#FF21153C"/>
+ <item android:offset="0.89" android:color="#FF1D1133"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M367.044,132.455C358.778,112.557 342.047,91.031 328.907,84.229C339.601,105.249 345.792,126.331 348.156,142.06C348.156,142.06 348.156,142.06 348.156,142.241C348.156,142.422 348.156,142.376 348.156,142.449C366.088,191.18 356.278,240.735 342.236,271.025C320.452,317.876 267.722,365.902 185.212,363.56C96.024,361.027 17.458,294.695 2.794,207.822C0.086,194.12 2.793,187.165 4.138,176.04C2.496,184.614 1.873,187.092 1.052,202.323C1.052,202.649 1.052,202.975 1.052,203.3C1.052,308.515 86.161,393.814 191.141,393.814C285.157,393.814 363.227,325.401 378.505,235.535C378.83,233.102 379.092,230.651 379.408,228.191C383.153,195.513 378.957,161.171 367.044,132.455Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="396.279"
+ android:centerX="186.16"
+ android:centerY="203.192"
+ android:type="radial">
+ <item android:offset="0.15" android:color="#FF20123A"/>
+ <item android:offset="0.22" android:color="#EF22143E"/>
+ <item android:offset="0.28" android:color="#BC271C4A"/>
+ <item android:offset="0.34" android:color="#6B30285F"/>
+ <item android:offset="0.38" android:color="#19393473"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M273.75,154.849C274.156,155.138 274.544,155.428 274.923,155.753C270.154,147.266 264.215,139.496 257.28,132.672C198.189,73.457 241.786,4.24 249.159,0.748L249.231,0.649C201.483,28.687 185.284,80.53 183.795,106.47C186.015,106.316 188.217,106.126 190.473,106.126C226.11,106.099 257.145,125.743 273.75,154.849Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="287.093"
+ android:centerX="229.368"
+ android:centerY="-45.9212"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF291D4F"/>
+ <item android:offset="0.08" android:color="#FF2B1E53"/>
+ <item android:offset="0.16" android:color="#FF33225E"/>
+ <item android:offset="0.23" android:color="#FF3F2971"/>
+ <item android:offset="0.31" android:color="#FF50328C"/>
+ <item android:offset="0.38" android:color="#FF673EAF"/>
+ <item android:offset="0.46" android:color="#FF824DD9"/>
+ <item android:offset="0.5" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.59,166.697C190.283,171.436 173.579,187.78 167.731,187.78C113.675,187.78 104.903,220.548 104.903,220.548C107.304,248.152 126.472,270.872 149.682,282.901C150.738,283.452 151.812,283.941 152.886,284.438C154.745,285.261 156.613,286.03 158.472,286.727C166.434,289.546 174.771,291.156 183.208,291.502C277.964,295.961 296.301,177.975 227.933,143.715C245.44,140.658 263.615,147.722 273.767,154.867C257.145,125.762 226.11,106.117 190.472,106.117C188.216,106.117 186.014,106.307 183.794,106.461C164.717,107.767 146.476,114.809 131.453,126.666C134.35,129.126 137.626,132.409 144.511,139.22C157.434,151.936 190.527,165.123 190.59,166.697Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="35307.8"
+ android:centerX="245037"
+ android:centerY="-213605"
+ android:type="radial">
+ <item android:offset="0.07" android:color="#FF9358FC"/>
+ <item android:offset="0.13" android:color="#FF9857F8"/>
+ <item android:offset="0.21" android:color="#FFA755EB"/>
+ <item android:offset="0.3" android:color="#FFBF52D7"/>
+ <item android:offset="0.39" android:color="#FFE14EBA"/>
+ <item android:offset="0.42" android:color="#FFEF4CAF"/>
+ <item android:offset="0.74" android:color="#FFFF7583"/>
+ <item android:offset="0.97" android:color="#FFFFB753"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.59,166.697C190.283,171.436 173.579,187.78 167.731,187.78C113.675,187.78 104.903,220.548 104.903,220.548C107.304,248.152 126.472,270.872 149.682,282.901C150.738,283.452 151.812,283.941 152.886,284.438C154.745,285.261 156.613,286.03 158.472,286.727C166.434,289.546 174.771,291.156 183.208,291.502C277.964,295.961 296.301,177.975 227.933,143.715C245.44,140.658 263.615,147.722 273.767,154.867C257.145,125.762 226.11,106.117 190.472,106.117C188.216,106.117 186.014,106.307 183.794,106.461C164.717,107.767 146.476,114.809 131.453,126.666C134.35,129.126 137.626,132.409 144.511,139.22C157.434,151.936 190.527,165.123 190.59,166.697Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="18707"
+ android:centerX="179826"
+ android:centerY="-335486"
+ android:type="radial">
+ <item android:offset="0.22" android:color="#4CFFB653"/>
+ <item android:offset="0.34" android:color="#7FFF807A"/>
+ <item android:offset="0.44" android:color="#7AFF7781"/>
+ <item android:offset="0.57" android:color="#6DFF5C94"/>
+ <item android:offset="0.64" android:color="#66FF4AA2"/>
+ <item android:offset="0.86" android:color="#4C9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M122.62,120.308C124.154,121.312 125.427,122.117 126.555,122.922C122.224,107.729 122.04,91.649 126.022,76.361C106.493,85.27 91.305,99.361 80.269,111.797C81.18,111.779 108.75,111.282 122.62,120.308Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="135.745"
+ android:centerX="176.586"
+ android:centerY="27.9547"
+ android:type="radial">
+ <item android:offset="0.43" android:color="#99291D4F"/>
+ <item android:offset="1" android:color="#99291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M1.908,207.822C16.573,294.65 95.139,361.027 184.327,363.56C266.882,365.902 319.612,317.876 341.351,271.025C355.429,240.735 365.203,191.18 347.271,142.449V142.268C347.271,142.123 347.271,142.042 347.271,142.087C347.271,142.132 347.271,142.195 347.271,142.403C354.013,186.532 331.623,229.285 296.608,258.173L296.509,258.426C228.285,314.095 163.012,292.018 149.791,282.973C148.87,282.533 147.95,282.072 147.029,281.589C107.259,262.542 90.826,226.219 94.345,195.079C60.765,195.079 49.313,166.679 49.313,166.679C49.313,166.679 79.464,145.135 119.207,163.875C156.009,181.231 190.572,166.688 190.572,166.688C190.509,165.132 157.417,151.945 144.548,139.211C137.662,132.4 134.386,129.117 131.489,126.657C129.915,125.327 128.271,124.083 126.562,122.931C125.434,122.162 124.162,121.321 122.628,120.317C108.757,111.272 81.188,111.788 80.276,111.806H80.186C72.651,102.246 73.183,70.68 73.607,64.096C73.517,63.689 67.994,66.972 67.29,67.47C60.642,72.226 54.428,77.562 48.718,83.415C42.216,90.021 36.279,97.161 30.967,104.76C18.741,122.126 10.07,141.747 5.455,162.491C5.329,162.88 -1.422,192.474 1.908,207.822Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="579.148"
+ android:centerX="283.289"
+ android:centerY="-58.3303"
+ android:type="radial">
+ <item android:offset="0.41" android:color="#FF20123A"/>
+ <item android:offset="0.59" android:color="#FC23143E"/>
+ <item android:offset="0.69" android:color="#F72B194C"/>
+ <item android:offset="0.77" android:color="#EF392163"/>
+ <item android:offset="0.85" android:color="#E04E2D84"/>
+ <item android:offset="0.92" android:color="#D1693DAF"/>
+ <item android:offset="0.98" android:color="#BA8950E3"/>
+ <item android:offset="1" android:color="#B29658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M257.299,132.635C264.233,139.46 270.172,147.23 274.942,155.717C275.988,156.513 276.972,157.291 277.802,158.06C320.894,197.855 298.315,254.157 296.627,258.164C331.642,229.222 354.031,186.505 347.29,142.395C325.794,88.697 289.354,67.036 259.582,19.887C258.075,17.508 256.577,15.12 255.07,12.597C254.231,11.159 253.563,9.884 252.976,8.653C251.744,6.26 250.793,3.732 250.143,1.119C250.146,0.995 250.104,0.874 250.024,0.779C249.944,0.684 249.832,0.622 249.709,0.604C249.594,0.572 249.473,0.572 249.358,0.604L249.258,0.658L249.123,0.73C241.804,4.231 198.207,73.421 257.299,132.635Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="447.145"
+ android:centerX="218.453"
+ android:centerY="-1.90324"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF20123A"/>
+ <item android:offset="0.23" android:color="#FF21133C"/>
+ <item android:offset="0.33" android:color="#FF261543"/>
+ <item android:offset="0.41" android:color="#FF2E1A50"/>
+ <item android:offset="0.47" android:color="#FF392162"/>
+ <item android:offset="0.53" android:color="#FF472979"/>
+ <item android:offset="0.58" android:color="#FF593496"/>
+ <item android:offset="0.63" android:color="#FF6E40B8"/>
+ <item android:offset="0.67" android:color="#FF854EDE"/>
+ <item android:offset="0.69" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M257.299,132.635C264.233,139.46 270.172,147.23 274.942,155.717C275.988,156.513 276.972,157.291 277.802,158.06C320.894,197.855 298.315,254.157 296.627,258.164C331.642,229.222 354.031,186.505 347.29,142.395C325.794,88.697 289.354,67.036 259.582,19.887C258.075,17.508 256.577,15.12 255.07,12.597C254.231,11.159 253.563,9.884 252.976,8.653C251.744,6.26 250.793,3.732 250.143,1.119C250.146,0.995 250.104,0.874 250.024,0.779C249.944,0.684 249.832,0.622 249.709,0.604C249.594,0.572 249.473,0.572 249.358,0.604L249.258,0.658L249.123,0.73C241.804,4.231 198.207,73.421 257.299,132.635Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="263.609"
+ android:startX="348.526"
+ android:endY="218.29"
+ android:endX="329.44"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF2451F0"/>
+ <item android:offset="0.1" android:color="#DD2349D8"/>
+ <item android:offset="0.35" android:color="#8E2236A1"/>
+ <item android:offset="0.57" android:color="#51212675"/>
+ <item android:offset="0.76" android:color="#26211B55"/>
+ <item android:offset="0.91" android:color="#0A201541"/>
+ <item android:offset="1" android:color="#0020123A"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M277.803,158.06C276.972,157.291 275.998,156.513 274.942,155.717C274.563,155.428 274.175,155.138 273.769,154.813C263.616,147.668 245.441,140.604 227.934,143.661C296.303,177.922 277.947,295.907 183.209,291.448C174.772,291.102 166.435,289.492 158.473,286.673C156.614,285.976 154.746,285.207 152.887,284.384C151.813,283.887 150.739,283.399 149.684,282.847L149.81,282.928C163.031,291.973 228.322,314.05 296.528,258.381L296.628,258.128C298.315,254.158 320.894,197.865 277.803,158.06Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="465.784"
+ android:centerX="173.391"
+ android:centerY="78.3506"
+ android:type="radial">
+ <item android:offset="0.36" android:color="#FF291D4F"/>
+ <item android:offset="0.83" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M104.904,220.53C104.904,220.53 113.675,187.762 167.731,187.762C173.579,187.762 190.292,171.418 190.59,166.679C190.59,166.679 156.027,181.223 119.225,163.866C79.518,145.126 49.332,166.67 49.332,166.67C49.332,166.67 60.784,195.07 94.363,195.07C90.844,226.21 107.277,262.533 147.048,281.58C147.95,282.006 148.771,282.485 149.683,282.883C126.472,270.854 107.304,248.098 104.904,220.53Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="395.737"
+ android:centerX="258.138"
+ android:centerY="107.908"
+ android:type="radial">
+ <item android:offset="0.09" android:color="#FF291D4F"/>
+ <item android:offset="0.44" android:color="#C1291D4F"/>
+ <item android:offset="0.63" android:color="#99291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M366.144,132.455C357.877,112.557 341.146,91.031 328.007,84.229C338.7,105.249 344.891,126.332 347.256,142.06C347.256,142.06 347.256,142.168 347.256,142.376C325.759,88.679 289.319,67.018 259.548,19.869C258.041,17.49 256.543,15.102 255.035,12.579C254.196,11.141 253.528,9.865 252.942,8.635C251.71,6.242 250.759,3.714 250.108,1.101C250.112,0.977 250.069,0.856 249.99,0.761C249.91,0.666 249.798,0.603 249.675,0.586C249.56,0.554 249.438,0.554 249.323,0.586L249.224,0.64L249.088,0.712L249.161,0.613C201.413,28.651 185.214,80.494 183.725,106.434C185.945,106.28 188.147,106.09 190.403,106.09C226.04,106.09 257.075,125.735 273.698,154.84C263.545,147.695 245.37,140.631 227.863,143.688C296.232,177.949 277.876,295.934 183.138,291.475C174.701,291.128 166.364,289.519 158.402,286.7C156.543,286.003 154.675,285.234 152.816,284.411C151.742,283.914 150.668,283.425 149.613,282.874L149.739,282.955C148.818,282.515 147.898,282.054 146.978,281.571C147.88,281.996 148.701,282.476 149.613,282.874C126.402,270.845 107.198,248.125 104.834,220.521C104.834,220.521 113.605,187.753 167.661,187.753C173.509,187.753 190.222,171.409 190.52,166.67C190.457,165.114 157.365,151.927 144.496,139.193C137.61,132.382 134.334,129.099 131.438,126.639C129.863,125.309 128.219,124.065 126.51,122.913C122.179,107.72 121.995,91.64 125.978,76.352C106.449,85.26 91.261,99.352 80.224,111.788H80.134C72.599,102.228 73.131,70.663 73.555,64.078C73.465,63.671 67.942,66.954 67.238,67.452C60.591,72.208 54.376,77.544 48.666,83.397C42.165,90.003 36.227,97.143 30.915,104.742C18.689,122.108 10.018,141.729 5.403,162.473C5.313,162.88 5.241,163.314 5.15,163.731C4.789,165.404 3.183,173.915 2.958,175.742C1.489,184.538 0.552,193.414 0.151,202.323C0.151,202.649 0.151,202.975 0.151,203.3C0.151,308.515 85.26,393.814 190.24,393.814C284.256,393.814 362.326,325.401 377.604,235.535C377.929,233.102 378.191,230.651 378.507,228.191C382.252,195.513 378.056,161.171 366.144,132.455ZM347.283,142.241C347.283,142.304 347.283,142.376 347.283,142.449V142.241Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="59.8454"
+ android:startX="337.184"
+ android:endY="328.356"
+ android:endX="68.0838"
+ android:type="linear">
+ <item android:offset="0.3" android:color="#CC291D4F"/>
+ <item android:offset="0.55" android:color="#44291D4F"/>
+ <item android:offset="0.66" android:color="#00291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.483,166.489C190.176,171.228 173.472,187.572 167.624,187.572C113.568,187.572 104.796,220.34 104.796,220.34C107.197,247.935 126.365,270.654 149.575,282.684C150.631,283.226 151.705,283.724 152.779,284.212C154.638,285.035 156.506,285.804 158.365,286.5C166.325,289.327 174.663,290.94 183.101,291.285C277.857,295.735 296.194,177.767 227.826,143.516C245.333,140.459 263.508,147.514 273.661,154.668C257.038,125.563 226.003,105.927 190.365,105.927C188.109,105.927 185.907,106.108 183.687,106.262C164.61,107.568 146.369,114.61 131.346,126.467C134.243,128.927 137.519,132.21 144.404,139.012C157.336,151.755 190.42,164.942 190.483,166.489Z"
+ android:strokeAlpha="0.95"
+ android:fillAlpha="0.95">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="188.512"
+ android:centerX="177.806"
+ android:centerY="348.029"
+ android:type="radial">
+ <item android:offset="0.29" android:color="#FF0060DF"/>
+ <item android:offset="0.42" android:color="#FF2357E1"/>
+ <item android:offset="0.6" android:color="#FF4F4CE3"/>
+ <item android:offset="0.75" android:color="#FF6B45E4"/>
+ <item android:offset="0.83" android:color="#FF7542E5"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.483,166.489C190.176,171.228 173.472,187.572 167.624,187.572C113.568,187.572 104.796,220.34 104.796,220.34C107.197,247.935 126.365,270.654 149.575,282.684C150.631,283.226 151.705,283.724 152.779,284.212C154.638,285.035 156.506,285.804 158.365,286.5C166.325,289.327 174.663,290.94 183.101,291.285C277.857,295.735 296.194,177.767 227.826,143.516C245.333,140.459 263.508,147.514 273.661,154.668C257.038,125.563 226.003,105.927 190.365,105.927C188.109,105.927 185.907,106.108 183.687,106.262C164.61,107.568 146.369,114.61 131.346,126.467C134.243,128.927 137.519,132.21 144.404,139.012C157.336,151.755 190.42,164.942 190.483,166.489Z"
+ android:strokeAlpha="0.95"
+ android:fillAlpha="0.95">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="100.031"
+ android:centerX="179.629"
+ android:centerY="147.104"
+ android:type="radial">
+ <item android:offset="0.21" android:color="#0045278D"/>
+ <item android:offset="0.25" android:color="#0F44268A"/>
+ <item android:offset="0.73" android:color="#96371F6F"/>
+ <item android:offset="0.96" android:color="#CC321C64"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ </group>
+</vector>
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/drawable/dark_background.xml b/mobile/android/focus-android/app/src/focusBeta/res/drawable/dark_background.xml
new file mode 100644
index 0000000000..0ee46fa4e7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/drawable/dark_background.xml
@@ -0,0 +1,29 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="360dp"
+ android:height="640dp"
+ android:viewportWidth="360"
+ android:viewportHeight="640">
+ <path
+ android:pathData="M360,640V0H0V640H360Z"
+ android:fillType="evenOdd">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="-160.5"
+ android:startX="-66.5"
+ android:endY="831.5"
+ android:endX="425"
+ android:type="linear">
+ <item android:offset="0.0929216" android:color="#FF303064"/>
+ <item android:offset="0.287379" android:color="#FF314771"/>
+ <item android:offset="0.482618" android:color="#FF07A2B3"/>
+ <item android:offset="0.626932" android:color="#FF2D779B"/>
+ <item android:offset="0.782446" android:color="#FF2D3B6F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+</vector>
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/drawable/ic_launcher_background.xml b/mobile/android/focus-android/app/src/focusBeta/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000000..61f5b8183f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector
+ android:height="108dp"
+ android:width="108dp"
+ android:viewportHeight="108"
+ android:viewportWidth="108"
+ xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="#3DDC84"
+ android:pathData="M0,0h108v108h-108z"/>
+ <path android:fillColor="#00000000" android:pathData="M9,0L9,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,0L19,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M29,0L29,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M39,0L39,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M49,0L49,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M59,0L59,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M69,0L69,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M79,0L79,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M89,0L89,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M99,0L99,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,9L108,9"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,19L108,19"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,29L108,29"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,39L108,39"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,49L108,49"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,59L108,59"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,69L108,69"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,79L108,79"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,89L108,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,99L108,99"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,29L89,29"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,39L89,39"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,49L89,49"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,59L89,59"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,69L89,69"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,79L89,79"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M29,19L29,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M39,19L39,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M49,19L49,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M59,19L59,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M69,19L69,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M79,19L79,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/drawable/onboarding_logo.xml b/mobile/android/focus-android/app/src/focusBeta/res/drawable/onboarding_logo.xml
new file mode 100644
index 0000000000..0c7fbd412e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/drawable/onboarding_logo.xml
@@ -0,0 +1,263 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="60dp"
+ android:height="62dp"
+ android:viewportWidth="60"
+ android:viewportHeight="62">
+ <path
+ android:pathData="M50.82,35.15a19.25,19.25 0,0 1,-3.59 6.69,47.23 47.23,0 0,1 -8,7.54h6.49a7.49,7.49 0,0 0,7.49 -7.49V38.61A4.13,4.13 0,0 0,50.82 35.15Z"
+ android:fillColor="#008787"/>
+ <path
+ android:pathData="M50.82,35.15a19.25,19.25 0,0 1,-3.59 6.69,47.23 47.23,0 0,1 -8,7.54h6.49a7.49,7.49 0,0 0,7.49 -7.49V38.61A4.13,4.13 0,0 0,50.82 35.15Z"
+ android:strokeAlpha="0.9"
+ android:fillAlpha="0.9">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="47.12"
+ android:startX="50.31"
+ android:endY="39.56"
+ android:endX="42.32"
+ android:type="linear">
+ <item android:offset="0" android:color="#7F054096"/>
+ <item android:offset="0.05" android:color="#700F3D9C"/>
+ <item android:offset="0.26" android:color="#3F2F35B1"/>
+ <item android:offset="0.47" android:color="#1C462FBF"/>
+ <item android:offset="0.67" android:color="#07542BC8"/>
+ <item android:offset="0.86" android:color="#00592ACB"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M50.13,18C49,15.3 46.7,12.36 44.9,11.43a26.74,26.74 0,0 1,2.64 7.9v0.05C44.6,12 39.61,9.08 35.53,2.64c-0.2,-0.33 -0.41,-0.65 -0.61,-1a5.94,5.94 0,0 1,-0.29 -0.54,4.92 4.92,0 0,1 -0.39,-1A0.07,0.07 0,0 0,34.19 0h-0.07a19,19 0,0 0,-9 14.46A12.92,12.92 0,0 0,18 17.23a7.53,7.53 0,0 0,-0.68 -0.51,12 12,0 0,1 -0.07,-6.36A19.21,19.21 0,0 0,11 15.2h0c-1,-1.31 -1,-5.62 -0.9,-6.52a4.39,4.39 0,0 0,-0.87 0.46,19.37 19.37,0 0,0 -2.54,2.18 22.23,22.23 0,0 0,-2.43 2.92h0a21.88,21.88 0,0 0,-3.5 7.88l0,0.17c0,0.23 -0.23,1.38 -0.26,1.63a0.13,0.13 0,0 1,0 0.06A26.47,26.47 0,0 0,0 27.57v0.13a26,26 0,0 0,51.7 4.41l0.12,-1A26.88,26.88 0,0 0,50.13 18ZM20.13,38.38 L20.49,38.56h0ZM26.13,22.68ZM47.6,19.36v0Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="13.8"
+ android:startX="49.38"
+ android:endY="42.17"
+ android:endX="4.33"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.13" android:color="#FF9356F4"/>
+ <item android:offset="0.29" android:color="#FF8951E5"/>
+ <item android:offset="0.46" android:color="#FF7A49CD"/>
+ <item android:offset="0.64" android:color="#FF643DAB"/>
+ <item android:offset="0.82" android:color="#FF492E81"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M50.13,18C49,15.3 46.7,12.36 44.9,11.43a26.74,26.74 0,0 1,2.64 7.9v0.06A23.55,23.55 0,0 1,46.74 37c-3,6.4 -10.21,13 -21.51,12.64 -12.22,-0.35 -23,-9.41 -25,-21.28A11.22,11.22 0,0 1,0.42 24,19.61 19.61,0 0,0 0,27.57v0.13a26,26 0,0 0,51.7 4.41l0.12,-1A26.88,26.88 0,0 0,50.13 18Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="54.238617"
+ android:centerX="-37.945915"
+ android:centerY="-52.021397"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.65" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M50.13,18C49,15.3 46.7,12.36 44.9,11.43a26.74,26.74 0,0 1,2.64 7.9v0.06A23.55,23.55 0,0 1,46.74 37c-3,6.4 -10.21,13 -21.51,12.64 -12.22,-0.35 -23,-9.41 -25,-21.28A11.22,11.22 0,0 1,0.42 24,19.61 19.61,0 0,0 0,27.57v0.13a26,26 0,0 0,51.7 4.41l0.12,-1A26.88,26.88 0,0 0,50.13 18Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="54.25"
+ android:centerX="-25.171875"
+ android:centerY="48.010647"
+ android:type="radial">
+ <item android:offset="0.25" android:color="#00AB71FF"/>
+ <item android:offset="0.42" android:color="#2D9462E0"/>
+ <item android:offset="0.73" android:color="#A5573B8D"/>
+ <item android:offset="0.94" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M37.47,21.08l0.17,0.12a14.35,14.35 0,0 0,-2.42 -3.15C27.13,10 33.1,0.5 34.1,0h0a19,19 0,0 0,-9 14.46c0.31,0 0.61,-0.05 0.92,-0.05A13.11,13.11 0,0 1,37.47 21.08Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="39.25"
+ android:centerX="-18.421875"
+ android:centerY="13.524447"
+ android:type="radial">
+ <item android:offset="0.18" android:color="#FF9658F9"/>
+ <item android:offset="0.33" android:color="#FF7E48EA"/>
+ <item android:offset="0.37" android:color="#FF7542E5"/>
+ <item android:offset="0.41" android:color="#FF6A3DD0"/>
+ <item android:offset="0.48" android:color="#FF5332A2"/>
+ <item android:offset="0.56" android:color="#FF41297E"/>
+ <item android:offset="0.63" android:color="#FF342264"/>
+ <item android:offset="0.69" android:color="#FF2C1E54"/>
+ <item android:offset="0.74" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M26.08,22.7h0c0,0.65 -2.33,2.88 -3.13,2.88 -7.4,0 -8.6,4.48 -8.6,4.48a11,11 0,0 0,6.13 8.52l0.44,0.21c0.25,0.11 0.51,0.22 0.76,0.31a11.55,11.55 0,0 0,3.39 0.65c13,0.61 15.49,-15.51 6.13,-20.19a8.93,8.93 0,0 1,6.27 1.52,13.11 13.11,0 0,0 -11.4,-6.66c-0.31,0 -0.61,0 -0.92,0.05A12.92,12.92 0,0 0,18 17.23c0.39,0.33 0.84,0.78 1.79,1.71C21.54,20.68 26.07,22.49 26.08,22.7Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="25.852"
+ android:centerX="9.834804"
+ android:centerY="31.39819"
+ android:type="radial">
+ <item android:offset="0.07" android:color="#FF9358FC"/>
+ <item android:offset="0.13" android:color="#FF9857F8"/>
+ <item android:offset="0.21" android:color="#FFA755EB"/>
+ <item android:offset="0.3" android:color="#FFBF52D7"/>
+ <item android:offset="0.39" android:color="#FFE14EBA"/>
+ <item android:offset="0.42" android:color="#FFEF4CAF"/>
+ <item android:offset="0.74" android:color="#FFFF7583"/>
+ <item android:offset="0.97" android:color="#FFFFB753"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M26.08,22.7h0c0,0.65 -2.33,2.88 -3.13,2.88 -7.4,0 -8.6,4.48 -8.6,4.48a11,11 0,0 0,6.13 8.52l0.44,0.21c0.25,0.11 0.51,0.22 0.76,0.31a11.55,11.55 0,0 0,3.39 0.65c13,0.61 15.49,-15.51 6.13,-20.19a8.93,8.93 0,0 1,6.27 1.52,13.11 13.11,0 0,0 -11.4,-6.66c-0.31,0 -0.61,0 -0.92,0.05A12.92,12.92 0,0 0,18 17.23c0.39,0.33 0.84,0.78 1.79,1.71C21.54,20.68 26.07,22.49 26.08,22.7Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="13.703885"
+ android:centerX="-2.5936933"
+ android:centerY="-25.865593"
+ android:type="radial">
+ <item android:offset="0.22" android:color="#4CFFB653"/>
+ <item android:offset="0.34" android:color="#7FFF807A"/>
+ <item android:offset="0.44" android:color="#7AFF7781"/>
+ <item android:offset="0.57" android:color="#6DFF5C94"/>
+ <item android:offset="0.64" android:color="#66FF4AA2"/>
+ <item android:offset="0.86" android:color="#4C9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M16.77,16.36c0.21,0.14 0.39,0.25 0.54,0.36a12,12 0,0 1,-0.07 -6.36A19.21,19.21 0,0 0,11 15.2C11.1,15.2 14.87,15.13 16.77,16.36Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="18.5"
+ android:centerX="-25.671875"
+ android:centerY="23.520447"
+ android:type="radial">
+ <item android:offset="0.03" android:color="#FF9658F9"/>
+ <item android:offset="0.62" android:color="#FF7542E5"/>
+ <item android:offset="0.72" android:color="#FF6339C2"/>
+ <item android:offset="0.93" android:color="#FF37246B"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M0.24,28.32c2,11.87 12.77,20.93 25,21.28 11.3,0.32 18.52,-6.24 21.51,-12.64a23.55,23.55 0,0 0,0.81 -17.57h0v0c0.92,6 -2.15,11.87 -6.94,15.82l0,0c-9.34,7.61 -18.28,4.59 -20.09,3.36l-0.38,-0.19c-5.45,-2.6 -7.7,-7.57 -7.22,-11.82A6.67,6.67 0,0 1,6.74 22.7a9.81,9.81 0,0 1,9.57 -0.39,12.92 12.92,0 0,0 9.77,0.39c0,-0.21 -4.54,-2 -6.3,-3.76 -1,-0.93 -1.4,-1.38 -1.79,-1.71a7.53,7.53 0,0 0,-0.68 -0.51c-0.15,-0.11 -0.33,-0.22 -0.54,-0.36 -1.9,-1.23 -5.67,-1.16 -5.8,-1.16h0c-1,-1.31 -1,-5.62 -0.9,-6.52a4.39,4.39 0,0 0,-0.87 0.46,19.37 19.37,0 0,0 -2.54,2.18 22.23,22.23 0,0 0,-2.43 2.92h0a21.88,21.88 0,0 0,-3.5 7.88C0.71,22.18 -0.22,26.22 0.24,28.32Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="76.2155"
+ android:centerX="43.526653"
+ android:centerY="34.794212"
+ android:type="radial">
+ <item android:offset="0.2" android:color="#FFAB71FF"/>
+ <item android:offset="0.29" android:color="#FFA46BFC"/>
+ <item android:offset="0.41" android:color="#FF9059F2"/>
+ <item android:offset="0.54" android:color="#FF7542E5"/>
+ <item android:offset="0.64" android:color="#FF6239BF"/>
+ <item android:offset="0.94" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M35.22,18.05a14.35,14.35 0,0 1,2.42 3.15l0.39,0.32c5.9,5.44 2.81,13.13 2.58,13.68 4.79,-4 7.86,-9.79 6.94,-15.82C44.6,12 39.61,9.08 35.53,2.64c-0.2,-0.33 -0.41,-0.65 -0.61,-1a5.94,5.94 0,0 1,-0.29 -0.54,4.92 4.92,0 0,1 -0.39,-1A0.07,0.07 0,0 0,34.19 0H34.1C33.1,0.5 27.13,10 35.22,18.05Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="57.971546"
+ android:centerX="-12.446564"
+ android:centerY="13.619997"
+ android:type="radial">
+ <item android:offset="0.09" android:color="#FF9658F9"/>
+ <item android:offset="0.14" android:color="#FF8C51F3"/>
+ <item android:offset="0.26" android:color="#FF7542E5"/>
+ <item android:offset="0.29" android:color="#FF6E3ED6"/>
+ <item android:offset="0.4" android:color="#FF5533A6"/>
+ <item android:offset="0.5" android:color="#FF422980"/>
+ <item android:offset="0.59" android:color="#FF342365"/>
+ <item android:offset="0.67" android:color="#FF2C1E55"/>
+ <item android:offset="0.74" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M38,21.52l-0.39,-0.32 -0.17,-0.12a8.93,8.93 0,0 0,-6.27 -1.52c9.36,4.68 6.85,20.8 -6.13,20.19a11.55,11.55 0,0 1,-3.39 -0.65l-0.76,-0.31 -0.44,-0.21h0c1.81,1.23 10.75,4.25 20.09,-3.36l0,0C40.84,34.65 43.93,27 38,21.52Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="49.5"
+ android:centerX="-26.171875"
+ android:centerY="30.517647"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.12" android:color="#FF9155F6"/>
+ <item android:offset="0.25" android:color="#FF834CEE"/>
+ <item android:offset="0.34" android:color="#FF7542E5"/>
+ <item android:offset="0.78" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M14.35,30.06s1.2,-4.48 8.6,-4.48c0.8,0 3.09,-2.23 3.13,-2.88h0a12.92,12.92 0,0 1,-9.77 -0.39,9.81 9.81,0 0,0 -9.57,0.39 6.67,6.67 0,0 0,6.16 3.88c-0.48,4.25 1.77,9.22 7.22,11.82l0.36,0.18A11,11 0,0 1,14.35 30.06Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="54"
+ android:centerX="-13.171875"
+ android:centerY="33.26655"
+ android:type="radial">
+ <item android:offset="0.19" android:color="#FF9658F9"/>
+ <item android:offset="0.49" android:color="#FF834BED"/>
+ <item android:offset="0.66" android:color="#FF7542E5"/>
+ <item android:offset="0.7" android:color="#FF6B3DD2"/>
+ <item android:offset="0.79" android:color="#FF52319F"/>
+ <item android:offset="0.91" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M50.13,18C49,15.3 46.7,12.36 44.9,11.43a26.74,26.74 0,0 1,2.64 7.9v0.05C44.6,12 39.61,9.08 35.53,2.64c-0.2,-0.33 -0.41,-0.65 -0.61,-1a5.94,5.94 0,0 1,-0.29 -0.54,4.92 4.92,0 0,1 -0.39,-1A0.07,0.07 0,0 0,34.19 0h-0.07a19,19 0,0 0,-9 14.46c0.31,0 0.61,-0.05 0.92,-0.05a13.11,13.11 0,0 1,11.4 6.66,8.93 8.93,0 0,0 -6.27,-1.52c9.36,4.68 6.85,20.8 -6.13,20.19a11.55,11.55 0,0 1,-3.39 -0.65l-0.76,-0.31 -0.44,-0.21h0l-0.38,-0.19 0.36,0.18a11,11 0,0 1,-6.13 -8.52s1.2,-4.48 8.6,-4.48c0.8,0 3.09,-2.23 3.13,-2.88h0c0,-0.21 -4.54,-2 -6.3,-3.76 -1,-0.93 -1.4,-1.38 -1.79,-1.71a7.53,7.53 0,0 0,-0.68 -0.51,12 12,0 0,1 -0.07,-6.36A19.21,19.21 0,0 0,11 15.2h0c-1,-1.31 -1,-5.62 -0.9,-6.52a4.39,4.39 0,0 0,-0.87 0.46,19.37 19.37,0 0,0 -2.54,2.18 22.23,22.23 0,0 0,-2.43 2.92h0a21.88,21.88 0,0 0,-3.5 7.88l0,0.17c0,0.23 -0.27,1.4 -0.3,1.65 0,0 0,0 0,0A31.77,31.77 0,0 0,0 27.57v0.13a26,26 0,0 0,51.7 4.41l0.12,-1A26.88,26.88 0,0 0,50.13 18ZM47.54,19.34v0h0Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="8.1"
+ android:startX="46.16"
+ android:endY="44.87"
+ android:endX="9.39"
+ android:type="linear">
+ <item android:offset="0" android:color="#E59059FF"/>
+ <item android:offset="0.61" android:color="#00291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M52,39.86H30.45a9.22,9.22 0,0 0,-9.22 9.22v4.51a1.25,1.25 0,0 0,1.25 1.25H44a9.22,9.22 0,0 0,9.23 -9.22v-7A1.25,1.25 0,0 1,52 39.86Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="41.23"
+ android:startX="24.74"
+ android:endY="53.61"
+ android:endX="54"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF54FFBD"/>
+ <item android:offset="1" android:color="#FF00DDFF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M26.49,44.17h2.65c1.43,0 2.23,0.64 2.23,1.79a1.42,1.42 0,0 1,-0.74 1.3,1.5 1.5,0 0,1 0.83,1.43c0,1.26 -0.88,1.89 -2.3,1.89L26.49,50.58ZM27.71,45.27v1.48h1.48c0.66,0 0.94,-0.32 0.94,-0.76s-0.31,-0.72 -1,-0.72ZM27.71,47.87v1.6h1.47c0.67,0 1,-0.31 1,-0.81s-0.3,-0.79 -1.08,-0.79Z"
+ android:fillColor="#20123a"/>
+ <path
+ android:pathData="M32.65,44.17H37v1.17H33.89v1.44H37V48H33.89v1.46H37v1.17H32.65Z"
+ android:fillColor="#20123a"/>
+ <path
+ android:pathData="M39.81,45.31H38V44.17H42.8v1.14H41v5.27H39.81Z"
+ android:fillColor="#20123a"/>
+ <path
+ android:pathData="M44.9,44.17h1.22l2.43,6.41L47.27,50.58l-0.42,-1.17L44.17,49.41l-0.42,1.17L42.47,50.58ZM44.58,48.29h1.86l-0.93,-2.55Z"
+ android:fillColor="#20123a"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/drawable/wordmark2.xml b/mobile/android/focus-android/app/src/focusBeta/res/drawable/wordmark2.xml
new file mode 100644
index 0000000000..16f39c2eea
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/drawable/wordmark2.xml
@@ -0,0 +1,272 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="293dp"
+ android:height="66dp"
+ android:viewportWidth="293"
+ android:viewportHeight="66">
+ <path
+ android:pathData="M56.483,41.791H55.593L48.711,58.64H54.495C56.798,58.64 59.006,57.729 60.634,56.106C62.262,54.484 63.176,52.284 63.176,49.99V46.204C63.175,44.038 61.005,41.791 56.483,41.791Z"
+ android:fillColor="#008787"/>
+ <path
+ android:pathData="M56.483,41.791H55.593L48.711,58.64H54.495C56.798,58.64 59.006,57.729 60.634,56.106C62.262,54.484 63.176,52.284 63.176,49.99V46.204C63.175,44.038 61.005,41.791 56.483,41.791Z"
+ android:strokeAlpha="0.9"
+ android:fillAlpha="0.9">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="55.467"
+ android:startX="59.9682"
+ android:endY="51.8578"
+ android:endX="56.1706"
+ android:type="linear">
+ <item android:offset="0" android:color="#7F054096"/>
+ <item android:offset="0.05" android:color="#700F3D9C"/>
+ <item android:offset="0.26" android:color="#3F2F35B1"/>
+ <item android:offset="0.47" android:color="#1C462FBF"/>
+ <item android:offset="0.67" android:color="#07542BC8"/>
+ <item android:offset="0.86" android:color="#00592ACB"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M60.899,21.824C59.525,18.528 56.739,14.97 54.553,13.843C56.333,17.319 57.362,20.807 57.757,23.41C57.757,23.41 57.757,23.427 57.757,23.461C54.179,14.577 48.116,10.995 43.161,3.195C42.91,2.801 42.66,2.405 42.419,1.988C42.28,1.75 42.169,1.534 42.071,1.335C41.866,0.939 41.707,0.521 41.599,0.089C41.6,0.068 41.593,0.048 41.58,0.033C41.567,0.017 41.548,0.007 41.528,0.004C41.509,-0.001 41.488,-0.001 41.469,0.004L41.452,0.013L41.43,0.025L41.442,0.007C33.495,4.645 30.801,13.225 30.553,17.517C27.38,17.734 24.346,18.899 21.847,20.86C21.585,20.64 21.311,20.434 21.027,20.244C20.306,17.73 20.275,15.07 20.938,12.541C17.688,14.019 15.153,16.345 13.323,18.404H13.308C12.055,16.821 12.143,11.605 12.215,10.51C12.199,10.442 11.279,10.986 11.159,11.067C10.052,11.854 9.018,12.738 8.067,13.707C6.986,14.8 5.998,15.98 5.113,17.236C3.079,20.109 1.636,23.355 0.868,26.787C0.853,26.855 0.841,26.926 0.826,26.995C0.765,27.272 0.552,28.661 0.515,28.962C0.515,28.986 0.515,29.008 0.515,29.032C0.238,30.467 0.067,31.92 0.002,33.38C0.002,33.435 0.002,33.488 0.002,33.541C0.002,50.949 14.164,65.061 31.635,65.061C47.281,65.061 60.272,53.742 62.816,38.875C62.869,38.472 62.912,38.065 62.964,37.659C63.579,32.257 62.878,26.574 60.899,21.824ZM24.438,46.496C24.586,46.567 24.726,46.644 24.883,46.711L24.905,46.725C24.745,46.651 24.592,46.574 24.438,46.496ZM57.765,23.481V23.45V23.484V23.481Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="16.7071"
+ android:startX="59.9887"
+ android:endY="51.2375"
+ android:endX="5.36353"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.13" android:color="#FF9356F4"/>
+ <item android:offset="0.29" android:color="#FF8951E5"/>
+ <item android:offset="0.46" android:color="#FF7A49CD"/>
+ <item android:offset="0.64" android:color="#FF643DAB"/>
+ <item android:offset="0.82" android:color="#FF492E81"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M60.899,21.824C59.524,18.528 56.739,14.97 54.553,13.843C56.333,17.319 57.362,20.807 57.757,23.41C57.757,23.402 57.757,23.41 57.757,23.439V23.473C60.742,31.537 59.115,39.731 56.773,44.746C53.147,52.498 44.371,60.443 30.634,60.056C15.8,59.639 2.726,48.665 0.289,34.292C-0.156,32.026 0.289,30.875 0.513,29.035C0.24,30.454 0.136,30.863 0,33.383C0,33.438 0,33.491 0,33.544C0,50.952 14.163,65.063 31.634,65.063C47.28,65.063 60.27,53.745 62.814,38.878C62.867,38.475 62.91,38.068 62.962,37.662C63.579,32.257 62.878,26.574 60.899,21.824Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="65.7654"
+ android:centerX="52.1177"
+ android:centerY="10.3361"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.65" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M60.899,21.824C59.524,18.528 56.739,14.97 54.553,13.843C56.333,17.319 57.362,20.807 57.757,23.41C57.757,23.402 57.757,23.41 57.757,23.439V23.473C60.742,31.537 59.115,39.731 56.773,44.746C53.147,52.498 44.371,60.443 30.634,60.056C15.8,59.639 2.726,48.665 0.289,34.292C-0.156,32.026 0.289,30.875 0.513,29.035C0.24,30.454 0.136,30.863 0,33.383C0,33.438 0,33.491 0,33.544C0,50.952 14.163,65.063 31.634,65.063C47.28,65.063 60.27,53.745 62.814,38.878C62.867,38.475 62.91,38.068 62.962,37.662C63.579,32.257 62.878,26.574 60.899,21.824Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="65.8853"
+ android:centerX="36.8453"
+ android:centerY="40.2985"
+ android:type="radial">
+ <item android:offset="0.25" android:color="#00AB71FF"/>
+ <item android:offset="0.42" android:color="#2D9462E0"/>
+ <item android:offset="0.73" android:color="#A5573B8D"/>
+ <item android:offset="0.94" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M45.525,25.529C45.593,25.576 45.657,25.625 45.721,25.677C44.927,24.273 43.939,22.988 42.784,21.859C32.951,12.06 40.207,0.615 41.43,0.033L41.442,0.015C33.495,4.653 30.8,13.232 30.553,17.524C30.921,17.499 31.294,17.468 31.664,17.468C37.595,17.464 42.761,20.712 45.525,25.529Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="47.6362"
+ android:centerX="44.786"
+ android:centerY="-1.4417"
+ android:type="radial">
+ <item android:offset="0.18" android:color="#FF9658F9"/>
+ <item android:offset="0.33" android:color="#FF7E48EA"/>
+ <item android:offset="0.37" android:color="#FF7542E5"/>
+ <item android:offset="0.41" android:color="#FF6A3DD0"/>
+ <item android:offset="0.48" android:color="#FF5332A2"/>
+ <item android:offset="0.56" android:color="#FF41297E"/>
+ <item android:offset="0.63" android:color="#FF342264"/>
+ <item android:offset="0.69" android:color="#FF2C1E54"/>
+ <item android:offset="0.74" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M31.75,27.482C31.698,28.266 28.918,30.971 27.945,30.971C18.95,30.971 17.489,36.394 17.489,36.394C17.888,40.961 21.079,44.721 24.942,46.71C25.118,46.802 25.296,46.883 25.475,46.964C25.785,47.1 26.094,47.227 26.404,47.343C27.729,47.81 29.116,48.077 30.52,48.135C46.286,48.874 49.341,29.348 37.963,23.68C40.877,23.175 43.895,24.342 45.59,25.525C42.824,20.709 37.66,17.459 31.729,17.459C31.355,17.459 30.987,17.49 30.618,17.515C27.445,17.733 24.411,18.898 21.912,20.859C22.394,21.267 22.938,21.809 24.086,22.935C26.232,25.043 31.732,27.226 31.75,27.482Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="31.4011"
+ android:centerX="22.5319"
+ android:centerY="48.1333"
+ android:type="radial">
+ <item android:offset="0.07" android:color="#FF9358FC"/>
+ <item android:offset="0.13" android:color="#FF9857F8"/>
+ <item android:offset="0.21" android:color="#FFA755EB"/>
+ <item android:offset="0.3" android:color="#FFBF52D7"/>
+ <item android:offset="0.39" android:color="#FFE14EBA"/>
+ <item android:offset="0.42" android:color="#FFEF4CAF"/>
+ <item android:offset="0.74" android:color="#FFFF7583"/>
+ <item android:offset="0.97" android:color="#FFFFB753"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M31.75,27.482C31.698,28.266 28.918,30.971 27.945,30.971C18.95,30.971 17.489,36.394 17.489,36.394C17.888,40.961 21.079,44.721 24.942,46.71C25.118,46.802 25.296,46.883 25.475,46.964C25.785,47.1 26.094,47.227 26.404,47.343C27.729,47.81 29.116,48.077 30.52,48.135C46.286,48.874 49.341,29.348 37.963,23.68C40.877,23.175 43.895,24.342 45.59,25.525C42.824,20.709 37.66,17.459 31.729,17.459C31.355,17.459 30.987,17.49 30.618,17.515C27.445,17.733 24.411,18.898 21.912,20.859C22.394,21.267 22.938,21.809 24.086,22.935C26.232,25.043 31.732,27.226 31.75,27.482Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="16.6324"
+ android:centerX="29.9634"
+ android:centerY="25.3711"
+ android:type="radial">
+ <item android:offset="0.22" android:color="#4CFFB653"/>
+ <item android:offset="0.34" android:color="#7FFF807A"/>
+ <item android:offset="0.44" android:color="#7AFF7781"/>
+ <item android:offset="0.57" android:color="#6DFF5C94"/>
+ <item android:offset="0.64" android:color="#66FF4AA2"/>
+ <item android:offset="0.86" android:color="#4C9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M20.372,19.808C20.629,19.975 20.84,20.112 21.028,20.241C20.307,17.727 20.277,15.067 20.939,12.538C17.689,14.016 15.155,16.342 13.325,18.401C13.477,18.402 18.065,18.32 20.372,19.808Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="22.5658"
+ android:centerX="36.0077"
+ android:centerY="10.773"
+ android:type="radial">
+ <item android:offset="0.03" android:color="#FF9658F9"/>
+ <item android:offset="0.62" android:color="#FF7542E5"/>
+ <item android:offset="0.72" android:color="#FF6339C2"/>
+ <item android:offset="0.93" android:color="#FF37246B"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M0.289,34.292C2.731,48.665 15.805,59.639 30.648,60.059C44.385,60.446 53.16,52.501 56.787,44.749C59.129,39.738 60.756,31.54 57.77,23.476V23.445C57.77,23.421 57.77,23.408 57.77,23.416C57.77,23.423 57.77,23.433 57.77,23.467C58.891,30.768 55.164,37.842 49.339,42.625L49.321,42.666C37.969,51.877 27.106,48.223 24.907,46.728C24.758,46.654 24.6,46.58 24.445,46.499C17.828,43.347 15.093,37.335 15.679,32.184C10.09,32.184 8.186,27.487 8.186,27.487C8.186,27.487 13.203,23.922 19.815,27.023C25.94,29.895 31.692,27.489 31.694,27.487C31.682,27.232 26.175,25.05 24.029,22.942C22.882,21.816 22.338,21.272 21.856,20.873C21.594,20.653 21.32,20.447 21.036,20.257C20.847,20.128 20.637,19.991 20.38,19.824C18.072,18.33 13.485,18.413 13.332,18.417H13.317C12.064,16.834 12.152,11.618 12.224,10.523C12.208,10.455 11.288,10.999 11.168,11.08C10.061,11.868 9.027,12.751 8.076,13.72C6.995,14.813 6.007,15.993 5.122,17.249C3.088,20.122 1.645,23.368 0.877,26.8C0.855,26.858 -0.268,31.753 0.289,34.292Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="92.2558"
+ android:centerX="39.8579"
+ android:centerY="-16.3516"
+ android:type="radial">
+ <item android:offset="0.2" android:color="#FFAB71FF"/>
+ <item android:offset="0.29" android:color="#FFA46BFC"/>
+ <item android:offset="0.41" android:color="#FF9059F2"/>
+ <item android:offset="0.54" android:color="#FF7542E5"/>
+ <item android:offset="0.64" android:color="#FF6239BF"/>
+ <item android:offset="0.94" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M42.786,21.855C43.94,22.984 44.929,24.269 45.722,25.673C45.897,25.805 46.059,25.933 46.197,26.06C53.369,32.646 49.608,41.959 49.331,42.622C55.157,37.84 58.884,30.766 57.762,23.465C54.185,14.581 48.122,10.998 43.167,3.199C42.916,2.804 42.666,2.408 42.425,1.991C42.286,1.753 42.175,1.538 42.077,1.338C41.871,0.942 41.713,0.524 41.605,0.092C41.606,0.072 41.599,0.052 41.586,0.036C41.573,0.021 41.554,0.01 41.534,0.008C41.514,0.002 41.494,0.002 41.474,0.008L41.458,0.017L41.436,0.029C40.208,0.611 32.952,12.056 42.786,21.855Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="70.2973"
+ android:centerX="41.6169"
+ android:centerY="11.6219"
+ android:type="radial">
+ <item android:offset="0.09" android:color="#FF9658F9"/>
+ <item android:offset="0.14" android:color="#FF8C51F3"/>
+ <item android:offset="0.26" android:color="#FF7542E5"/>
+ <item android:offset="0.29" android:color="#FF6E3ED6"/>
+ <item android:offset="0.4" android:color="#FF5533A6"/>
+ <item android:offset="0.5" android:color="#FF422980"/>
+ <item android:offset="0.59" android:color="#FF342365"/>
+ <item android:offset="0.67" android:color="#FF2C1E55"/>
+ <item android:offset="0.74" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M46.197,26.06C46.059,25.933 45.9,25.804 45.722,25.672C45.659,25.625 45.595,25.576 45.527,25.525C43.837,24.342 40.812,23.173 37.899,23.679C49.276,29.347 46.222,48.866 30.455,48.13C29.051,48.072 27.664,47.805 26.339,47.338C26.029,47.224 25.721,47.097 25.411,46.96C25.231,46.878 25.053,46.797 24.877,46.707L24.899,46.72C27.098,48.216 37.961,51.87 49.313,42.659L49.331,42.617C49.611,41.958 53.369,32.646 46.197,26.06Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="60.1191"
+ android:centerX="35.4762"
+ android:centerY="19.1033"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.12" android:color="#FF9155F6"/>
+ <item android:offset="0.25" android:color="#FF834CEE"/>
+ <item android:offset="0.34" android:color="#FF7542E5"/>
+ <item android:offset="0.78" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M17.426,36.395C17.426,36.395 18.885,30.974 27.882,30.974C28.853,30.974 31.634,28.269 31.686,27.485C31.686,27.485 25.933,29.892 19.808,27.021C13.196,23.917 8.178,27.485 8.178,27.485C8.178,27.485 10.083,32.181 15.671,32.181C15.078,37.335 17.82,43.345 24.438,46.496C24.586,46.567 24.726,46.644 24.883,46.711C21.013,44.721 17.825,40.961 17.426,36.395Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="65.6599"
+ android:centerX="51.3498"
+ android:centerY="22.6105"
+ android:type="radial">
+ <item android:offset="0.19" android:color="#FF9658F9"/>
+ <item android:offset="0.49" android:color="#FF834BED"/>
+ <item android:offset="0.66" android:color="#FF7542E5"/>
+ <item android:offset="0.7" android:color="#FF6B3DD2"/>
+ <item android:offset="0.79" android:color="#FF52319F"/>
+ <item android:offset="0.91" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M60.899,21.824C59.524,18.528 56.739,14.97 54.553,13.843C56.333,17.319 57.362,20.807 57.757,23.41C57.757,23.41 57.757,23.427 57.757,23.461C54.179,14.577 48.116,10.995 43.161,3.195C42.91,2.801 42.66,2.405 42.419,1.988C42.28,1.75 42.169,1.534 42.071,1.335C41.866,0.939 41.707,0.521 41.599,0.089C41.6,0.068 41.593,0.048 41.58,0.033C41.567,0.017 41.548,0.007 41.528,0.004C41.509,-0.001 41.488,-0.001 41.469,0.004L41.452,0.013L41.43,0.025L41.442,0.007C33.495,4.645 30.8,13.225 30.553,17.517C30.92,17.492 31.294,17.461 31.664,17.461C37.596,17.461 42.759,20.712 45.525,25.526C43.836,24.344 40.81,23.175 37.897,23.68C49.274,29.348 46.221,48.868 30.453,48.132C29.049,48.074 27.662,47.807 26.338,47.34C26.028,47.226 25.719,47.099 25.409,46.961C25.23,46.88 25.052,46.799 24.875,46.708L24.897,46.722C24.749,46.648 24.59,46.574 24.436,46.493C24.585,46.564 24.724,46.64 24.881,46.708C21.025,44.718 17.829,40.958 17.43,36.392C17.43,36.392 18.889,30.971 27.886,30.971C28.858,30.971 31.638,28.266 31.69,27.482C31.678,27.226 26.171,25.044 24.025,22.937C22.879,21.81 22.335,21.267 21.853,20.868C21.591,20.647 21.317,20.441 21.032,20.251C20.312,17.738 20.281,15.078 20.943,12.548C17.694,14.026 15.159,16.352 13.329,18.411H13.314C12.061,16.828 12.148,11.613 12.221,10.517C12.205,10.449 11.285,10.993 11.165,11.075C10.058,11.862 9.023,12.745 8.073,13.714C6.992,14.807 6.003,15.988 5.118,17.244C3.084,20.117 1.642,23.363 0.874,26.794C0.859,26.862 0.847,26.933 0.832,27.003C0.771,27.279 0.504,28.688 0.467,28.99C0.223,30.445 0.067,31.914 0,33.388C0,33.442 0,33.495 0,33.549C0,50.956 14.163,65.068 31.634,65.068C47.28,65.068 60.27,53.75 62.814,38.883C62.867,38.479 62.91,38.073 62.962,37.666C63.579,32.257 62.878,26.574 60.899,21.824ZM57.761,23.442V23.476V23.442Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="9.81082"
+ android:startX="56.0776"
+ android:endY="54.4902"
+ android:endX="11.5538"
+ android:type="linear">
+ <item android:offset="0" android:color="#E59059FF"/>
+ <item android:offset="0.61" android:color="#00291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M61.722,47.776H33.246C32.099,47.773 30.963,47.995 29.903,48.43C28.842,48.865 27.878,49.504 27.065,50.31C26.253,51.117 25.607,52.075 25.166,53.13C24.726,54.185 24.498,55.316 24.496,56.459V63.689C24.496,63.879 24.534,64.066 24.607,64.241C24.68,64.416 24.787,64.575 24.922,64.709C25.057,64.843 25.217,64.949 25.393,65.021C25.569,65.093 25.757,65.13 25.948,65.13H54.424C55.571,65.133 56.707,64.911 57.767,64.476C58.828,64.041 59.792,63.402 60.604,62.596C61.417,61.79 62.062,60.832 62.503,59.777C62.944,58.722 63.172,57.591 63.174,56.448V46.335C63.174,46.524 63.137,46.712 63.063,46.887C62.99,47.062 62.883,47.221 62.748,47.355C62.613,47.489 62.453,47.595 62.277,47.667C62.101,47.739 61.913,47.776 61.722,47.776Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="48.8959"
+ android:startX="28.2035"
+ android:endY="64.4116"
+ android:endX="64.7448"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF54FFBD"/>
+ <item android:offset="1" android:color="#FF00DDFF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M35.192,56.293C35.817,55.925 36.164,55.329 36.164,54.533C36.164,52.975 35.112,52.106 33.239,52.106H29.748V60.789H33.263C35.134,60.789 36.291,59.932 36.291,58.221C36.291,57.316 35.898,56.663 35.192,56.293ZM31.355,53.593H33.273C34.129,53.593 34.534,53.962 34.534,54.568C34.534,55.174 34.164,55.603 33.297,55.603H31.355V53.593ZM33.283,59.279H31.355V57.113H33.215C34.244,57.113 34.638,57.507 34.638,58.185C34.638,58.863 34.175,59.279 33.285,59.279H33.283ZM37.848,60.789H43.525V59.196H39.478V57.221H43.525V55.638H39.478V53.689H43.525V52.106H37.848V60.789ZM51.197,52.106H44.92V53.653H47.266V60.789H48.874V53.653H51.197V52.106ZM55.566,52.106H53.96L50.77,60.789H52.446L53,59.208H56.526L57.08,60.789H58.756L55.566,52.106ZM53.543,57.685L54.768,54.236L55.981,57.685H53.543Z"
+ android:fillColor="#20123A"/>
+ <path
+ android:pathData="M79.18,21.191H95.335V25.529H83.823V31.402H95.335V35.703H83.823V45.196H79.18V21.191ZM100.854,19.515C101.575,19.515 102.266,19.799 102.776,20.304C103.285,20.809 103.572,21.494 103.572,22.208C103.572,22.922 103.285,23.607 102.776,24.112C102.266,24.617 101.575,24.901 100.854,24.901C100.5,24.918 100.146,24.862 99.815,24.736C99.483,24.611 99.182,24.418 98.93,24.172C98.677,23.925 98.479,23.629 98.348,23.303C98.216,22.976 98.155,22.627 98.166,22.275C98.153,21.918 98.213,21.561 98.342,21.226C98.471,20.892 98.667,20.587 98.918,20.329C99.169,20.071 99.47,19.867 99.802,19.727C100.135,19.587 100.493,19.515 100.854,19.515ZM98.589,27.43H103.119V45.196H98.589V27.43ZM116.42,32.359C115.788,31.861 115.008,31.583 114.201,31.566C112.344,31.566 111.279,32.748 111.279,35.344V45.196H106.75V27.43H111.091V29.995C111.408,29.146 111.992,28.42 112.757,27.924C113.522,27.428 114.428,27.19 115.341,27.243C116.417,27.245 117.468,27.566 118.36,28.163L116.42,32.359ZM118.308,36.399C118.273,35.181 118.486,33.969 118.935,32.834C119.383,31.7 120.058,30.667 120.918,29.796C121.778,28.925 122.807,28.235 123.942,27.767C125.077,27.299 126.296,27.062 127.525,27.07C132.893,27.07 136.705,30.811 136.705,36.1V37.97H122.769C123.267,40.214 125.034,41.71 127.706,41.71C128.622,41.74 129.527,41.508 130.314,41.042C131.101,40.577 131.737,39.897 132.145,39.084L135.958,41.329C134.07,44.089 131.383,45.533 127.57,45.533C121.758,45.525 118.292,41.68 118.292,36.399H118.308ZM122.837,34.394H132.251C131.753,32.15 129.896,30.878 127.472,30.878C126.408,30.842 125.365,31.173 124.519,31.814C123.674,32.455 123.079,33.367 122.837,34.394ZM137.815,27.43H141.031V26.547C141.031,21.714 143.084,19.717 147.598,19.717H149.184V23.622H147.893C145.771,23.622 145.311,24.37 145.311,26.547V27.43H149.184V31.507H145.409V45.196H141.031V31.507H137.815V27.43ZM150.044,36.302C150.025,35.081 150.254,33.869 150.717,32.738C151.181,31.606 151.87,30.579 152.743,29.718C153.616,28.856 154.655,28.178 155.798,27.723C156.942,27.268 158.166,27.046 159.398,27.07C160.643,27.035 161.883,27.248 163.043,27.696C164.204,28.144 165.262,28.818 166.156,29.678C167.049,30.539 167.759,31.568 168.244,32.705C168.729,33.842 168.979,35.064 168.979,36.298C168.979,37.532 168.729,38.754 168.244,39.891C167.759,41.028 167.049,42.057 166.156,42.918C165.262,43.778 164.204,44.452 163.043,44.9C161.883,45.348 160.643,45.561 159.398,45.525C158.162,45.566 156.932,45.355 155.781,44.906C154.631,44.458 153.586,43.78 152.71,42.916C151.833,42.052 151.145,41.02 150.687,39.882C150.228,38.745 150.01,37.526 150.044,36.302ZM164.305,36.302C164.274,35.347 163.96,34.423 163.402,33.644C162.844,32.866 162.067,32.267 161.168,31.923C160.269,31.579 159.288,31.505 158.347,31.71C157.406,31.915 156.546,32.39 155.876,33.076C155.205,33.761 154.754,34.628 154.577,35.566C154.4,36.505 154.506,37.475 154.881,38.354C155.257,39.233 155.886,39.984 156.689,40.511C157.492,41.039 158.434,41.321 159.398,41.321C160.055,41.32 160.706,41.189 161.312,40.935C161.917,40.68 162.465,40.308 162.922,39.84C163.38,39.372 163.738,38.817 163.976,38.209C164.213,37.602 164.325,36.953 164.305,36.302ZM174.874,36.1L168.404,27.43H173.847L177.621,32.883L181.532,27.43H186.816L180.256,36.07L187.141,45.196H181.804L177.523,39.414L173.386,45.196H168.049L174.874,36.1Z"
+ android:fillColor="@color/contrastColor"/>
+ <path
+ android:pathData="M214.152,23.801V21.205H198.948V45.211H201.733V34.82H214.152V32.187H201.733V23.801H214.152Z"
+ android:fillColor="@color/contrastColor"/>
+ <path
+ android:pathData="M226.14,27.093C224.294,27.091 222.489,27.632 220.954,28.647C219.418,29.663 218.221,31.106 217.514,32.796C216.806,34.485 216.62,36.344 216.98,38.138C217.339,39.932 218.227,41.581 219.532,42.874C220.836,44.168 222.499,45.049 224.309,45.407C226.119,45.764 227.996,45.582 229.701,44.882C231.406,44.182 232.864,42.997 233.89,41.477C234.915,39.956 235.463,38.168 235.463,36.339C235.479,35.121 235.249,33.912 234.786,32.784C234.324,31.655 233.638,30.629 232.769,29.768C231.9,28.906 230.866,28.226 229.727,27.766C228.589,27.307 227.369,27.078 226.14,27.093ZM226.14,43.012C224.388,42.954 222.727,42.223 221.509,40.975C220.29,39.726 219.609,38.057 219.609,36.32C219.609,34.583 220.29,32.914 221.509,31.666C222.727,30.417 224.388,29.687 226.14,29.629C227.891,29.687 229.552,30.417 230.771,31.666C231.989,32.914 232.67,34.583 232.67,36.32C232.67,38.057 231.989,39.726 230.771,40.975C229.552,42.223 227.891,42.954 226.14,43.012Z"
+ android:fillColor="@color/contrastColor"/>
+ <path
+ android:pathData="M253.431,38.935C252.971,40.139 252.153,41.176 251.085,41.909C250.018,42.643 248.751,43.037 247.452,43.042C246.563,43.043 245.684,42.869 244.864,42.53C244.044,42.191 243.301,41.694 242.677,41.067C242.053,40.44 241.561,39.697 241.23,38.88C240.899,38.063 240.735,37.189 240.748,36.309C240.725,35.435 240.879,34.564 241.2,33.749C241.521,32.934 242.004,32.191 242.62,31.564C243.235,30.937 243.971,30.438 244.784,30.096C245.597,29.755 246.471,29.578 247.354,29.577C248.646,29.546 249.917,29.906 250.996,30.611C252.075,31.316 252.912,32.33 253.393,33.519L255.884,32.434C255.169,30.806 253.983,29.424 252.475,28.464C250.967,27.504 249.206,27.009 247.414,27.041C246.167,27.006 244.925,27.219 243.763,27.667C242.6,28.116 241.54,28.791 240.645,29.653C239.751,30.514 239.039,31.545 238.554,32.684C238.068,33.823 237.818,35.047 237.818,36.283C237.818,37.52 238.068,38.743 238.554,39.882C239.039,41.021 239.751,42.052 240.645,42.913C241.54,43.775 242.6,44.45 243.763,44.899C244.925,45.348 246.167,45.561 247.414,45.526C249.242,45.567 251.039,45.053 252.564,44.053C254.089,43.052 255.269,41.614 255.945,39.93L253.431,38.935Z"
+ android:fillColor="@color/contrastColor"/>
+ <path
+ android:pathData="M271.986,27.452V37.289C271.986,40.708 269.631,43.109 266.475,43.109C263.025,43.109 261.229,40.865 261.229,37.424V27.452H258.473V37.551C258.473,42.548 261.13,45.578 266.022,45.578C267.233,45.606 268.429,45.317 269.49,44.739C270.551,44.161 271.438,43.314 272.062,42.286V45.196H274.719V27.452H271.986Z"
+ android:fillColor="@color/contrastColor"/>
+ <path
+ android:pathData="M285.702,34.955C282.909,34.394 280.758,34.035 280.758,32.195C280.758,30.549 281.882,29.36 284.638,29.36C285.591,29.323 286.538,29.521 287.395,29.934C288.253,30.348 288.994,30.965 289.552,31.731L291.817,30.235C290.224,28.29 287.967,27.078 284.645,27.078C280.395,27.078 277.972,29.479 277.972,32.239C277.972,35.793 281.263,36.616 284.351,37.207C286.971,37.73 289.424,38.127 289.424,40.102C289.424,41.875 287.967,43.191 285.174,43.191C284.042,43.238 282.917,42.997 281.906,42.49C280.894,41.983 280.031,41.228 279.399,40.296L277.043,41.875C278.636,44.119 281.196,45.615 285.114,45.615C289.794,45.615 292.18,42.885 292.18,40.087C292.172,36.399 288.79,35.546 285.702,34.955Z"
+ android:fillColor="@color/contrastColor"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/mipmap-anydpi-v26/ic_launcher.xml b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000000..c7743a9582
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@drawable/ic_launcher_background"/>
+ <foreground android:drawable="@drawable/ic_launcher_foreground"/>
+</adaptive-icon> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/mipmap-anydpi-v26/ic_launcher_round.xml b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000000..c7743a9582
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@drawable/ic_launcher_background"/>
+ <foreground android:drawable="@drawable/ic_launcher_foreground"/>
+</adaptive-icon> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/mipmap-hdpi/ic_launcher.png b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000000..899dfb375a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/mipmap-hdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..8f36b391ce
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-hdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/mipmap-mdpi/ic_launcher.png b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000000..f56d854a80
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/mipmap-mdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..60225a687f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-mdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xhdpi/ic_launcher.png b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000000..f68b32b974
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xhdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..9a02a5aad2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xhdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxhdpi/ic_launcher.png b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000..8cb67765b9
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxhdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..221f27c4d2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxxhdpi/ic_launcher.png b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000..86d19f8622
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxxhdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..481a4155c4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/mipmap-xxxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/values/app.xml b/mobile/android/focus-android/app/src/focusBeta/res/values/app.xml
new file mode 100644
index 0000000000..f57980c9ad
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/values/app.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <string name="app_name" translatable="false">Firefox Focus Beta</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/focusBeta/res/xml-v25/shortcuts.xml b/mobile/android/focus-android/app/src/focusBeta/res/xml-v25/shortcuts.xml
new file mode 100644
index 0000000000..daaece8883
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusBeta/res/xml-v25/shortcuts.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
+ <shortcut
+ android:shortcutId="erase"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_short_label"
+ android:shortcutLongLabel="@string/shortcut_erase_long_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.focus.beta"
+ android:targetClass="org.mozilla.focus.activity.EraseShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+ <shortcut
+ android:shortcutId="erase_and_open"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_and_open_short_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.focus.beta"
+ android:targetClass="org.mozilla.focus.activity.EraseAndOpenShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+</shortcuts>
diff --git a/mobile/android/focus-android/app/src/focusDebug/res/xml-v25/shortcuts.xml b/mobile/android/focus-android/app/src/focusDebug/res/xml-v25/shortcuts.xml
new file mode 100644
index 0000000000..d9c6f9e185
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusDebug/res/xml-v25/shortcuts.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
+ <shortcut
+ android:shortcutId="erase"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_short_label"
+ android:shortcutLongLabel="@string/shortcut_erase_long_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.focus.debug"
+ android:targetClass="org.mozilla.focus.activity.EraseShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+ <shortcut
+ android:shortcutId="erase_and_open"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_and_open_short_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.focus.debug"
+ android:targetClass="org.mozilla.focus.activity.EraseAndOpenShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+</shortcuts>
diff --git a/mobile/android/focus-android/app/src/focusNightly/res/values/app.xml b/mobile/android/focus-android/app/src/focusNightly/res/values/app.xml
new file mode 100644
index 0000000000..ed5943efac
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusNightly/res/values/app.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<resources>
+ <string name="app_name" translatable="false">Firefox Focus Nightly</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/focusNightly/res/xml-v25/shortcuts.xml b/mobile/android/focus-android/app/src/focusNightly/res/xml-v25/shortcuts.xml
new file mode 100644
index 0000000000..c5524dfc01
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusNightly/res/xml-v25/shortcuts.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
+ <shortcut
+ android:shortcutId="erase"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_short_label"
+ android:shortcutLongLabel="@string/shortcut_erase_long_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.focus.nightly"
+ android:targetClass="org.mozilla.focus.activity.EraseShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+ <shortcut
+ android:shortcutId="erase_and_open"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_and_open_short_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.focus.nightly"
+ android:targetClass="org.mozilla.focus.activity.EraseAndOpenShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+</shortcuts>
diff --git a/mobile/android/focus-android/app/src/focusRelease/AndroidManifest.xml b/mobile/android/focus-android/app/src/focusRelease/AndroidManifest.xml
new file mode 100644
index 0000000000..39155c35b5
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusRelease/AndroidManifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <!-- We set allowBackup=false in the main manifest. Lint isn't clever enough to cope with
+ merged manifests, so we need to ignore the warning here. (See #380) -->
+ <application
+ tools:ignore="AllowBackup">
+
+ <receiver
+ android:name="com.adjust.sdk.AdjustReferrerReceiver"
+ android:exported="true"
+ tools:ignore="ExportedReceiver">
+ <intent-filter>
+ <action android:name="com.android.vending.INSTALL_REFERRER" />
+ </intent-filter>
+ </receiver>
+
+ </application>
+
+</manifest>
diff --git a/mobile/android/focus-android/app/src/focusRelease/java/org/mozilla/focus/utils/AdjustHelper.java b/mobile/android/focus-android/app/src/focusRelease/java/org/mozilla/focus/utils/AdjustHelper.java
new file mode 100644
index 0000000000..8181faf397
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusRelease/java/org/mozilla/focus/utils/AdjustHelper.java
@@ -0,0 +1,72 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils;
+
+import android.app.Activity;
+import android.app.Application;
+import android.os.Bundle;
+import android.text.TextUtils;
+
+import com.adjust.sdk.Adjust;
+import com.adjust.sdk.AdjustConfig;
+import com.adjust.sdk.LogLevel;
+
+import org.mozilla.focus.BuildConfig;
+import org.mozilla.focus.FocusApplication;
+import org.mozilla.focus.telemetry.GleanMetricsService;
+
+public class AdjustHelper {
+ public static void setupAdjustIfNeeded(FocusApplication application) {
+ // RELEASE: Enable Adjust - This class has different implementations for all build types.
+
+ //noinspection ConstantConditions
+ if (TextUtils.isEmpty(BuildConfig.ADJUST_TOKEN)) {
+ throw new IllegalStateException("No adjust token defined for release build");
+ }
+
+ if (!GleanMetricsService.isTelemetryEnabled(application)) {
+ return;
+ }
+
+ final AdjustConfig config = new AdjustConfig(application,
+ BuildConfig.ADJUST_TOKEN,
+ AdjustConfig.ENVIRONMENT_PRODUCTION,
+ true);
+
+ config.setLogLevel(LogLevel.SUPRESS);
+
+ Adjust.onCreate(config);
+
+ application.registerActivityLifecycleCallbacks(new AdjustLifecycleCallbacks());
+ }
+
+ private static final class AdjustLifecycleCallbacks implements Application.ActivityLifecycleCallbacks {
+ @Override
+ public void onActivityResumed(Activity activity) {
+ Adjust.onResume();
+ }
+
+ @Override
+ public void onActivityPaused(Activity activity) {
+ Adjust.onPause();
+ }
+
+ @Override
+ public void onActivityCreated(Activity activity, Bundle savedInstanceState) {}
+
+ @Override
+ public void onActivityStarted(Activity activity) {}
+
+ @Override
+ public void onActivityStopped(Activity activity) {}
+
+ @Override
+ public void onActivitySaveInstanceState(Activity activity, Bundle outState) {}
+
+ @Override
+ public void onActivityDestroyed(Activity activity) {}
+ }
+}
diff --git a/mobile/android/focus-android/app/src/focusRelease/java/org/mozilla/focus/web/Config.kt b/mobile/android/focus-android/app/src/focusRelease/java/org/mozilla/focus/web/Config.kt
new file mode 100644
index 0000000000..33ddf545d7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusRelease/java/org/mozilla/focus/web/Config.kt
@@ -0,0 +1,10 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.web
+
+object Config {
+ const val EXPERIMENT_DESCRIPTOR_GECKOVIEW_ENGINE = "use-gecko"
+ const val EXPERIMENT_DESCRIPTOR_HOME_SCREEN_TIPS = "use-homescreen-tips"
+}
diff --git a/mobile/android/focus-android/app/src/focusRelease/res/xml-v25/shortcuts.xml b/mobile/android/focus-android/app/src/focusRelease/res/xml-v25/shortcuts.xml
new file mode 100644
index 0000000000..c1f98fe8d6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/focusRelease/res/xml-v25/shortcuts.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
+ <shortcut
+ android:shortcutId="erase"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_short_label"
+ android:shortcutLongLabel="@string/shortcut_erase_long_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.focus"
+ android:targetClass="org.mozilla.focus.activity.EraseShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+ <shortcut
+ android:shortcutId="erase_and_open"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_and_open_short_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.focus"
+ android:targetClass="org.mozilla.focus.activity.EraseAndOpenShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+</shortcuts>
diff --git a/mobile/android/focus-android/app/src/klar/res/drawable/background_gradient_dark.xml b/mobile/android/focus-android/app/src/klar/res/drawable/background_gradient_dark.xml
new file mode 100644
index 0000000000..79a9e23abf
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klar/res/drawable/background_gradient_dark.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <gradient
+ android:angle="315"
+ android:startColor="@color/headerGradientStart"
+ android:centerColor="@color/headerGradientMiddle"
+ android:endColor="@color/headerGradientEnd" />
+</shape>
diff --git a/mobile/android/focus-android/app/src/klar/res/drawable/wordmark2.xml b/mobile/android/focus-android/app/src/klar/res/drawable/wordmark2.xml
new file mode 100644
index 0000000000..89c3112480
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klar/res/drawable/wordmark2.xml
@@ -0,0 +1,357 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="384dp"
+ android:height="80dp"
+ android:viewportWidth="384"
+ android:viewportHeight="80">
+ <group android:translateX="23">
+ <path android:pathData="M75.023,27.16c-1.643,-3.951 -4.969,-8.216 -7.582,-9.565a39.215,39.215 0,0 1,3.827 11.47l0.007,0.063C67.002,18.477 59.756,14.182 53.838,4.83c-0.299,-0.473 -0.598,-0.947 -0.89,-1.447 -0.166,-0.285 -0.3,-0.543 -0.416,-0.782a6.882,6.882 0,0 1,-0.564 -1.494,0.099 0.099,0 0,0 -0.086,-0.101 0.128,0.128 0,0 0,-0.071 0c-0.005,0.002 -0.013,0.008 -0.019,0.01 -0.008,0.003 -0.019,0.011 -0.028,0.015l0.015,-0.021C42.287,6.569 39.066,16.855 38.77,22.001a18.91,18.91 0,0 0,-10.401 4.008,11.236 11.236,0 0,0 -0.979,-0.739 17.509,17.509 0,0 1,-0.106 -9.236,27.994 27.994,0 0,0 -9.097,7.03l-0.018,0c-1.498,-1.898 -1.393,-8.157 -1.307,-9.464a6.794,6.794 0,0 0,-1.262 0.669,27.537 27.537,0 0,0 -3.693,3.164 33.098,33.098 0,0 0,-3.529 4.232l-0.002,0.006 0.002,-0.006a31.897,31.897 0,0 0,-5.071 11.449c-0.018,0.082 -0.033,0.167 -0.051,0.249 -0.071,0.333 -0.327,1.997 -0.372,2.36 -0.003,0.028 -0.005,0.055 -0.008,0.082a36.013,36.013 0,0 0,-0.613 5.214c-0,0.065 -0.004,0.128 -0.004,0.193a37.795,37.795 0,0 0,75.044 6.394c0.064,-0.484 0.115,-0.97 0.172,-1.458A38.847,38.847 0,0 0,75.023 27.16ZM31.464,56.74c0.177,0.084 0.343,0.177 0.524,0.258l0.026,0.016C31.83,56.926 31.647,56.834 31.464,56.74ZM40.121,33.948 L40.122,33.948 40.122,33.948ZM71.279,29.138l-0.005,-0.037 0.006,0.041Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:endX="8.54604"
+ android:endY="62.21787"
+ android:startX="73.93614"
+ android:startY="21.02725"
+ android:type="linear">
+ <item
+ android:color="#FF9658F9"
+ android:offset="0" />
+ <item
+ android:color="#FF9356F4"
+ android:offset="0.13045" />
+ <item
+ android:color="#FF8951E5"
+ android:offset="0.28673" />
+ <item
+ android:color="#FF7A49CD"
+ android:offset="0.45625" />
+ <item
+ android:color="#FF643DAB"
+ android:offset="0.63512" />
+ <item
+ android:color="#FF492E81"
+ android:offset="0.81932" />
+ <item
+ android:color="#FF291D4F"
+ android:offset="1" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path android:pathData="M75.023,27.16c-1.643,-3.951 -4.969,-8.216 -7.582,-9.565a39.215,39.215 0,0 1,3.827 11.47c-0.001,-0.009 0.002,0.008 0.006,0.036l0.006,0.041A34.21,34.21 0,0 1,70.104 54.645C65.773,63.938 55.288,73.464 38.876,73 21.144,72.497 5.524,59.341 2.608,42.109c-0.531,-2.717 0,-4.097 0.267,-6.304a28.157,28.157 0,0 0,-0.613 5.214c-0,0.065 -0.004,0.128 -0.004,0.193a37.795,37.795 0,0 0,75.044 6.394c0.064,-0.484 0.115,-0.97 0.172,-1.458A38.847,38.847 0,0 0,75.023 27.16Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="67.123344"
+ android:centerY="9.602656"
+ android:gradientRadius="78.778275"
+ android:type="radial">
+ <item
+ android:color="#FF9658F9"
+ android:offset="0" />
+ <item
+ android:color="#FF291D4F"
+ android:offset="0.65262" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path android:pathData="M75.023,27.16c-1.643,-3.951 -4.969,-8.216 -7.582,-9.565a39.215,39.215 0,0 1,3.827 11.47c-0.001,-0.009 0.002,0.008 0.006,0.036l0.006,0.041A34.21,34.21 0,0 1,70.104 54.645C65.773,63.938 55.288,73.464 38.876,73 21.144,72.497 5.524,59.341 2.608,42.109c-0.531,-2.717 0,-4.097 0.267,-6.304a28.157,28.157 0,0 0,-0.613 5.214c-0,0.065 -0.004,0.128 -0.004,0.193a37.795,37.795 0,0 0,75.044 6.394c0.064,-0.484 0.115,-0.97 0.172,-1.458A38.847,38.847 0,0 0,75.023 27.16Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="38.288395"
+ android:centerY="41.821674"
+ android:gradientRadius="78.7869"
+ android:type="radial">
+ <item
+ android:color="#00AB71FF"
+ android:offset="0.2545" />
+ <item
+ android:color="#2D9462E0"
+ android:offset="0.42052" />
+ <item
+ android:color="#A4573B8D"
+ android:offset="0.73373" />
+ <item
+ android:color="#FF291D4F"
+ android:offset="0.9409" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path android:pathData="M56.657,31.602c0.082,0.058 0.158,0.115 0.235,0.173a20.552,20.552 0,0 0,-3.508 -4.578C41.636,15.451 50.303,1.727 51.765,1.03l0.015,-0.021C42.287,6.569 39.066,16.855 38.77,22.001c0.44,-0.031 0.879,-0.068 1.327,-0.068A19.073,19.073 0,0 1,56.657 31.602Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="47.788044"
+ android:centerY="-8.262114"
+ android:gradientRadius="56.957905"
+ android:type="radial">
+ <item
+ android:color="#FF9658F9"
+ android:offset="0.17512" />
+ <item
+ android:color="#FF7E48EA"
+ android:offset="0.32716" />
+ <item
+ android:color="#FF7542E5"
+ android:offset="0.37483" />
+ <item
+ android:color="#FF6A3DD0"
+ android:offset="0.40682" />
+ <item
+ android:color="#FF5332A2"
+ android:offset="0.485" />
+ <item
+ android:color="#FF41297E"
+ android:offset="0.55989" />
+ <item
+ android:color="#FF342264"
+ android:offset="0.62964" />
+ <item
+ android:color="#FF2C1E54"
+ android:offset="0.69229" />
+ <item
+ android:color="#FF291D4F"
+ android:offset="0.74179" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path android:pathData="M40.121,33.948l0,0c-0.062,0.94 -3.383,4.183 -4.545,4.183 -10.747,0 -12.491,6.501 -12.491,6.501 0.476,5.475 4.287,9.983 8.902,12.369 0.211,0.109 0.424,0.207 0.637,0.304 0.37,0.163 0.74,0.316 1.11,0.454a16.783,16.783 0,0 0,4.918 0.949C57.488,59.591 61.137,36.186 47.544,29.389A13.046,13.046 0,0 1,56.657 31.602a19.073,19.073 0,0 0,-16.56 -9.67c-0.448,0 -0.887,0.037 -1.327,0.068A18.909,18.909 0,0 0,28.368 26.008c0.576,0.488 1.227,1.139 2.597,2.49C33.529,31.024 40.107,33.641 40.121,33.948Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="29.143686"
+ android:centerY="58.722046"
+ android:gradientRadius="37.51398"
+ android:type="radial">
+ <item
+ android:color="#FF9358FC"
+ android:offset="0.06574" />
+ <item
+ android:color="#FF9857F8"
+ android:offset="0.13086" />
+ <item
+ android:color="#FFA755EB"
+ android:offset="0.2098" />
+ <item
+ android:color="#FFBF52D7"
+ android:offset="0.29591" />
+ <item
+ android:color="#FFE14EBA"
+ android:offset="0.38652" />
+ <item
+ android:color="#FFEF4CAF"
+ android:offset="0.41788" />
+ <item
+ android:color="#FFFF7583"
+ android:offset="0.74011" />
+ <item
+ android:color="#FFFFB753"
+ android:offset="0.97014" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path android:pathData="M40.121,33.948l0,0c-0.062,0.94 -3.383,4.183 -4.545,4.183 -10.747,0 -12.491,6.501 -12.491,6.501 0.476,5.475 4.287,9.983 8.902,12.369 0.211,0.109 0.424,0.207 0.637,0.304 0.37,0.163 0.74,0.316 1.11,0.454a16.783,16.783 0,0 0,4.918 0.949C57.488,59.591 61.137,36.186 47.544,29.389A13.046,13.046 0,0 1,56.657 31.602a19.073,19.073 0,0 0,-16.56 -9.67c-0.448,0 -0.887,0.037 -1.327,0.068A18.909,18.909 0,0 0,28.368 26.008c0.576,0.488 1.227,1.139 2.597,2.49C33.529,31.024 40.107,33.641 40.121,33.948Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="39.38746"
+ android:centerY="32.63234"
+ android:gradientRadius="19.88938"
+ android:type="radial">
+ <item
+ android:color="#4CFFB653"
+ android:offset="0.22277" />
+ <item
+ android:color="#7FFF807A"
+ android:offset="0.34343" />
+ <item
+ android:color="#7BFF7781"
+ android:offset="0.44004" />
+ <item
+ android:color="#6EFF5C94"
+ android:offset="0.56837" />
+ <item
+ android:color="#66FF4AA2"
+ android:offset="0.63555" />
+ <item
+ android:color="#4C9658F9"
+ android:offset="0.86481" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path android:pathData="M26.606,24.752c0.306,0.199 0.559,0.365 0.783,0.518a17.509,17.509 0,0 1,-0.106 -9.236,27.994 27.994,0 0,0 -9.097,7.03C18.368,23.059 23.85,22.96 26.606,24.752Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="37.29384"
+ android:centerY="6.392393"
+ android:gradientRadius="26.987741"
+ android:type="radial">
+ <item
+ android:color="#FF9658F9"
+ android:offset="0.02639" />
+ <item
+ android:color="#FF7542E5"
+ android:offset="0.61886" />
+ <item
+ android:color="#FF6339C2"
+ android:offset="0.71748" />
+ <item
+ android:color="#FF37246B"
+ android:offset="0.93471" />
+ <item
+ android:color="#FF291D4F"
+ android:offset="1" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path android:pathData="M2.608,42.109c2.916,17.232 18.536,30.389 36.268,30.891C55.288,73.464 65.773,63.938 70.104,54.645A34.21,34.21 0,0 0,71.28 29.142l-0.001,-0.004 -0.005,-0.037c-0.004,-0.028 -0.006,-0.045 -0.006,-0.036l0.007,0.063C72.616,37.881 68.163,46.361 61.203,52.095l-0.021,0.049c-13.563,11.043 -26.541,6.663 -29.169,4.87 -0.183,-0.088 -0.367,-0.18 -0.55,-0.274C23.556,52.961 20.29,45.757 20.99,39.579A9.706,9.706 0,0 1,12.037 33.948a14.256,14.256 0,0 1,13.895 -0.557,18.818 18.818,0 0,0 14.19,0.557c-0.014,-0.307 -6.592,-2.923 -9.156,-5.45 -1.37,-1.35 -2.021,-2.001 -2.597,-2.489a11.236,11.236 0,0 0,-0.979 -0.739c-0.225,-0.153 -0.477,-0.319 -0.783,-0.518 -2.756,-1.791 -8.238,-1.693 -8.42,-1.688l-0.018,0c-1.498,-1.898 -1.393,-8.157 -1.307,-9.464a6.794,6.794 0,0 0,-1.262 0.669,27.537 27.537,0 0,0 -3.693,3.164 33.098,33.098 0,0 0,-3.529 4.232l-0.002,0.006 0.002,-0.006a31.897,31.897 0,0 0,-5.071 11.449C3.288,33.196 1.946,39.065 2.608,42.109Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="58.510693"
+ android:centerY="-10.649076"
+ android:gradientRadius="110.54113"
+ android:type="radial">
+ <item
+ android:color="#FFAB71FF"
+ android:offset="0.20184" />
+ <item
+ android:color="#FFA46BFC"
+ android:offset="0.28641" />
+ <item
+ android:color="#FF9059F2"
+ android:offset="0.41128" />
+ <item
+ android:color="#FF7542E5"
+ android:offset="0.53733" />
+ <item
+ android:color="#FF6239BF"
+ android:offset="0.63798" />
+ <item
+ android:color="#FF291D4F"
+ android:offset="0.9427" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path android:pathData="M53.383,27.197a20.552,20.552 0,0 1,3.508 4.578c0.208,0.156 0.402,0.312 0.567,0.464 8.568,7.895 4.079,19.06 3.744,19.855 6.96,-5.734 11.413,-14.213 10.073,-22.966C67.002,18.477 59.756,14.182 53.838,4.83c-0.299,-0.473 -0.598,-0.947 -0.89,-1.447 -0.166,-0.285 -0.3,-0.543 -0.416,-0.782a6.882,6.882 0,0 1,-0.564 -1.494,0.099 0.099,0 0,0 -0.086,-0.101 0.128,0.128 0,0 0,-0.071 0c-0.005,0.002 -0.013,0.008 -0.019,0.01 -0.008,0.003 -0.019,0.011 -0.028,0.015C50.303,1.727 41.636,15.451 53.383,27.197Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="47.659092"
+ android:centerY="2.1159263"
+ android:gradientRadius="84.33656"
+ android:type="radial">
+ <item
+ android:color="#FF9658F9"
+ android:offset="0.08834" />
+ <item
+ android:color="#FF8C51F3"
+ android:offset="0.13821" />
+ <item
+ android:color="#FF7542E5"
+ android:offset="0.26179" />
+ <item
+ android:color="#FF6E3ED6"
+ android:offset="0.291" />
+ <item
+ android:color="#FF5533A6"
+ android:offset="0.39747" />
+ <item
+ android:color="#FF422980"
+ android:offset="0.49859" />
+ <item
+ android:color="#FF342365"
+ android:offset="0.59167" />
+ <item
+ android:color="#FF2C1E55"
+ android:offset="0.67386" />
+ <item
+ android:color="#FF291D4F"
+ android:offset="0.7365" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path android:pathData="M57.459,32.239c-0.165,-0.152 -0.359,-0.308 -0.567,-0.464 -0.077,-0.058 -0.152,-0.115 -0.235,-0.173a13.048,13.048 0,0 0,-9.112 -2.212c13.593,6.796 9.944,30.198 -8.892,29.314a16.786,16.786 0,0 1,-4.918 -0.948c-0.37,-0.138 -0.74,-0.291 -1.11,-0.454 -0.213,-0.097 -0.426,-0.196 -0.637,-0.304l0.026,0.016c2.628,1.793 15.606,6.173 29.169,-4.87l0.021,-0.049C61.538,51.3 66.027,40.134 57.459,32.239Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="36.657963"
+ android:centerY="16.386658"
+ android:gradientRadius="71.88574"
+ android:type="radial">
+ <item
+ android:color="#FF9658F9"
+ android:offset="0.005" />
+ <item
+ android:color="#FF9155F6"
+ android:offset="0.11881" />
+ <item
+ android:color="#FF834CEE"
+ android:offset="0.25007" />
+ <item
+ android:color="#FF7542E5"
+ android:offset="0.34194" />
+ <item
+ android:color="#FF291D4F"
+ android:offset="0.77822" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path android:pathData="M23.085,44.63s1.744,-6.5 12.491,-6.5c1.162,0 4.483,-3.242 4.545,-4.182l-0.001,0 0.001,-0a18.818,18.818 0,0 1,-14.19 -0.557,14.256 14.256,0 0,0 -13.895,0.557A9.706,9.706 0,0 0,20.99 39.579c-0.7,6.178 2.566,13.382 10.473,17.161 0.177,0.084 0.343,0.177 0.524,0.258C27.372,54.612 23.562,50.104 23.085,44.63Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:centerX="55.634266"
+ android:centerY="20.593796"
+ android:gradientRadius="78.518456"
+ android:type="radial">
+ <item
+ android:color="#FF9658F9"
+ android:offset="0.18847" />
+ <item
+ android:color="#FF834BED"
+ android:offset="0.48577" />
+ <item
+ android:color="#FF7542E5"
+ android:offset="0.66281" />
+ <item
+ android:color="#FF6B3DD2"
+ android:offset="0.70445" />
+ <item
+ android:color="#FF52319F"
+ android:offset="0.78925" />
+ <item
+ android:color="#FF291D4F"
+ android:offset="0.90908" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path android:pathData="M75.023,27.16c-1.643,-3.951 -4.969,-8.216 -7.582,-9.565a39.215,39.215 0,0 1,3.827 11.47l0.007,0.063C67.002,18.477 59.756,14.182 53.838,4.83c-0.299,-0.473 -0.598,-0.947 -0.89,-1.447 -0.166,-0.285 -0.3,-0.543 -0.416,-0.782a6.882,6.882 0,0 1,-0.564 -1.494,0.099 0.099,0 0,0 -0.086,-0.101 0.128,0.128 0,0 0,-0.071 0c-0.005,0.002 -0.013,0.008 -0.019,0.01 -0.008,0.003 -0.019,0.011 -0.028,0.015l0.015,-0.021C42.287,6.569 39.066,16.855 38.77,22.001c0.44,-0.031 0.879,-0.068 1.327,-0.068a19.073,19.073 0,0 1,16.56 9.669,13.048 13.048,0 0,0 -9.112,-2.212c13.593,6.796 9.944,30.198 -8.892,29.314a16.786,16.786 0,0 1,-4.918 -0.948c-0.37,-0.138 -0.74,-0.291 -1.11,-0.454 -0.213,-0.097 -0.426,-0.196 -0.637,-0.304l0.026,0.016c-0.183,-0.088 -0.367,-0.18 -0.55,-0.274 0.177,0.084 0.343,0.177 0.524,0.258 -4.615,-2.385 -8.426,-6.893 -8.902,-12.367 0,0 1.744,-6.5 12.491,-6.5 1.162,0 4.483,-3.242 4.545,-4.182l-0.001,0 0.001,-0c-0.014,-0.307 -6.592,-2.923 -9.156,-5.45 -1.37,-1.35 -2.021,-2.001 -2.597,-2.489a11.236,11.236 0,0 0,-0.979 -0.739,17.509 17.509,0 0,1 -0.106,-9.236 27.994,27.994 0,0 0,-9.097 7.03l-0.018,0c-1.498,-1.898 -1.393,-8.157 -1.307,-9.464a6.794,6.794 0,0 0,-1.262 0.669,27.537 27.537,0 0,0 -3.693,3.164 33.098,33.098 0,0 0,-3.529 4.232l-0.002,0.006 0.002,-0.006a31.897,31.897 0,0 0,-5.071 11.449c-0.018,0.082 -0.033,0.167 -0.051,0.249 -0.071,0.333 -0.391,2.021 -0.436,2.383 -0.003,0.028 0.003,-0.028 0,0a43.958,43.958 0,0 0,-0.557 5.273c-0,0.065 -0.004,0.128 -0.004,0.193a37.795,37.795 0,0 0,75.044 6.394c0.064,-0.484 0.115,-0.97 0.172,-1.458A38.847,38.847 0,0 0,75.023 27.16ZM71.274,29.101l0.006,0.041 -0.001,-0.004Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:endX="15.88401"
+ android:endY="66.13774"
+ android:startX="69.26325"
+ android:startY="12.7585"
+ android:type="linear">
+ <item
+ android:color="#E59059FF"
+ android:offset="0" />
+ <item
+ android:color="#00291D4F"
+ android:offset="0.61466" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:fillColor="@color/contrastColor"
+ android:pathData="M96.972,24.098h21.427v5.796L103.119,29.894v7.86h15.28v5.752L103.119,43.506L103.119,56.151L96.972,56.151ZM125.688,21.859a3.447,3.447 0,0 1,3.557 3.601,3.579 3.579,0 0,1 -7.157,0.088A3.556,3.556 0,0 1,125.688 21.859ZM122.658,32.441h6.059L128.718,56.151h-6.059ZM146.281,39.027a4.896,4.896 0,0 0,-2.942 -1.054c-2.459,0 -3.864,1.581 -3.864,5.049v13.129h-6.015L133.46,32.441h5.752v3.425a5.65,5.65 0,0 1,5.664 -3.644,7.186 7.186,0 0,1 4.04,1.229ZM148.784,44.428a12.129,12.129 0,0 1,12.207 -12.47c7.113,0 12.163,5.049 12.163,12.075v2.503L154.711,46.535c0.659,2.986 2.986,4.962 6.542,4.962a6.355,6.355 0,0 0,5.884 -3.513l5.049,3.03c-2.503,3.688 -6.059,5.62 -11.109,5.62C153.394,56.634 148.784,51.497 148.784,44.428ZM154.799,41.749h12.47c-0.659,-3.03 -3.117,-4.698 -6.323,-4.698A6.091,6.091 0,0 0,154.799 41.749ZM174.646,32.441h4.259L178.905,31.255c0,-6.455 2.722,-9.133 8.694,-9.133h2.108v5.225h-1.712c-2.81,0 -3.425,0.966 -3.425,3.908v1.186h5.137v5.445h-5.006L184.701,56.151h-5.796L178.905,37.885h-4.259ZM190.848,44.296a12.14,12.14 0,0 1,12.382 -12.338,12.338 12.338,0 1,1 0,24.676A11.96,11.96 0,0 1,190.848 44.296ZM209.729,44.296a6.502,6.502 0,1 0,-12.997 0,6.502 6.502,0 1,0 12.997,0ZM223.779,44.033 L215.217,32.441h7.113l5.049,7.289 5.181,-7.289h6.981L230.848,43.989l9.133,12.163L232.912,56.151l-5.664,-7.728 -5.489,7.728h-7.069Z" />
+ <path
+ android:fillColor="@color/contrastColor"
+ android:pathData="M265.823,39.137l-6.597,7.695v9.499h-3.606V24.229h3.606V42.259l15.392,-18.03h4.486l-10.686,12.401 11.829,19.701h-4.266Z" />
+ <path
+ android:fillColor="@color/contrastColor"
+ android:pathData="M283.812,21.678h3.606V56.331H283.812Z" />
+ <path
+ android:fillColor="@color/contrastColor"
+ android:pathData="M291.464,49.823c0,-4.881 4.134,-7.695 10.774,-7.695H309.758v-0.924c0,-3.605 -2.33,-6.024 -6.948,-6.024a8.392,8.392 0,0 0,-7.563 4.002l-3.122,-1.979A12.827,12.827 0,0 1,302.854 32.101c6.772,0 10.423,3.737 10.423,9.103V56.331H309.758V52.154a12.044,12.044 0,0 1,-9.851 4.661C294.235,56.815 291.464,53.649 291.464,49.823ZM309.758,48.284V45.03h-7.344c-4.925,0 -7.256,1.583 -7.256,4.529 0,2.331 1.671,4.09 5.409,4.09A10.45,10.45 0,0 0,309.758 48.284Z" />
+ <path
+ android:fillColor="@color/contrastColor"
+ android:pathData="M318.422,32.584h3.475v4.485a6.576,6.576 0,0 1,6.772 -4.837,7.752 7.752,0 0,1 3.957,0.88L331.131,36.542a5.204,5.204 0,0 0,-2.902 -0.748c-3.958,0 -6.244,2.287 -6.244,7.521v13.017h-3.563Z" />
+ </group>
+</vector>
diff --git a/mobile/android/focus-android/app/src/klar/res/values/app.xml b/mobile/android/focus-android/app/src/klar/res/values/app.xml
new file mode 100644
index 0000000000..7811e21146
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klar/res/values/app.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<resources>
+ <string name="app_name" translatable="false">Firefox Klar</string>
+
+ <!-- This String is the short version of app name -->
+ <string name="onboarding_short_app_name" translatable="false">Klar</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/klarBeta/java/org/mozilla/focus/utils/AdjustHelper.java b/mobile/android/focus-android/app/src/klarBeta/java/org/mozilla/focus/utils/AdjustHelper.java
new file mode 100644
index 0000000000..b0aa2e1835
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarBeta/java/org/mozilla/focus/utils/AdjustHelper.java
@@ -0,0 +1,14 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils;
+
+import android.content.Context;
+
+public class AdjustHelper {
+ public static void setupAdjustIfNeeded(Context context) {
+ // DEBUG: No Adjust - This class has different implementations for all build types.
+ }
+}
diff --git a/mobile/android/focus-android/app/src/klarBeta/res/drawable/onboarding_logo.xml b/mobile/android/focus-android/app/src/klarBeta/res/drawable/onboarding_logo.xml
new file mode 100644
index 0000000000..0c7fbd412e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarBeta/res/drawable/onboarding_logo.xml
@@ -0,0 +1,263 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="60dp"
+ android:height="62dp"
+ android:viewportWidth="60"
+ android:viewportHeight="62">
+ <path
+ android:pathData="M50.82,35.15a19.25,19.25 0,0 1,-3.59 6.69,47.23 47.23,0 0,1 -8,7.54h6.49a7.49,7.49 0,0 0,7.49 -7.49V38.61A4.13,4.13 0,0 0,50.82 35.15Z"
+ android:fillColor="#008787"/>
+ <path
+ android:pathData="M50.82,35.15a19.25,19.25 0,0 1,-3.59 6.69,47.23 47.23,0 0,1 -8,7.54h6.49a7.49,7.49 0,0 0,7.49 -7.49V38.61A4.13,4.13 0,0 0,50.82 35.15Z"
+ android:strokeAlpha="0.9"
+ android:fillAlpha="0.9">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="47.12"
+ android:startX="50.31"
+ android:endY="39.56"
+ android:endX="42.32"
+ android:type="linear">
+ <item android:offset="0" android:color="#7F054096"/>
+ <item android:offset="0.05" android:color="#700F3D9C"/>
+ <item android:offset="0.26" android:color="#3F2F35B1"/>
+ <item android:offset="0.47" android:color="#1C462FBF"/>
+ <item android:offset="0.67" android:color="#07542BC8"/>
+ <item android:offset="0.86" android:color="#00592ACB"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M50.13,18C49,15.3 46.7,12.36 44.9,11.43a26.74,26.74 0,0 1,2.64 7.9v0.05C44.6,12 39.61,9.08 35.53,2.64c-0.2,-0.33 -0.41,-0.65 -0.61,-1a5.94,5.94 0,0 1,-0.29 -0.54,4.92 4.92,0 0,1 -0.39,-1A0.07,0.07 0,0 0,34.19 0h-0.07a19,19 0,0 0,-9 14.46A12.92,12.92 0,0 0,18 17.23a7.53,7.53 0,0 0,-0.68 -0.51,12 12,0 0,1 -0.07,-6.36A19.21,19.21 0,0 0,11 15.2h0c-1,-1.31 -1,-5.62 -0.9,-6.52a4.39,4.39 0,0 0,-0.87 0.46,19.37 19.37,0 0,0 -2.54,2.18 22.23,22.23 0,0 0,-2.43 2.92h0a21.88,21.88 0,0 0,-3.5 7.88l0,0.17c0,0.23 -0.23,1.38 -0.26,1.63a0.13,0.13 0,0 1,0 0.06A26.47,26.47 0,0 0,0 27.57v0.13a26,26 0,0 0,51.7 4.41l0.12,-1A26.88,26.88 0,0 0,50.13 18ZM20.13,38.38 L20.49,38.56h0ZM26.13,22.68ZM47.6,19.36v0Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="13.8"
+ android:startX="49.38"
+ android:endY="42.17"
+ android:endX="4.33"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.13" android:color="#FF9356F4"/>
+ <item android:offset="0.29" android:color="#FF8951E5"/>
+ <item android:offset="0.46" android:color="#FF7A49CD"/>
+ <item android:offset="0.64" android:color="#FF643DAB"/>
+ <item android:offset="0.82" android:color="#FF492E81"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M50.13,18C49,15.3 46.7,12.36 44.9,11.43a26.74,26.74 0,0 1,2.64 7.9v0.06A23.55,23.55 0,0 1,46.74 37c-3,6.4 -10.21,13 -21.51,12.64 -12.22,-0.35 -23,-9.41 -25,-21.28A11.22,11.22 0,0 1,0.42 24,19.61 19.61,0 0,0 0,27.57v0.13a26,26 0,0 0,51.7 4.41l0.12,-1A26.88,26.88 0,0 0,50.13 18Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="54.238617"
+ android:centerX="-37.945915"
+ android:centerY="-52.021397"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.65" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M50.13,18C49,15.3 46.7,12.36 44.9,11.43a26.74,26.74 0,0 1,2.64 7.9v0.06A23.55,23.55 0,0 1,46.74 37c-3,6.4 -10.21,13 -21.51,12.64 -12.22,-0.35 -23,-9.41 -25,-21.28A11.22,11.22 0,0 1,0.42 24,19.61 19.61,0 0,0 0,27.57v0.13a26,26 0,0 0,51.7 4.41l0.12,-1A26.88,26.88 0,0 0,50.13 18Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="54.25"
+ android:centerX="-25.171875"
+ android:centerY="48.010647"
+ android:type="radial">
+ <item android:offset="0.25" android:color="#00AB71FF"/>
+ <item android:offset="0.42" android:color="#2D9462E0"/>
+ <item android:offset="0.73" android:color="#A5573B8D"/>
+ <item android:offset="0.94" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M37.47,21.08l0.17,0.12a14.35,14.35 0,0 0,-2.42 -3.15C27.13,10 33.1,0.5 34.1,0h0a19,19 0,0 0,-9 14.46c0.31,0 0.61,-0.05 0.92,-0.05A13.11,13.11 0,0 1,37.47 21.08Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="39.25"
+ android:centerX="-18.421875"
+ android:centerY="13.524447"
+ android:type="radial">
+ <item android:offset="0.18" android:color="#FF9658F9"/>
+ <item android:offset="0.33" android:color="#FF7E48EA"/>
+ <item android:offset="0.37" android:color="#FF7542E5"/>
+ <item android:offset="0.41" android:color="#FF6A3DD0"/>
+ <item android:offset="0.48" android:color="#FF5332A2"/>
+ <item android:offset="0.56" android:color="#FF41297E"/>
+ <item android:offset="0.63" android:color="#FF342264"/>
+ <item android:offset="0.69" android:color="#FF2C1E54"/>
+ <item android:offset="0.74" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M26.08,22.7h0c0,0.65 -2.33,2.88 -3.13,2.88 -7.4,0 -8.6,4.48 -8.6,4.48a11,11 0,0 0,6.13 8.52l0.44,0.21c0.25,0.11 0.51,0.22 0.76,0.31a11.55,11.55 0,0 0,3.39 0.65c13,0.61 15.49,-15.51 6.13,-20.19a8.93,8.93 0,0 1,6.27 1.52,13.11 13.11,0 0,0 -11.4,-6.66c-0.31,0 -0.61,0 -0.92,0.05A12.92,12.92 0,0 0,18 17.23c0.39,0.33 0.84,0.78 1.79,1.71C21.54,20.68 26.07,22.49 26.08,22.7Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="25.852"
+ android:centerX="9.834804"
+ android:centerY="31.39819"
+ android:type="radial">
+ <item android:offset="0.07" android:color="#FF9358FC"/>
+ <item android:offset="0.13" android:color="#FF9857F8"/>
+ <item android:offset="0.21" android:color="#FFA755EB"/>
+ <item android:offset="0.3" android:color="#FFBF52D7"/>
+ <item android:offset="0.39" android:color="#FFE14EBA"/>
+ <item android:offset="0.42" android:color="#FFEF4CAF"/>
+ <item android:offset="0.74" android:color="#FFFF7583"/>
+ <item android:offset="0.97" android:color="#FFFFB753"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M26.08,22.7h0c0,0.65 -2.33,2.88 -3.13,2.88 -7.4,0 -8.6,4.48 -8.6,4.48a11,11 0,0 0,6.13 8.52l0.44,0.21c0.25,0.11 0.51,0.22 0.76,0.31a11.55,11.55 0,0 0,3.39 0.65c13,0.61 15.49,-15.51 6.13,-20.19a8.93,8.93 0,0 1,6.27 1.52,13.11 13.11,0 0,0 -11.4,-6.66c-0.31,0 -0.61,0 -0.92,0.05A12.92,12.92 0,0 0,18 17.23c0.39,0.33 0.84,0.78 1.79,1.71C21.54,20.68 26.07,22.49 26.08,22.7Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="13.703885"
+ android:centerX="-2.5936933"
+ android:centerY="-25.865593"
+ android:type="radial">
+ <item android:offset="0.22" android:color="#4CFFB653"/>
+ <item android:offset="0.34" android:color="#7FFF807A"/>
+ <item android:offset="0.44" android:color="#7AFF7781"/>
+ <item android:offset="0.57" android:color="#6DFF5C94"/>
+ <item android:offset="0.64" android:color="#66FF4AA2"/>
+ <item android:offset="0.86" android:color="#4C9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M16.77,16.36c0.21,0.14 0.39,0.25 0.54,0.36a12,12 0,0 1,-0.07 -6.36A19.21,19.21 0,0 0,11 15.2C11.1,15.2 14.87,15.13 16.77,16.36Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="18.5"
+ android:centerX="-25.671875"
+ android:centerY="23.520447"
+ android:type="radial">
+ <item android:offset="0.03" android:color="#FF9658F9"/>
+ <item android:offset="0.62" android:color="#FF7542E5"/>
+ <item android:offset="0.72" android:color="#FF6339C2"/>
+ <item android:offset="0.93" android:color="#FF37246B"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M0.24,28.32c2,11.87 12.77,20.93 25,21.28 11.3,0.32 18.52,-6.24 21.51,-12.64a23.55,23.55 0,0 0,0.81 -17.57h0v0c0.92,6 -2.15,11.87 -6.94,15.82l0,0c-9.34,7.61 -18.28,4.59 -20.09,3.36l-0.38,-0.19c-5.45,-2.6 -7.7,-7.57 -7.22,-11.82A6.67,6.67 0,0 1,6.74 22.7a9.81,9.81 0,0 1,9.57 -0.39,12.92 12.92,0 0,0 9.77,0.39c0,-0.21 -4.54,-2 -6.3,-3.76 -1,-0.93 -1.4,-1.38 -1.79,-1.71a7.53,7.53 0,0 0,-0.68 -0.51c-0.15,-0.11 -0.33,-0.22 -0.54,-0.36 -1.9,-1.23 -5.67,-1.16 -5.8,-1.16h0c-1,-1.31 -1,-5.62 -0.9,-6.52a4.39,4.39 0,0 0,-0.87 0.46,19.37 19.37,0 0,0 -2.54,2.18 22.23,22.23 0,0 0,-2.43 2.92h0a21.88,21.88 0,0 0,-3.5 7.88C0.71,22.18 -0.22,26.22 0.24,28.32Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="76.2155"
+ android:centerX="43.526653"
+ android:centerY="34.794212"
+ android:type="radial">
+ <item android:offset="0.2" android:color="#FFAB71FF"/>
+ <item android:offset="0.29" android:color="#FFA46BFC"/>
+ <item android:offset="0.41" android:color="#FF9059F2"/>
+ <item android:offset="0.54" android:color="#FF7542E5"/>
+ <item android:offset="0.64" android:color="#FF6239BF"/>
+ <item android:offset="0.94" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M35.22,18.05a14.35,14.35 0,0 1,2.42 3.15l0.39,0.32c5.9,5.44 2.81,13.13 2.58,13.68 4.79,-4 7.86,-9.79 6.94,-15.82C44.6,12 39.61,9.08 35.53,2.64c-0.2,-0.33 -0.41,-0.65 -0.61,-1a5.94,5.94 0,0 1,-0.29 -0.54,4.92 4.92,0 0,1 -0.39,-1A0.07,0.07 0,0 0,34.19 0H34.1C33.1,0.5 27.13,10 35.22,18.05Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="57.971546"
+ android:centerX="-12.446564"
+ android:centerY="13.619997"
+ android:type="radial">
+ <item android:offset="0.09" android:color="#FF9658F9"/>
+ <item android:offset="0.14" android:color="#FF8C51F3"/>
+ <item android:offset="0.26" android:color="#FF7542E5"/>
+ <item android:offset="0.29" android:color="#FF6E3ED6"/>
+ <item android:offset="0.4" android:color="#FF5533A6"/>
+ <item android:offset="0.5" android:color="#FF422980"/>
+ <item android:offset="0.59" android:color="#FF342365"/>
+ <item android:offset="0.67" android:color="#FF2C1E55"/>
+ <item android:offset="0.74" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M38,21.52l-0.39,-0.32 -0.17,-0.12a8.93,8.93 0,0 0,-6.27 -1.52c9.36,4.68 6.85,20.8 -6.13,20.19a11.55,11.55 0,0 1,-3.39 -0.65l-0.76,-0.31 -0.44,-0.21h0c1.81,1.23 10.75,4.25 20.09,-3.36l0,0C40.84,34.65 43.93,27 38,21.52Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="49.5"
+ android:centerX="-26.171875"
+ android:centerY="30.517647"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.12" android:color="#FF9155F6"/>
+ <item android:offset="0.25" android:color="#FF834CEE"/>
+ <item android:offset="0.34" android:color="#FF7542E5"/>
+ <item android:offset="0.78" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M14.35,30.06s1.2,-4.48 8.6,-4.48c0.8,0 3.09,-2.23 3.13,-2.88h0a12.92,12.92 0,0 1,-9.77 -0.39,9.81 9.81,0 0,0 -9.57,0.39 6.67,6.67 0,0 0,6.16 3.88c-0.48,4.25 1.77,9.22 7.22,11.82l0.36,0.18A11,11 0,0 1,14.35 30.06Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="54"
+ android:centerX="-13.171875"
+ android:centerY="33.26655"
+ android:type="radial">
+ <item android:offset="0.19" android:color="#FF9658F9"/>
+ <item android:offset="0.49" android:color="#FF834BED"/>
+ <item android:offset="0.66" android:color="#FF7542E5"/>
+ <item android:offset="0.7" android:color="#FF6B3DD2"/>
+ <item android:offset="0.79" android:color="#FF52319F"/>
+ <item android:offset="0.91" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M50.13,18C49,15.3 46.7,12.36 44.9,11.43a26.74,26.74 0,0 1,2.64 7.9v0.05C44.6,12 39.61,9.08 35.53,2.64c-0.2,-0.33 -0.41,-0.65 -0.61,-1a5.94,5.94 0,0 1,-0.29 -0.54,4.92 4.92,0 0,1 -0.39,-1A0.07,0.07 0,0 0,34.19 0h-0.07a19,19 0,0 0,-9 14.46c0.31,0 0.61,-0.05 0.92,-0.05a13.11,13.11 0,0 1,11.4 6.66,8.93 8.93,0 0,0 -6.27,-1.52c9.36,4.68 6.85,20.8 -6.13,20.19a11.55,11.55 0,0 1,-3.39 -0.65l-0.76,-0.31 -0.44,-0.21h0l-0.38,-0.19 0.36,0.18a11,11 0,0 1,-6.13 -8.52s1.2,-4.48 8.6,-4.48c0.8,0 3.09,-2.23 3.13,-2.88h0c0,-0.21 -4.54,-2 -6.3,-3.76 -1,-0.93 -1.4,-1.38 -1.79,-1.71a7.53,7.53 0,0 0,-0.68 -0.51,12 12,0 0,1 -0.07,-6.36A19.21,19.21 0,0 0,11 15.2h0c-1,-1.31 -1,-5.62 -0.9,-6.52a4.39,4.39 0,0 0,-0.87 0.46,19.37 19.37,0 0,0 -2.54,2.18 22.23,22.23 0,0 0,-2.43 2.92h0a21.88,21.88 0,0 0,-3.5 7.88l0,0.17c0,0.23 -0.27,1.4 -0.3,1.65 0,0 0,0 0,0A31.77,31.77 0,0 0,0 27.57v0.13a26,26 0,0 0,51.7 4.41l0.12,-1A26.88,26.88 0,0 0,50.13 18ZM47.54,19.34v0h0Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="8.1"
+ android:startX="46.16"
+ android:endY="44.87"
+ android:endX="9.39"
+ android:type="linear">
+ <item android:offset="0" android:color="#E59059FF"/>
+ <item android:offset="0.61" android:color="#00291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M52,39.86H30.45a9.22,9.22 0,0 0,-9.22 9.22v4.51a1.25,1.25 0,0 0,1.25 1.25H44a9.22,9.22 0,0 0,9.23 -9.22v-7A1.25,1.25 0,0 1,52 39.86Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="41.23"
+ android:startX="24.74"
+ android:endY="53.61"
+ android:endX="54"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF54FFBD"/>
+ <item android:offset="1" android:color="#FF00DDFF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M26.49,44.17h2.65c1.43,0 2.23,0.64 2.23,1.79a1.42,1.42 0,0 1,-0.74 1.3,1.5 1.5,0 0,1 0.83,1.43c0,1.26 -0.88,1.89 -2.3,1.89L26.49,50.58ZM27.71,45.27v1.48h1.48c0.66,0 0.94,-0.32 0.94,-0.76s-0.31,-0.72 -1,-0.72ZM27.71,47.87v1.6h1.47c0.67,0 1,-0.31 1,-0.81s-0.3,-0.79 -1.08,-0.79Z"
+ android:fillColor="#20123a"/>
+ <path
+ android:pathData="M32.65,44.17H37v1.17H33.89v1.44H37V48H33.89v1.46H37v1.17H32.65Z"
+ android:fillColor="#20123a"/>
+ <path
+ android:pathData="M39.81,45.31H38V44.17H42.8v1.14H41v5.27H39.81Z"
+ android:fillColor="#20123a"/>
+ <path
+ android:pathData="M44.9,44.17h1.22l2.43,6.41L47.27,50.58l-0.42,-1.17L44.17,49.41l-0.42,1.17L42.47,50.58ZM44.58,48.29h1.86l-0.93,-2.55Z"
+ android:fillColor="#20123a"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/klarBeta/res/xml-v25/shortcuts.xml b/mobile/android/focus-android/app/src/klarBeta/res/xml-v25/shortcuts.xml
new file mode 100644
index 0000000000..1024f92407
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarBeta/res/xml-v25/shortcuts.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
+ <shortcut
+ android:shortcutId="erase"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_short_label"
+ android:shortcutLongLabel="@string/shortcut_erase_long_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.klar.beta"
+ android:targetClass="org.mozilla.focus.activity.EraseShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+ <shortcut
+ android:shortcutId="erase_and_open"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_and_open_short_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.klar.beta"
+ android:targetClass="org.mozilla.focus.activity.EraseAndOpenShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+</shortcuts>
diff --git a/mobile/android/focus-android/app/src/klarDebug/res/xml-v25/shortcuts.xml b/mobile/android/focus-android/app/src/klarDebug/res/xml-v25/shortcuts.xml
new file mode 100644
index 0000000000..b18e391208
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarDebug/res/xml-v25/shortcuts.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
+ <shortcut
+ android:shortcutId="erase"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_short_label"
+ android:shortcutLongLabel="@string/shortcut_erase_long_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.klar.debug"
+ android:targetClass="org.mozilla.focus.activity.EraseShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+ <shortcut
+ android:shortcutId="erase_and_open"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_and_open_short_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.klar.debug"
+ android:targetClass="org.mozilla.focus.activity.EraseAndOpenShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+</shortcuts>
diff --git a/mobile/android/focus-android/app/src/klarNightly/drawable-v24/icon_foreground.xml b/mobile/android/focus-android/app/src/klarNightly/drawable-v24/icon_foreground.xml
new file mode 100644
index 0000000000..4be0323b4c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/drawable-v24/icon_foreground.xml
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <group android:scaleX="0.14238578"
+ android:scaleY="0.14238578"
+ android:translateX="26.875507"
+ android:translateY="25.95">
+ <path
+ android:pathData="M366.142,132.455C357.875,112.557 341.144,91.031 328.004,84.229C338.698,105.249 344.889,126.332 347.253,142.06C347.253,142.06 347.253,142.168 347.253,142.376C325.757,88.679 289.317,67.018 259.546,19.869C258.039,17.49 256.54,15.102 255.033,12.579C254.194,11.141 253.526,9.865 252.94,8.635C251.708,6.242 250.757,3.714 250.106,1.101C250.11,0.977 250.067,0.856 249.987,0.761C249.908,0.666 249.796,0.603 249.673,0.586C249.558,0.554 249.436,0.554 249.321,0.586L249.222,0.64L249.086,0.712L249.159,0.613C201.411,28.651 185.212,80.494 183.723,106.434C164.645,107.74 146.404,114.782 131.381,126.639C129.807,125.309 128.162,124.065 126.454,122.913C122.123,107.72 121.939,91.64 125.922,76.352C106.393,85.26 91.205,99.352 80.168,111.788H80.078C72.542,102.228 73.075,70.663 73.499,64.078C73.409,63.671 67.886,66.954 67.182,67.452C60.534,72.208 54.319,77.544 48.61,83.397C42.108,90.003 36.171,97.143 30.859,104.742C18.632,122.108 9.961,141.729 5.347,162.473C5.257,162.88 5.185,163.314 5.094,163.731C4.733,165.404 3.443,173.797 3.217,175.624C3.217,175.76 3.217,175.895 3.217,176.04C1.55,184.714 0.519,193.499 0.131,202.323C0.131,202.649 0.131,202.975 0.131,203.3C0.131,308.515 85.24,393.814 190.22,393.814C284.236,393.814 362.306,325.401 377.584,235.535C377.909,233.102 378.171,230.651 378.487,228.191C382.25,195.513 378.054,161.171 366.142,132.455ZM147.048,281.562C147.95,281.987 148.771,282.467 149.683,282.865L149.809,282.946C148.889,282.518 147.968,282.057 147.048,281.562ZM347.308,142.44V142.259C347.308,142.322 347.308,142.395 347.308,142.467V142.44Z"
+ android:fillColor="#9658F9"/>
+ <path
+ android:pathData="M366.142,132.455C357.876,112.557 341.145,91.031 328.005,84.229C338.699,105.249 344.89,126.331 347.254,142.06C347.254,142.06 347.254,142.06 347.254,142.241C347.254,142.422 347.254,142.376 347.254,142.449C365.185,191.18 355.376,240.735 341.334,271.025C319.549,317.876 266.82,365.902 184.31,363.56C95.122,361.027 16.556,294.695 1.891,207.822C-0.816,194.12 1.891,187.165 3.236,176.04C1.593,184.614 0.971,187.092 0.149,202.323C0.149,202.649 0.149,202.975 0.149,203.3C0.149,308.515 85.258,393.814 190.239,393.814C284.255,393.814 362.325,325.401 377.603,235.535C377.928,233.102 378.19,230.651 378.505,228.191C382.251,195.513 378.054,161.171 366.142,132.455Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="396.278"
+ android:centerX="326.399"
+ android:centerY="44.2073"
+ android:type="radial">
+ <item android:offset="0.13" android:color="#FF291D4F"/>
+ <item android:offset="0.56" android:color="#FF21153C"/>
+ <item android:offset="0.89" android:color="#FF1D1133"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M367.044,132.455C358.778,112.557 342.047,91.031 328.907,84.229C339.601,105.249 345.792,126.331 348.156,142.06C348.156,142.06 348.156,142.06 348.156,142.241C348.156,142.422 348.156,142.376 348.156,142.449C366.088,191.18 356.278,240.735 342.236,271.025C320.452,317.876 267.722,365.902 185.212,363.56C96.024,361.027 17.458,294.695 2.794,207.822C0.086,194.12 2.793,187.165 4.138,176.04C2.496,184.614 1.873,187.092 1.052,202.323C1.052,202.649 1.052,202.975 1.052,203.3C1.052,308.515 86.161,393.814 191.141,393.814C285.157,393.814 363.227,325.401 378.505,235.535C378.83,233.102 379.092,230.651 379.408,228.191C383.153,195.513 378.957,161.171 367.044,132.455Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="396.279"
+ android:centerX="186.16"
+ android:centerY="203.192"
+ android:type="radial">
+ <item android:offset="0.15" android:color="#FF20123A"/>
+ <item android:offset="0.22" android:color="#EF22143E"/>
+ <item android:offset="0.28" android:color="#BC271C4A"/>
+ <item android:offset="0.34" android:color="#6B30285F"/>
+ <item android:offset="0.38" android:color="#19393473"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M273.75,154.849C274.156,155.138 274.544,155.428 274.923,155.753C270.154,147.266 264.215,139.496 257.28,132.672C198.189,73.457 241.786,4.24 249.159,0.748L249.231,0.649C201.483,28.687 185.284,80.53 183.795,106.47C186.015,106.316 188.217,106.126 190.473,106.126C226.11,106.099 257.145,125.743 273.75,154.849Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="287.093"
+ android:centerX="229.368"
+ android:centerY="-45.9212"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF291D4F"/>
+ <item android:offset="0.08" android:color="#FF2B1E53"/>
+ <item android:offset="0.16" android:color="#FF33225E"/>
+ <item android:offset="0.23" android:color="#FF3F2971"/>
+ <item android:offset="0.31" android:color="#FF50328C"/>
+ <item android:offset="0.38" android:color="#FF673EAF"/>
+ <item android:offset="0.46" android:color="#FF824DD9"/>
+ <item android:offset="0.5" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.59,166.697C190.283,171.436 173.579,187.78 167.731,187.78C113.675,187.78 104.903,220.548 104.903,220.548C107.304,248.152 126.472,270.872 149.682,282.901C150.738,283.452 151.812,283.941 152.886,284.438C154.745,285.261 156.613,286.03 158.472,286.727C166.434,289.546 174.771,291.156 183.208,291.502C277.964,295.961 296.301,177.975 227.933,143.715C245.44,140.658 263.615,147.722 273.767,154.867C257.145,125.762 226.11,106.117 190.472,106.117C188.216,106.117 186.014,106.307 183.794,106.461C164.717,107.767 146.476,114.809 131.453,126.666C134.35,129.126 137.626,132.409 144.511,139.22C157.434,151.936 190.527,165.123 190.59,166.697Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="35307.8"
+ android:centerX="245037"
+ android:centerY="-213605"
+ android:type="radial">
+ <item android:offset="0.07" android:color="#FF9358FC"/>
+ <item android:offset="0.13" android:color="#FF9857F8"/>
+ <item android:offset="0.21" android:color="#FFA755EB"/>
+ <item android:offset="0.3" android:color="#FFBF52D7"/>
+ <item android:offset="0.39" android:color="#FFE14EBA"/>
+ <item android:offset="0.42" android:color="#FFEF4CAF"/>
+ <item android:offset="0.74" android:color="#FFFF7583"/>
+ <item android:offset="0.97" android:color="#FFFFB753"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.59,166.697C190.283,171.436 173.579,187.78 167.731,187.78C113.675,187.78 104.903,220.548 104.903,220.548C107.304,248.152 126.472,270.872 149.682,282.901C150.738,283.452 151.812,283.941 152.886,284.438C154.745,285.261 156.613,286.03 158.472,286.727C166.434,289.546 174.771,291.156 183.208,291.502C277.964,295.961 296.301,177.975 227.933,143.715C245.44,140.658 263.615,147.722 273.767,154.867C257.145,125.762 226.11,106.117 190.472,106.117C188.216,106.117 186.014,106.307 183.794,106.461C164.717,107.767 146.476,114.809 131.453,126.666C134.35,129.126 137.626,132.409 144.511,139.22C157.434,151.936 190.527,165.123 190.59,166.697Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="18707"
+ android:centerX="179826"
+ android:centerY="-335486"
+ android:type="radial">
+ <item android:offset="0.22" android:color="#4CFFB653"/>
+ <item android:offset="0.34" android:color="#7FFF807A"/>
+ <item android:offset="0.44" android:color="#7AFF7781"/>
+ <item android:offset="0.57" android:color="#6DFF5C94"/>
+ <item android:offset="0.64" android:color="#66FF4AA2"/>
+ <item android:offset="0.86" android:color="#4C9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M122.62,120.308C124.154,121.312 125.427,122.117 126.555,122.922C122.224,107.729 122.04,91.649 126.022,76.361C106.493,85.27 91.305,99.361 80.269,111.797C81.18,111.779 108.75,111.282 122.62,120.308Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="135.745"
+ android:centerX="176.586"
+ android:centerY="27.9547"
+ android:type="radial">
+ <item android:offset="0.43" android:color="#99291D4F"/>
+ <item android:offset="1" android:color="#99291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M1.908,207.822C16.573,294.65 95.139,361.027 184.327,363.56C266.882,365.902 319.612,317.876 341.351,271.025C355.429,240.735 365.203,191.18 347.271,142.449V142.268C347.271,142.123 347.271,142.042 347.271,142.087C347.271,142.132 347.271,142.195 347.271,142.403C354.013,186.532 331.623,229.285 296.608,258.173L296.509,258.426C228.285,314.095 163.012,292.018 149.791,282.973C148.87,282.533 147.95,282.072 147.029,281.589C107.259,262.542 90.826,226.219 94.345,195.079C60.765,195.079 49.313,166.679 49.313,166.679C49.313,166.679 79.464,145.135 119.207,163.875C156.009,181.231 190.572,166.688 190.572,166.688C190.509,165.132 157.417,151.945 144.548,139.211C137.662,132.4 134.386,129.117 131.489,126.657C129.915,125.327 128.271,124.083 126.562,122.931C125.434,122.162 124.162,121.321 122.628,120.317C108.757,111.272 81.188,111.788 80.276,111.806H80.186C72.651,102.246 73.183,70.68 73.607,64.096C73.517,63.689 67.994,66.972 67.29,67.47C60.642,72.226 54.428,77.562 48.718,83.415C42.216,90.021 36.279,97.161 30.967,104.76C18.741,122.126 10.07,141.747 5.455,162.491C5.329,162.88 -1.422,192.474 1.908,207.822Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="579.148"
+ android:centerX="283.289"
+ android:centerY="-58.3303"
+ android:type="radial">
+ <item android:offset="0.41" android:color="#FF20123A"/>
+ <item android:offset="0.59" android:color="#FC23143E"/>
+ <item android:offset="0.69" android:color="#F72B194C"/>
+ <item android:offset="0.77" android:color="#EF392163"/>
+ <item android:offset="0.85" android:color="#E04E2D84"/>
+ <item android:offset="0.92" android:color="#D1693DAF"/>
+ <item android:offset="0.98" android:color="#BA8950E3"/>
+ <item android:offset="1" android:color="#B29658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M257.299,132.635C264.233,139.46 270.172,147.23 274.942,155.717C275.988,156.513 276.972,157.291 277.802,158.06C320.894,197.855 298.315,254.157 296.627,258.164C331.642,229.222 354.031,186.505 347.29,142.395C325.794,88.697 289.354,67.036 259.582,19.887C258.075,17.508 256.577,15.12 255.07,12.597C254.231,11.159 253.563,9.884 252.976,8.653C251.744,6.26 250.793,3.732 250.143,1.119C250.146,0.995 250.104,0.874 250.024,0.779C249.944,0.684 249.832,0.622 249.709,0.604C249.594,0.572 249.473,0.572 249.358,0.604L249.258,0.658L249.123,0.73C241.804,4.231 198.207,73.421 257.299,132.635Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="447.145"
+ android:centerX="218.453"
+ android:centerY="-1.90324"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF20123A"/>
+ <item android:offset="0.23" android:color="#FF21133C"/>
+ <item android:offset="0.33" android:color="#FF261543"/>
+ <item android:offset="0.41" android:color="#FF2E1A50"/>
+ <item android:offset="0.47" android:color="#FF392162"/>
+ <item android:offset="0.53" android:color="#FF472979"/>
+ <item android:offset="0.58" android:color="#FF593496"/>
+ <item android:offset="0.63" android:color="#FF6E40B8"/>
+ <item android:offset="0.67" android:color="#FF854EDE"/>
+ <item android:offset="0.69" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M257.299,132.635C264.233,139.46 270.172,147.23 274.942,155.717C275.988,156.513 276.972,157.291 277.802,158.06C320.894,197.855 298.315,254.157 296.627,258.164C331.642,229.222 354.031,186.505 347.29,142.395C325.794,88.697 289.354,67.036 259.582,19.887C258.075,17.508 256.577,15.12 255.07,12.597C254.231,11.159 253.563,9.884 252.976,8.653C251.744,6.26 250.793,3.732 250.143,1.119C250.146,0.995 250.104,0.874 250.024,0.779C249.944,0.684 249.832,0.622 249.709,0.604C249.594,0.572 249.473,0.572 249.358,0.604L249.258,0.658L249.123,0.73C241.804,4.231 198.207,73.421 257.299,132.635Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="263.609"
+ android:startX="348.526"
+ android:endY="218.29"
+ android:endX="329.44"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF2451F0"/>
+ <item android:offset="0.1" android:color="#DD2349D8"/>
+ <item android:offset="0.35" android:color="#8E2236A1"/>
+ <item android:offset="0.57" android:color="#51212675"/>
+ <item android:offset="0.76" android:color="#26211B55"/>
+ <item android:offset="0.91" android:color="#0A201541"/>
+ <item android:offset="1" android:color="#0020123A"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M277.803,158.06C276.972,157.291 275.998,156.513 274.942,155.717C274.563,155.428 274.175,155.138 273.769,154.813C263.616,147.668 245.441,140.604 227.934,143.661C296.303,177.922 277.947,295.907 183.209,291.448C174.772,291.102 166.435,289.492 158.473,286.673C156.614,285.976 154.746,285.207 152.887,284.384C151.813,283.887 150.739,283.399 149.684,282.847L149.81,282.928C163.031,291.973 228.322,314.05 296.528,258.381L296.628,258.128C298.315,254.158 320.894,197.865 277.803,158.06Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="465.784"
+ android:centerX="173.391"
+ android:centerY="78.3506"
+ android:type="radial">
+ <item android:offset="0.36" android:color="#FF291D4F"/>
+ <item android:offset="0.83" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M104.904,220.53C104.904,220.53 113.675,187.762 167.731,187.762C173.579,187.762 190.292,171.418 190.59,166.679C190.59,166.679 156.027,181.223 119.225,163.866C79.518,145.126 49.332,166.67 49.332,166.67C49.332,166.67 60.784,195.07 94.363,195.07C90.844,226.21 107.277,262.533 147.048,281.58C147.95,282.006 148.771,282.485 149.683,282.883C126.472,270.854 107.304,248.098 104.904,220.53Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="395.737"
+ android:centerX="258.138"
+ android:centerY="107.908"
+ android:type="radial">
+ <item android:offset="0.09" android:color="#FF291D4F"/>
+ <item android:offset="0.44" android:color="#C1291D4F"/>
+ <item android:offset="0.63" android:color="#99291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M366.144,132.455C357.877,112.557 341.146,91.031 328.007,84.229C338.7,105.249 344.891,126.332 347.256,142.06C347.256,142.06 347.256,142.168 347.256,142.376C325.759,88.679 289.319,67.018 259.548,19.869C258.041,17.49 256.543,15.102 255.035,12.579C254.196,11.141 253.528,9.865 252.942,8.635C251.71,6.242 250.759,3.714 250.108,1.101C250.112,0.977 250.069,0.856 249.99,0.761C249.91,0.666 249.798,0.603 249.675,0.586C249.56,0.554 249.438,0.554 249.323,0.586L249.224,0.64L249.088,0.712L249.161,0.613C201.413,28.651 185.214,80.494 183.725,106.434C185.945,106.28 188.147,106.09 190.403,106.09C226.04,106.09 257.075,125.735 273.698,154.84C263.545,147.695 245.37,140.631 227.863,143.688C296.232,177.949 277.876,295.934 183.138,291.475C174.701,291.128 166.364,289.519 158.402,286.7C156.543,286.003 154.675,285.234 152.816,284.411C151.742,283.914 150.668,283.425 149.613,282.874L149.739,282.955C148.818,282.515 147.898,282.054 146.978,281.571C147.88,281.996 148.701,282.476 149.613,282.874C126.402,270.845 107.198,248.125 104.834,220.521C104.834,220.521 113.605,187.753 167.661,187.753C173.509,187.753 190.222,171.409 190.52,166.67C190.457,165.114 157.365,151.927 144.496,139.193C137.61,132.382 134.334,129.099 131.438,126.639C129.863,125.309 128.219,124.065 126.51,122.913C122.179,107.72 121.995,91.64 125.978,76.352C106.449,85.26 91.261,99.352 80.224,111.788H80.134C72.599,102.228 73.131,70.663 73.555,64.078C73.465,63.671 67.942,66.954 67.238,67.452C60.591,72.208 54.376,77.544 48.666,83.397C42.165,90.003 36.227,97.143 30.915,104.742C18.689,122.108 10.018,141.729 5.403,162.473C5.313,162.88 5.241,163.314 5.15,163.731C4.789,165.404 3.183,173.915 2.958,175.742C1.489,184.538 0.552,193.414 0.151,202.323C0.151,202.649 0.151,202.975 0.151,203.3C0.151,308.515 85.26,393.814 190.24,393.814C284.256,393.814 362.326,325.401 377.604,235.535C377.929,233.102 378.191,230.651 378.507,228.191C382.252,195.513 378.056,161.171 366.144,132.455ZM347.283,142.241C347.283,142.304 347.283,142.376 347.283,142.449V142.241Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="59.8454"
+ android:startX="337.184"
+ android:endY="328.356"
+ android:endX="68.0838"
+ android:type="linear">
+ <item android:offset="0.3" android:color="#CC291D4F"/>
+ <item android:offset="0.55" android:color="#44291D4F"/>
+ <item android:offset="0.66" android:color="#00291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.483,166.489C190.176,171.228 173.472,187.572 167.624,187.572C113.568,187.572 104.796,220.34 104.796,220.34C107.197,247.935 126.365,270.654 149.575,282.684C150.631,283.226 151.705,283.724 152.779,284.212C154.638,285.035 156.506,285.804 158.365,286.5C166.325,289.327 174.663,290.94 183.101,291.285C277.857,295.735 296.194,177.767 227.826,143.516C245.333,140.459 263.508,147.514 273.661,154.668C257.038,125.563 226.003,105.927 190.365,105.927C188.109,105.927 185.907,106.108 183.687,106.262C164.61,107.568 146.369,114.61 131.346,126.467C134.243,128.927 137.519,132.21 144.404,139.012C157.336,151.755 190.42,164.942 190.483,166.489Z"
+ android:strokeAlpha="0.95"
+ android:fillAlpha="0.95">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="188.512"
+ android:centerX="177.806"
+ android:centerY="348.029"
+ android:type="radial">
+ <item android:offset="0.29" android:color="#FF0060DF"/>
+ <item android:offset="0.42" android:color="#FF2357E1"/>
+ <item android:offset="0.6" android:color="#FF4F4CE3"/>
+ <item android:offset="0.75" android:color="#FF6B45E4"/>
+ <item android:offset="0.83" android:color="#FF7542E5"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.483,166.489C190.176,171.228 173.472,187.572 167.624,187.572C113.568,187.572 104.796,220.34 104.796,220.34C107.197,247.935 126.365,270.654 149.575,282.684C150.631,283.226 151.705,283.724 152.779,284.212C154.638,285.035 156.506,285.804 158.365,286.5C166.325,289.327 174.663,290.94 183.101,291.285C277.857,295.735 296.194,177.767 227.826,143.516C245.333,140.459 263.508,147.514 273.661,154.668C257.038,125.563 226.003,105.927 190.365,105.927C188.109,105.927 185.907,106.108 183.687,106.262C164.61,107.568 146.369,114.61 131.346,126.467C134.243,128.927 137.519,132.21 144.404,139.012C157.336,151.755 190.42,164.942 190.483,166.489Z"
+ android:strokeAlpha="0.95"
+ android:fillAlpha="0.95">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="100.031"
+ android:centerX="179.629"
+ android:centerY="147.104"
+ android:type="radial">
+ <item android:offset="0.21" android:color="#0045278D"/>
+ <item android:offset="0.25" android:color="#0F44268A"/>
+ <item android:offset="0.73" android:color="#96371F6F"/>
+ <item android:offset="0.96" android:color="#CC321C64"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ </group>
+</vector>
diff --git a/mobile/android/focus-android/app/src/klarNightly/drawable/background_gradient_dark.xml b/mobile/android/focus-android/app/src/klarNightly/drawable/background_gradient_dark.xml
new file mode 100644
index 0000000000..79a9e23abf
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/drawable/background_gradient_dark.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <gradient
+ android:angle="315"
+ android:startColor="@color/headerGradientStart"
+ android:centerColor="@color/headerGradientMiddle"
+ android:endColor="@color/headerGradientEnd" />
+</shape>
diff --git a/mobile/android/focus-android/app/src/klarNightly/drawable/icon_background.xml b/mobile/android/focus-android/app/src/klarNightly/drawable/icon_background.xml
new file mode 100644
index 0000000000..d2c843b554
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/drawable/icon_background.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <group android:scaleX="0.23203126"
+ android:scaleY="0.23203126"
+ android:translateX="-5.4"
+ android:translateY="-5.4">
+ <path
+ android:pathData="M471.579,0H40.421C18.097,0 0,18.097 0,40.421V471.579C0,493.903 18.097,512 40.421,512H471.579C493.903,512 512,493.903 512,471.579V40.421C512,18.097 493.903,0 471.579,0Z"
+ android:fillColor="#F0F0F4"/>
+ </group>
+</vector>
diff --git a/mobile/android/focus-android/app/src/klarNightly/drawable/toolbar_url_background.xml b/mobile/android/focus-android/app/src/klarNightly/drawable/toolbar_url_background.xml
new file mode 100644
index 0000000000..ee5d803fd4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/drawable/toolbar_url_background.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <corners android:radius="8dp" />
+ <solid android:color="@color/toolbarBackground" />
+</shape> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/klarNightly/mipmap-anydpi-v26/ic_launcher.xml b/mobile/android/focus-android/app/src/klarNightly/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000000..39b175e682
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@mipmap/icon_background"/>
+ <foreground android:drawable="@mipmap/icon_foreground"/>
+</adaptive-icon> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/klarNightly/mipmap-anydpi-v26/ic_launcher_round.xml b/mobile/android/focus-android/app/src/klarNightly/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000000..1b3296f41d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@drawable/ic_launcher_background"/>
+ <foreground android:drawable="@drawable/ic_launcher_foreground"/>
+</adaptive-icon> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/klarNightly/mipmap-hdpi/ic_launcher.png b/mobile/android/focus-android/app/src/klarNightly/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000000..57266ce663
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/klarNightly/mipmap-hdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/klarNightly/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..200d210606
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/mipmap-hdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/klarNightly/mipmap-mdpi/ic_launcher.png b/mobile/android/focus-android/app/src/klarNightly/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000000..6035524f91
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/klarNightly/mipmap-mdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/klarNightly/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..92290c2ddd
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/mipmap-mdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/klarNightly/mipmap-xhdpi/ic_launcher.png b/mobile/android/focus-android/app/src/klarNightly/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000000..e62f9490c2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/klarNightly/mipmap-xhdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/klarNightly/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..c8a9087966
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/mipmap-xhdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/klarNightly/mipmap-xxhdpi/ic_launcher.png b/mobile/android/focus-android/app/src/klarNightly/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000..efbf73d970
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/klarNightly/mipmap-xxhdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/klarNightly/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..a241232589
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/mipmap-xxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/klarNightly/mipmap-xxxhdpi/ic_launcher.png b/mobile/android/focus-android/app/src/klarNightly/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000..40f1e0d060
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/klarNightly/mipmap-xxxhdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/klarNightly/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..00c87c538d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/mipmap-xxxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/klarNightly/res/xml-v25/shortcuts.xml b/mobile/android/focus-android/app/src/klarNightly/res/xml-v25/shortcuts.xml
new file mode 100644
index 0000000000..c35341d8c1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarNightly/res/xml-v25/shortcuts.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
+ <shortcut
+ android:shortcutId="erase"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_short_label"
+ android:shortcutLongLabel="@string/shortcut_erase_long_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.klar"
+ android:targetClass="org.mozilla.focus.activity.EraseShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+ <shortcut
+ android:shortcutId="erase_and_open"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_and_open_short_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.klar"
+ android:targetClass="org.mozilla.focus.activity.EraseAndOpenShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+</shortcuts>
diff --git a/mobile/android/focus-android/app/src/klarRelease/java/org/mozilla/focus/utils/AdjustHelper.java b/mobile/android/focus-android/app/src/klarRelease/java/org/mozilla/focus/utils/AdjustHelper.java
new file mode 100644
index 0000000000..b0aa2e1835
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarRelease/java/org/mozilla/focus/utils/AdjustHelper.java
@@ -0,0 +1,14 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils;
+
+import android.content.Context;
+
+public class AdjustHelper {
+ public static void setupAdjustIfNeeded(Context context) {
+ // DEBUG: No Adjust - This class has different implementations for all build types.
+ }
+}
diff --git a/mobile/android/focus-android/app/src/klarRelease/java/org/mozilla/focus/web/Config.kt b/mobile/android/focus-android/app/src/klarRelease/java/org/mozilla/focus/web/Config.kt
new file mode 100644
index 0000000000..33ddf545d7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarRelease/java/org/mozilla/focus/web/Config.kt
@@ -0,0 +1,10 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.web
+
+object Config {
+ const val EXPERIMENT_DESCRIPTOR_GECKOVIEW_ENGINE = "use-gecko"
+ const val EXPERIMENT_DESCRIPTOR_HOME_SCREEN_TIPS = "use-homescreen-tips"
+}
diff --git a/mobile/android/focus-android/app/src/klarRelease/res/xml-v25/shortcuts.xml b/mobile/android/focus-android/app/src/klarRelease/res/xml-v25/shortcuts.xml
new file mode 100644
index 0000000000..c35341d8c1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/klarRelease/res/xml-v25/shortcuts.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
+ <shortcut
+ android:shortcutId="erase"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_short_label"
+ android:shortcutLongLabel="@string/shortcut_erase_long_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.klar"
+ android:targetClass="org.mozilla.focus.activity.EraseShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+ <shortcut
+ android:shortcutId="erase_and_open"
+ android:enabled="true"
+ android:icon="@drawable/ic_shortcut_erase"
+ android:shortcutShortLabel="@string/shortcut_erase_and_open_short_label">
+ <intent
+ android:action="erase"
+ android:targetPackage="org.mozilla.klar"
+ android:targetClass="org.mozilla.focus.activity.EraseAndOpenShortcutActivity">
+ <extra android:name="shortcut" android:value="true" />
+ </intent>
+ </shortcut>
+</shortcuts>
diff --git a/mobile/android/focus-android/app/src/main/AndroidManifest.xml b/mobile/android/focus-android/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000..72926930ae
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/AndroidManifest.xml
@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- Used by sentry. -->
+ <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
+ <!-- Needed to prompt the user to give permission for camera access -->
+ <uses-permission android:name="android.permission.CAMERA" />
+
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
+
+ <!-- This is needed because the android.permission.CAMERA above automatically
+ adds a requirements for camera hardware and we don't want add those restrictions -->
+ <uses-feature
+ android:name="android.hardware.camera"
+ android:required="false" />
+ <uses-feature
+ android:name="android.hardware.camera.autofocus"
+ android:required="false" />
+
+ <!-- Needed to prompt the user to give permission to install a downloaded apk -->
+ <uses-permission-sdk-23 android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
+
+ <uses-feature android:name="android.hardware.fingerprint" android:required="false"/>
+
+ <uses-permission-sdk-23 android:name="android.permission.USE_FINGERPRINT"/>
+
+ <!-- Permission needed to publish the app on Samsung AppStore -->
+ <uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY"/>
+
+ <!-- Needed to interact with all apps installed on a device -->
+ <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
+ tools:ignore="QueryAllPackagesPermission" />
+
+ <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+ <uses-permission android:name="android.permission.RECORD_AUDIO" />
+
+ <!-- Needed for Google Play policy https://support.google.com/googleplay/android-developer/answer/6048248 -->
+ <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
+
+ <!-- Needed to post notifications on devices with Android 13 and later-->
+ <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
+
+ <!-- Needed for uploading media files on devices with Android 13 and later. -->
+ <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
+ <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
+ <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
+
+ <application
+ android:allowBackup="false"
+ android:icon="@mipmap/ic_launcher"
+ android:label="@string/app_name"
+ android:supportsRtl="true"
+ android:theme="@style/Theme.App.Starting"
+ android:name=".FocusApplication"
+ android:usesCleartextTraffic="true">
+
+ <activity
+ android:name=".activity.IntentReceiverActivity"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.BROWSABLE" />
+ <data android:scheme="http" />
+ <data android:scheme="https" />
+ </intent-filter>
+
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <category android:name="android.intent.category.BROWSABLE" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:scheme="http" />
+ <data android:scheme="https" />
+ <data android:mimeType="text/html"/>
+ <data android:mimeType="text/plain"/>
+ <data android:mimeType="application/xhtml+xml"/>
+ </intent-filter>
+
+ <intent-filter>
+ <action android:name="android.intent.action.SEND" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="text/plain" />
+ </intent-filter>
+
+ <intent-filter>
+ <action android:name="android.intent.action.ASSIST" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
+
+ <activity android:name=".activity.MainActivity"
+ android:launchMode="singleTask"
+ android:exported="true"
+ android:windowSoftInputMode="adjustResize"
+ android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize"
+ android:resizeableActivity="true"
+ android:supportsPictureInPicture="true"
+ android:label="@string/app_name"
+ tools:targetApi="n">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+
+ <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
+ </activity>
+
+ <activity
+ android:name=".activity.CrashListActivity"
+ android:exported="false"
+ android:theme="@style/Theme.AppCompat.NoActionBar"/>
+
+ <activity android:name=".activity.CustomTabActivity"
+ android:windowSoftInputMode="adjustResize|stateAlwaysHidden"
+ android:exported="false"
+ android:taskAffinity=""
+ android:persistableMode="persistNever"
+ android:autoRemoveFromRecents="false"
+ android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize"
+ android:resizeableActivity="true"
+ android:supportsPictureInPicture="true"
+ android:label="@string/app_name"
+ android:theme="@style/AppTheme"
+ tools:targetApi="n" />
+
+ <activity android:name=".activity.TextActionActivity"
+ android:label="${textSelectionSearchAction}"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="android.intent.action.PROCESS_TEXT" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="text/plain" />
+ </intent-filter>
+ </activity>
+
+ <activity android:name=".activity.InstallFirefoxActivity"
+ android:theme="@style/Theme.AppCompat.NoActionBar" />
+
+ <activity android:name=".activity.EraseShortcutActivity"
+ android:theme="@android:style/Theme.Translucent" />
+
+ <activity android:name=".activity.EraseAndOpenShortcutActivity"
+ android:theme="@android:style/Theme.Translucent" />
+
+ <activity
+ android:name=".searchwidget.VoiceSearchActivity"
+ android:excludeFromRecents="true"
+ android:taskAffinity=""
+ android:theme="@style/Theme.AppCompat.Translucent" />
+
+ <provider
+ android:authorities="${applicationId}.fileprovider"
+ android:name="androidx.core.content.FileProvider"
+ android:exported="false"
+ android:grantUriPermissions="true">
+ <meta-data
+ android:name="android.support.FILE_PROVIDER_PATHS"
+ android:resource="@xml/provider_paths"/>
+ </provider>
+
+ <service
+ android:name=".customtabs.CustomTabsService"
+ android:exported="true"
+ tools:ignore="ExportedService">
+ <intent-filter>
+ <action android:name="android.support.customtabs.action.CustomTabsService" />
+ </intent-filter>
+ </service>
+
+ <service
+ android:name=".downloads.DownloadService"
+ android:exported="false"
+ android:foregroundServiceType="dataSync" />
+
+ <service android:name=".media.MediaSessionService"
+ android:foregroundServiceType="mediaPlayback"
+ android:exported="false" />
+
+ <service
+ android:name=".session.SessionNotificationService"
+ android:exported="false"
+ android:foregroundServiceType="specialUse">
+ <property
+ android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
+ android:value="This foreground service allows users to easily remove private tabs from the notification" />
+ </service>
+
+ <meta-data android:name="android.webkit.WebView.MetricsOptOut"
+ android:value="true" />
+
+ <receiver
+ android:name=".searchwidget.SearchWidgetProvider"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
+ </intent-filter>
+ <meta-data
+ android:name="android.appwidget.provider"
+ android:resource="@xml/search_widget_info" />
+ </receiver>
+
+ <!-- Removes the default Workmanager initialization so that we can use on-demand initializer. -->
+ <provider
+ android:name="androidx.startup.InitializationProvider"
+ android:authorities="${applicationId}.androidx-startup"
+ android:exported="false"
+ tools:node="merge" >
+ <meta-data
+ android:name="androidx.work.WorkManagerInitializer"
+ android:value="androidx.startup"
+ tools:node="remove" />
+ </provider>
+
+ </application>
+
+</manifest>
diff --git a/mobile/android/focus-android/app/src/main/assets/error_style.css b/mobile/android/focus-android/app/src/main/assets/error_style.css
new file mode 100644
index 0000000000..82823afb5e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/assets/error_style.css
@@ -0,0 +1,172 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/* Below styling is mirroring the Android Components styling from
+https://github.com/mozilla-mobile/firefox-android/blob/main/android-components/components/browser/errorpages/src/main/assets/error_style.css */
+html,
+body {
+ margin: 0;
+ padding: 0;
+ height: 100%;
+ --moz-vertical-spacing: 10px;
+ --moz-background-height: 32px;
+}
+
+body {
+ background-size: 64px var(--moz-background-height);
+ /* background-size: 64px 32px; */
+ background-repeat: repeat-x;
+
+ background-color: #363B40;
+ color: #FFFFFF;
+ padding: 0 20px;
+
+ font-weight: 300;
+ font-size: 13px;
+ -moz-text-size-adjust: none;
+ font-family: sans-serif;
+}
+
+ul {
+ /* Shove the list indicator so that its left aligned, but use outside so that text
+ * doesn't don't wrap the text around it */
+ padding: 0 1em;
+ margin: 0;
+ list-style: round outside none;
+}
+
+#errorShortDesc,
+li:not(:last-of-type) {
+ /* Margins between the li and buttons below it won't be collapsed. Remove the bottom margin here. */
+ margin: var(--moz-vertical-spacing) 0;
+}
+
+h1 {
+ margin: 0;
+ /* Since this has an underline, use padding for vertical spacing rather than margin */
+ padding: var(--moz-vertical-spacing) 0;
+ font-weight: 300;
+ border-bottom: 1px solid #e0e2e5;
+}
+
+h2 {
+ font-size: small;
+ padding: 0;
+ margin: var(--moz-vertical-spacing) 0;
+}
+
+p {
+ margin: var(--moz-vertical-spacing) 0;
+}
+
+button {
+ /* Force buttons to display: block here to try and enfoce collapsing margins */
+ display: block;
+ width: 100%;
+ border: none;
+ padding: 1rem;
+ font-family: sans-serif;
+ background-color: #00A4DC;
+ color: #FFFFFF;
+ font-weight: 300;
+ border-radius: 2px;
+ background-image: none;
+ margin: var(--moz-vertical-spacing) 0 0;
+}
+
+.buttonSecondary{
+ /* Force buttons to display: block here to try and enforce collapsing margins */
+ display: block;
+ width: 100%;
+ border: none;
+ padding: 1rem;
+ font-family: sans-serif;
+ background-color: rgba(249, 249, 250, 0.1);
+ color: #FFFFFF;
+ font-weight: 300;
+ border-radius: 2px;
+ background-image: none;
+ margin: var(--moz-vertical-spacing) 0 0;
+}
+
+#errorPageContainer {
+ /* If the page is greater than 550px center the content.
+ * This number should be kept in sync with the media query for tablets below */
+ max-width: 550px;
+ margin: 0 auto;
+ transform: translateY(var(--moz-background-height));
+ padding-bottom: var(--moz-vertical-spacing);
+
+ min-height: calc(100% - var(--moz-background-height) - var(--moz-vertical-spacing));
+ display: flex;
+ flex-direction: column;
+}
+
+/* On large screen devices (hopefully a 7+ inch tablet, we already center content (see #errorPageContainer above).
+ Apply tablet specific styles here */
+@media (min-width: 550px) {
+ button {
+ min-width: 160px;
+ width: auto;
+ }
+
+ /* If the tablet is tall as well, add some padding to make content feel a bit more centered */
+ @media (min-height: 550px) {
+ #errorPageContainer {
+ padding-top: 64px;
+ min-height: calc(100% - 64px);
+ }
+ }
+}
+
+.advancedPanelButtonContainer {
+ background-color: rgba(128, 128, 147, 0.1);
+ display: flex;
+ justify-content: center;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ padding-bottom: 0.5em;
+}
+
+#advancedPanelBackButtonContainer {
+ padding-bottom: 0;
+}
+
+#advancedPanelContainer {
+ width: 100%;
+ left: 0;
+}
+
+.advanced-panel {
+ display: none;
+ background-color: #202023;
+ border: 1px solid rgba(249, 249, 250, 0.2);
+ margin: 48px auto;
+ min-width: 13em;
+ max-width: 52em;
+}
+
+.button-container {
+ display: flex;
+ flex-flow: row;
+}
+
+#badCertTechnicalInfo {
+ margin: 0em 1em 1em;
+ overflow: auto;
+ white-space: pre-line;
+}
+
+#advancedButton {
+ display: none;
+}
+
+#badCertAdvancedPanel {
+ display: none;
+}
+
+/* Below styling is Focus specific */
+a {
+ color: white;
+}
diff --git a/mobile/android/focus-android/app/src/main/assets/style.css b/mobile/android/focus-android/app/src/main/assets/style.css
new file mode 100644
index 0000000000..7dd085df52
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/assets/style.css
@@ -0,0 +1,43 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+body, html {
+ background: #221F1F;
+ color: #FFFFFF;
+ font-family: sans-serif;
+ line-height: 24px;
+ font-size: 14px;
+}
+
+body{
+ padding-left: 24px;
+ padding-right: 24px;
+ margin-left: 0px;
+ margin-right: 0px;
+}
+
+a {
+ color: #0A9AF4;
+}
+
+/* Make only about page links ("learn more") white */
+.about a {
+ color: #FFFFFF;
+}
+
+p.subtitle {
+ text-align: center;
+ opacity: .7;
+ margin: 0;
+}
+
+img#wordmark {
+ /* We need to set the dp size here, because by default webview assumes the image is not
+ density specific (but since it's an android resource, we get a density specific version). */
+ width: 180px;
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ padding-top: 24px;
+}
diff --git a/mobile/android/focus-android/app/src/main/ic_launcher-playstore.png b/mobile/android/focus-android/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000000..7de2611aff
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/Components.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/Components.kt
new file mode 100644
index 0000000000..478a5a75fa
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/Components.kt
@@ -0,0 +1,321 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus
+
+import android.app.PendingIntent
+import android.content.Context
+import android.content.Intent
+import android.os.Build
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.platform.LocalContext
+import androidx.core.app.NotificationManagerCompat
+import mozilla.components.browser.engine.gecko.cookiebanners.GeckoCookieBannersStorage
+import mozilla.components.browser.icons.BrowserIcons
+import mozilla.components.browser.state.engine.EngineMiddleware
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.concept.engine.DefaultSettings
+import mozilla.components.concept.engine.Engine
+import mozilla.components.concept.fetch.Client
+import mozilla.components.feature.app.links.AppLinksInterceptor
+import mozilla.components.feature.app.links.AppLinksUseCases
+import mozilla.components.feature.contextmenu.ContextMenuUseCases
+import mozilla.components.feature.customtabs.store.CustomTabsServiceStore
+import mozilla.components.feature.downloads.DownloadMiddleware
+import mozilla.components.feature.downloads.DownloadsUseCases
+import mozilla.components.feature.media.MediaSessionFeature
+import mozilla.components.feature.media.middleware.RecordingDevicesMiddleware
+import mozilla.components.feature.prompts.PromptMiddleware
+import mozilla.components.feature.prompts.file.FileUploadsDirCleaner
+import mozilla.components.feature.prompts.file.FileUploadsDirCleanerMiddleware
+import mozilla.components.feature.search.SearchUseCases
+import mozilla.components.feature.search.middleware.AdsTelemetryMiddleware
+import mozilla.components.feature.search.middleware.SearchMiddleware
+import mozilla.components.feature.search.region.RegionMiddleware
+import mozilla.components.feature.search.telemetry.ads.AdsTelemetry
+import mozilla.components.feature.search.telemetry.incontent.InContentTelemetry
+import mozilla.components.feature.session.SessionUseCases
+import mozilla.components.feature.session.SettingsUseCases
+import mozilla.components.feature.session.TrackingProtectionUseCases
+import mozilla.components.feature.tabs.CustomTabsUseCases
+import mozilla.components.feature.tabs.TabsUseCases
+import mozilla.components.feature.top.sites.PinnedSiteStorage
+import mozilla.components.feature.top.sites.TopSitesUseCases
+import mozilla.components.feature.webcompat.WebCompatFeature
+import mozilla.components.feature.webcompat.reporter.WebCompatReporterFeature
+import mozilla.components.lib.crash.CrashReporter
+import mozilla.components.lib.crash.sentry.SentryService
+import mozilla.components.lib.crash.service.CrashReporterService
+import mozilla.components.lib.crash.service.GleanCrashReporterService
+import mozilla.components.lib.crash.service.MozillaSocorroService
+import mozilla.components.lib.publicsuffixlist.PublicSuffixList
+import mozilla.components.service.location.LocationService
+import mozilla.components.service.location.MozillaLocationService
+import mozilla.components.service.nimbus.NimbusApi
+import mozilla.components.support.base.android.NotificationsDelegate
+import mozilla.components.support.locale.LocaleManager
+import org.mozilla.focus.activity.MainActivity
+import org.mozilla.focus.browser.BlockedTrackersMiddleware
+import org.mozilla.focus.cfr.CfrMiddleware
+import org.mozilla.focus.components.EngineProvider
+import org.mozilla.focus.downloads.DownloadService
+import org.mozilla.focus.engine.AppContentInterceptor
+import org.mozilla.focus.engine.ClientWrapper
+import org.mozilla.focus.engine.SanityCheckMiddleware
+import org.mozilla.focus.experiments.createNimbus
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.media.MediaSessionService
+import org.mozilla.focus.search.SearchFilterMiddleware
+import org.mozilla.focus.search.SearchMigration
+import org.mozilla.focus.state.AppState
+import org.mozilla.focus.state.AppStore
+import org.mozilla.focus.state.Screen
+import org.mozilla.focus.telemetry.GleanMetricsService
+import org.mozilla.focus.telemetry.TelemetryMiddleware
+import org.mozilla.focus.telemetry.startuptelemetry.AppStartReasonProvider
+import org.mozilla.focus.telemetry.startuptelemetry.StartupActivityLog
+import org.mozilla.focus.telemetry.startuptelemetry.StartupStateProvider
+import org.mozilla.focus.topsites.DefaultTopSitesStorage
+import org.mozilla.focus.utils.Settings
+import java.util.Locale
+
+/**
+ * Helper object for lazily initializing components.
+ */
+class Components(
+ context: Context,
+ private val engineOverride: Engine? = null,
+ private val clientOverride: Client? = null,
+) {
+ val appStore: AppStore by lazy {
+ AppStore(
+ AppState(
+ screen = if (context.settings.isFirstRun) Screen.FirstRun else Screen.Home,
+ topSites = emptyList(),
+ ),
+ )
+ }
+
+ private val notificationManagerCompat = NotificationManagerCompat.from(context)
+
+ val notificationsDelegate: NotificationsDelegate by lazy {
+ NotificationsDelegate(
+ notificationManagerCompat,
+ )
+ }
+
+ val appStartReasonProvider by lazy { AppStartReasonProvider() }
+
+ val startupActivityLog by lazy { StartupActivityLog() }
+
+ val startupStateProvider by lazy { StartupStateProvider(startupActivityLog, appStartReasonProvider) }
+
+ val settings by lazy { Settings(context) }
+
+ val fileUploadsDirCleaner: FileUploadsDirCleaner by lazy {
+ FileUploadsDirCleaner { context.cacheDir }
+ }
+
+ val engineDefaultSettings by lazy {
+ DefaultSettings(
+ requestInterceptor = AppContentInterceptor(context),
+ trackingProtectionPolicy = settings.createTrackingProtectionPolicy(),
+ javascriptEnabled = !settings.shouldBlockJavaScript(),
+ remoteDebuggingEnabled = settings.shouldEnableRemoteDebugging(),
+ webFontsEnabled = !settings.shouldBlockWebFonts(),
+ httpsOnlyMode = settings.getHttpsOnlyMode(),
+ preferredColorScheme = settings.getPreferredColorScheme(),
+ cookieBannerHandlingModePrivateBrowsing = settings.getCurrentCookieBannerOptionFromSharePref().mode,
+ )
+ }
+
+ val engine: Engine by lazy {
+ engineOverride ?: EngineProvider.createEngine(context, engineDefaultSettings).apply {
+ this@Components.settings.setupSafeBrowsing(this)
+ WebCompatFeature.install(this)
+ WebCompatReporterFeature.install(this, "focus-geckoview")
+ }
+ }
+
+ val client: ClientWrapper by lazy {
+ ClientWrapper(clientOverride ?: EngineProvider.createClient(context))
+ }
+
+ val trackingProtectionUseCases by lazy { TrackingProtectionUseCases(store, engine) }
+
+ val settingsUseCases by lazy { SettingsUseCases(engine, store) }
+
+ @Suppress("DEPRECATION")
+ private val locationService: LocationService by lazy {
+ if (BuildConfig.MLS_TOKEN.isEmpty()) {
+ LocationService.default()
+ } else {
+ MozillaLocationService(context, client.unwrap(), BuildConfig.MLS_TOKEN)
+ }
+ }
+
+ val store by lazy {
+ BrowserStore(
+ middleware = listOf(
+ TelemetryMiddleware(),
+ DownloadMiddleware(context, DownloadService::class.java),
+ SanityCheckMiddleware(),
+ // We are currently using the default location service. We should consider using
+ // an actual implementation:
+ // https://github.com/mozilla-mobile/focus-android/issues/4781
+ RegionMiddleware(context, locationService),
+ SearchMiddleware(context, migration = SearchMigration(context)),
+ SearchFilterMiddleware(),
+ PromptMiddleware(),
+ AdsTelemetryMiddleware(adsTelemetry),
+ BlockedTrackersMiddleware(context),
+ RecordingDevicesMiddleware(context, notificationsDelegate),
+ CfrMiddleware(context),
+ FileUploadsDirCleanerMiddleware(fileUploadsDirCleaner),
+ ) + EngineMiddleware.create(
+ engine,
+ // We are disabling automatic suspending of engine sessions under memory pressure.
+ // Instead we solely rely on GeckoView and the Android system to reclaim memory
+ // when needed. For details, see:
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1752594
+ // https://github.com/mozilla-mobile/fenix/issues/12731
+ // https://github.com/mozilla-mobile/android-components/issues/11300
+ // https://github.com/mozilla-mobile/android-components/issues/11653
+ trimMemoryAutomatically = false,
+ ),
+ ).apply {
+ MediaSessionFeature(context, MediaSessionService::class.java, this).start()
+ }
+ }
+
+ /**
+ * The [CustomTabsServiceStore] holds global custom tabs related data.
+ */
+ val customTabsStore by lazy { CustomTabsServiceStore() }
+
+ val sessionUseCases: SessionUseCases by lazy { SessionUseCases(store) }
+
+ val tabsUseCases: TabsUseCases by lazy { TabsUseCases(store) }
+
+ val cookieBannerStorage: GeckoCookieBannersStorage by lazy { EngineProvider.createCookieBannerStorage(context) }
+
+ val publicSuffixList by lazy { PublicSuffixList(context) }
+
+ val searchUseCases: SearchUseCases by lazy {
+ SearchUseCases(store, tabsUseCases, sessionUseCases)
+ }
+
+ val contextMenuUseCases: ContextMenuUseCases by lazy { ContextMenuUseCases(store) }
+
+ val downloadsUseCases: DownloadsUseCases by lazy { DownloadsUseCases(store) }
+
+ val appLinksUseCases: AppLinksUseCases by lazy { AppLinksUseCases(context.applicationContext) }
+
+ val customTabsUseCases: CustomTabsUseCases by lazy { CustomTabsUseCases(store, sessionUseCases.loadUrl) }
+
+ val crashReporter: CrashReporter by lazy { createCrashReporter(context, notificationsDelegate) }
+
+ val metrics: GleanMetricsService by lazy { GleanMetricsService(context) }
+
+ val experiments: NimbusApi by lazy {
+ createNimbus(context, BuildConfig.NIMBUS_ENDPOINT)
+ }
+
+ val adsTelemetry: AdsTelemetry by lazy { AdsTelemetry() }
+
+ val searchTelemetry: InContentTelemetry by lazy { InContentTelemetry() }
+
+ val icons by lazy { BrowserIcons(context, client) }
+
+ val topSitesStorage by lazy { DefaultTopSitesStorage(PinnedSiteStorage(context)) }
+
+ val topSitesUseCases: TopSitesUseCases by lazy { TopSitesUseCases(topSitesStorage) }
+
+ val appLinksInterceptor by lazy {
+ AppLinksInterceptor(
+ context,
+ interceptLinkClicks = true,
+ launchInApp = {
+ context.settings.openLinksInExternalApp
+ },
+ )
+ }
+}
+
+private fun createCrashReporter(context: Context, notificationsDelegate: NotificationsDelegate): CrashReporter {
+ val services = mutableListOf<CrashReporterService>()
+
+ if (BuildConfig.SENTRY_TOKEN.isNotEmpty()) {
+ val sentryService = SentryService(
+ context,
+ BuildConfig.SENTRY_TOKEN,
+ tags = mapOf(
+ "build_flavor" to BuildConfig.FLAVOR,
+ "build_type" to BuildConfig.BUILD_TYPE,
+ "locale_lang_tag" to getLocaleTag(context),
+ ),
+ environment = BuildConfig.BUILD_TYPE,
+ sendEventForNativeCrashes = false, // Do not send native crashes to Sentry
+ )
+
+ services.add(sentryService)
+ }
+
+ val socorroService = MozillaSocorroService(
+ context,
+ appName = "Focus",
+ version = org.mozilla.geckoview.BuildConfig.MOZ_APP_VERSION,
+ buildId = org.mozilla.geckoview.BuildConfig.MOZ_APP_BUILDID,
+ vendor = org.mozilla.geckoview.BuildConfig.MOZ_APP_VENDOR,
+ releaseChannel = org.mozilla.geckoview.BuildConfig.MOZ_UPDATE_CHANNEL,
+ )
+ services.add(socorroService)
+
+ val intent = Intent(context, MainActivity::class.java).apply {
+ flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP
+ }
+
+ val crashReportingIntentFlags = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+ PendingIntent.FLAG_MUTABLE
+ } else {
+ 0 // No flags. Default behavior.
+ }
+
+ val pendingIntent = PendingIntent.getActivity(
+ context,
+ 0,
+ intent,
+ crashReportingIntentFlags,
+ )
+
+ return CrashReporter(
+ context = context,
+ services = services,
+ telemetryServices = listOf(GleanCrashReporterService(context)),
+ promptConfiguration = CrashReporter.PromptConfiguration(
+ appName = context.resources.getString(R.string.app_name),
+ ),
+ shouldPrompt = CrashReporter.Prompt.ALWAYS,
+ enabled = true,
+ nonFatalCrashIntent = pendingIntent,
+ notificationsDelegate = notificationsDelegate,
+ )
+}
+
+private fun getLocaleTag(context: Context): String {
+ val currentLocale = LocaleManager.getCurrentLocale(context)
+ return if (currentLocale != null) {
+ currentLocale.toLanguageTag()
+ } else {
+ Locale.getDefault().toLanguageTag()
+ }
+}
+
+/**
+ * Returns the [Components] object from within a [Composable].
+ */
+val components: Components
+ @Composable
+ get() = LocalContext.current.components
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/FocusApplication.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/FocusApplication.kt
new file mode 100644
index 0000000000..0aa99630df
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/FocusApplication.kt
@@ -0,0 +1,238 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus
+
+import android.content.Context
+import android.os.Build
+import android.os.StrictMode
+import android.util.Log.INFO
+import androidx.appcompat.app.AppCompatDelegate
+import androidx.lifecycle.ProcessLifecycleOwner
+import androidx.preference.PreferenceManager
+import androidx.work.Configuration.Builder
+import androidx.work.Configuration.Provider
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.DelicateCoroutinesApi
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.launch
+import mozilla.components.support.base.facts.register
+import mozilla.components.support.base.log.Log
+import mozilla.components.support.base.log.sink.AndroidLogSink
+import mozilla.components.support.ktx.android.content.isMainProcess
+import mozilla.components.support.locale.LocaleAwareApplication
+import mozilla.components.support.rusthttp.RustHttpConfig
+import mozilla.components.support.rustlog.RustLog
+import mozilla.components.support.webextensions.WebExtensionSupport
+import org.mozilla.focus.biometrics.LockObserver
+import org.mozilla.focus.experiments.finishNimbusInitialization
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.navigation.StoreLink
+import org.mozilla.focus.nimbus.FocusNimbus
+import org.mozilla.focus.session.VisibilityLifeCycleCallback
+import org.mozilla.focus.telemetry.FactsProcessor
+import org.mozilla.focus.telemetry.ProfilerMarkerFactProcessor
+import org.mozilla.focus.utils.AdjustHelper
+import org.mozilla.focus.utils.AppConstants
+import kotlin.coroutines.CoroutineContext
+
+@Suppress("TooManyFunctions")
+open class FocusApplication : LocaleAwareApplication(), Provider, CoroutineScope {
+ private var job = Job()
+ override val coroutineContext: CoroutineContext
+ get() = job + Dispatchers.Main
+
+ open val components: Components by lazy { Components(this) }
+
+ var visibilityLifeCycleCallback: VisibilityLifeCycleCallback? = null
+ private set
+
+ private val storeLink by lazy { StoreLink(components.appStore, components.store) }
+ private val lockObserver by lazy { LockObserver(this, components.store, components.appStore) }
+
+ @OptIn(DelicateCoroutinesApi::class)
+ override fun onCreate() {
+ super.onCreate()
+
+ Log.addSink(AndroidLogSink("Focus"))
+ components.crashReporter.install(this)
+
+ if (isMainProcess()) {
+ initializeNimbus()
+
+ PreferenceManager.setDefaultValues(this, R.xml.settings, false)
+
+ setTheme(this)
+ components.engine.warmUp()
+
+ components.metrics.initialize(this)
+ FactsProcessor.initialize()
+ finishSetupMegazord()
+
+ ProfilerMarkerFactProcessor.create { components.engine.profiler }.register()
+
+ enableStrictMode()
+
+ AdjustHelper.setupAdjustIfNeeded(this@FocusApplication)
+
+ visibilityLifeCycleCallback = VisibilityLifeCycleCallback(this@FocusApplication)
+ registerActivityLifecycleCallbacks(visibilityLifeCycleCallback)
+ registerComponentCallbacks(visibilityLifeCycleCallback)
+
+ storeLink.start()
+
+ initializeWebExtensionSupport()
+
+ setupLeakCanary()
+
+ components.appStartReasonProvider.registerInAppOnCreate(this)
+ components.startupActivityLog.registerInAppOnCreate(this)
+
+ ProcessLifecycleOwner.get().lifecycle.addObserver(lockObserver)
+ GlobalScope.launch(Dispatchers.IO) {
+ // Remove stale temporary uploaded files.
+ components.fileUploadsDirCleaner.cleanUploadsDirectory()
+ }
+ }
+ }
+
+ override fun onConfigurationChanged(config: android.content.res.Configuration) {
+ applicationContext.resources.configuration.uiMode = config.uiMode
+ super.onConfigurationChanged(config)
+ }
+
+ protected open fun setupLeakCanary() {
+ // no-op, LeakCanary is disabled by default
+ }
+
+ open fun updateLeakCanaryState(isEnabled: Boolean) {
+ // no-op, LeakCanary is disabled by default
+ }
+
+ protected open fun initializeNimbus() {
+ beginSetupMegazord()
+
+ // This lazily constructs the Nimbus object…
+ val nimbus = components.experiments
+ // … which we then can populate the feature configuration.
+ FocusNimbus.initialize { nimbus }
+ }
+
+ /**
+ * Initiate Megazord sequence! Megazord Battle Mode!
+ *
+ * The application-services combined libraries are known as the "megazord". We use the default `full`
+ * megazord - it contains everything that fenix needs, and (currently) nothing more.
+ *
+ * Documentation on what megazords are, and why they're needed:
+ * - https://github.com/mozilla/application-services/blob/master/docs/design/megazords.md
+ * - https://mozilla.github.io/application-services/docs/applications/consuming-megazord-libraries.html
+ *
+ * This is the initialization of the megazord without setting up networking, i.e. needing the
+ * engine for networking. This should do the minimum work necessary as it is done on the main
+ * thread, early in the app startup sequence.
+ */
+ private fun beginSetupMegazord() {
+ // Note: Megazord.init() must be called as soon as possible ...
+ // Megazord.init()
+
+ // ... but RustHttpConfig.setClient() and RustLog.enable() can be called later.
+
+ RustLog.enable()
+ }
+
+ @OptIn(DelicateCoroutinesApi::class) // GlobalScope usage
+ private fun finishSetupMegazord() {
+ GlobalScope.launch(Dispatchers.IO) {
+ // We need to use an unwrapped client because native components do not support private
+ // requests.
+ @Suppress("Deprecation")
+ RustHttpConfig.setClient(lazy { components.client.unwrap() })
+
+ // Now viaduct (the RustHttp client) is initialized we can ask Nimbus to fetch
+ // experiments recipes from the server.
+ finishNimbusInitialization(components.experiments)
+ }
+ }
+
+ private fun setTheme(context: Context) {
+ val settings = context.settings
+ when {
+ settings.lightThemeSelected -> {
+ AppCompatDelegate.setDefaultNightMode(
+ AppCompatDelegate.MODE_NIGHT_NO,
+ )
+ }
+
+ settings.darkThemeSelected -> {
+ AppCompatDelegate.setDefaultNightMode(
+ AppCompatDelegate.MODE_NIGHT_YES,
+ )
+ }
+
+ settings.useDefaultThemeSelected -> {
+ setDefaultTheme()
+ }
+
+ // No theme setting selected, select the default value, follow device theme.
+ else -> {
+ setDefaultTheme()
+ settings.useDefaultThemeSelected = true
+ }
+ }
+ }
+
+ private fun setDefaultTheme() {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+ AppCompatDelegate.setDefaultNightMode(
+ AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM,
+ )
+ } else {
+ AppCompatDelegate.setDefaultNightMode(
+ AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY,
+ )
+ }
+ }
+
+ private fun enableStrictMode() {
+ // Android/WebView sometimes commit strict mode violations, see e.g.
+ // https://github.com/mozilla-mobile/focus-android/issues/660
+ if (AppConstants.isReleaseBuild || AppConstants.isBetaBuild) {
+ return
+ }
+
+ val threadPolicyBuilder = StrictMode.ThreadPolicy.Builder().detectAll()
+ val vmPolicyBuilder = StrictMode.VmPolicy.Builder()
+ .detectActivityLeaks()
+ .detectFileUriExposure()
+ .detectLeakedClosableObjects()
+ .detectLeakedRegistrationObjects()
+ .detectLeakedSqlLiteObjects()
+
+ threadPolicyBuilder.penaltyLog()
+ vmPolicyBuilder.penaltyLog()
+
+ StrictMode.setThreadPolicy(threadPolicyBuilder.build())
+ StrictMode.setVmPolicy(vmPolicyBuilder.build())
+ }
+
+ private fun initializeWebExtensionSupport() {
+ WebExtensionSupport.initialize(
+ components.engine,
+ components.store,
+ onNewTabOverride = { _, engineSession, url ->
+ components.tabsUseCases.addTab(
+ url = url,
+ selectTab = true,
+ engineSession = engineSession,
+ private = true,
+ )
+ },
+ )
+ }
+
+ override val workManagerConfiguration = Builder().setMinimumLoggingLevel(INFO).build()
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/CrashListActivity.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/CrashListActivity.kt
new file mode 100644
index 0000000000..136e12cabe
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/CrashListActivity.kt
@@ -0,0 +1,24 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity
+
+import android.content.Intent
+import androidx.core.net.toUri
+import mozilla.components.lib.crash.CrashReporter
+import mozilla.components.lib.crash.ui.AbstractCrashListActivity
+import org.mozilla.focus.ext.components
+
+class CrashListActivity : AbstractCrashListActivity() {
+ override val crashReporter: CrashReporter by lazy { components.crashReporter }
+
+ override fun onCrashServiceSelected(url: String) {
+ val intent = Intent(Intent.ACTION_VIEW).apply {
+ data = url.toUri()
+ `package` = packageName
+ }
+ startActivity(intent)
+ finish()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/CustomTabActivity.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/CustomTabActivity.kt
new file mode 100644
index 0000000000..df2ae98de2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/CustomTabActivity.kt
@@ -0,0 +1,95 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity
+
+import android.content.Context
+import android.os.Bundle
+import android.util.AttributeSet
+import android.view.View
+import mozilla.components.browser.state.selector.findCustomTab
+import mozilla.components.concept.engine.EngineView
+import mozilla.components.support.locale.LocaleAwareAppCompatActivity
+import mozilla.components.support.utils.SafeIntent
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.updateSecureWindowFlags
+import org.mozilla.focus.fragment.BrowserFragment
+import org.mozilla.focus.telemetry.startuptelemetry.StartupPathProvider
+import org.mozilla.focus.telemetry.startuptelemetry.StartupTypeTelemetry
+
+/**
+ * The main entry point for "custom tabs" opened by third-party apps.
+ */
+class CustomTabActivity : LocaleAwareAppCompatActivity() {
+ private lateinit var customTabId: String
+ private lateinit var browserFragment: BrowserFragment
+
+ private val startupPathProvider = StartupPathProvider()
+ private lateinit var startupTypeTelemetry: StartupTypeTelemetry
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ updateSecureWindowFlags()
+ super.onCreate(savedInstanceState)
+
+ val intent = SafeIntent(intent)
+ val customTabId = intent.getStringExtra(CUSTOM_TAB_ID)
+
+ // The session for this ID, no longer exists. This usually happens because we were gc-d
+ // and since we do not save custom tab sessions, the activity is re-created and we no longer
+ // have a session with us to restore. It's safer to finish the activity instead.
+ if (customTabId == null || components.store.state.findCustomTab(customTabId) == null) {
+ finish()
+ return
+ }
+
+ this.customTabId = customTabId
+
+ @Suppress("DEPRECATION") // https://github.com/mozilla-mobile/focus-android/issues/5016
+ window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+
+ setContentView(R.layout.activity_customtab)
+
+ if (savedInstanceState == null || !this::browserFragment.isInitialized) {
+ browserFragment = BrowserFragment.createForTab(customTabId)
+ supportFragmentManager.beginTransaction()
+ .add(R.id.container, browserFragment)
+ .commit()
+ }
+
+ startupPathProvider.attachOnActivityOnCreate(lifecycle, intent.unsafe)
+ startupTypeTelemetry = StartupTypeTelemetry(components.startupStateProvider, startupPathProvider).apply {
+ attachOnMainActivityOnCreate(lifecycle)
+ }
+ }
+
+ override fun onPause() {
+ super.onPause()
+
+ if (isFinishing) {
+ components.customTabsUseCases.remove(customTabId)
+ }
+ }
+
+ override fun onBackPressed() {
+ if (browserFragment.sessionFeature.onBackPressed()) {
+ return
+ } else {
+ onBackPressedDispatcher.onBackPressed()
+ }
+ }
+
+ override fun onCreateView(parent: View?, name: String, context: Context, attrs: AttributeSet): View? {
+ return if (name == EngineView::class.java.name) {
+ val engineView = components.engine.createView(context, attrs)
+ engineView.asView()
+ } else {
+ super.onCreateView(parent, name, context, attrs)
+ }
+ }
+
+ companion object {
+ const val CUSTOM_TAB_ID = "custom_tab_id"
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/EraseAndOpenShortcutActivity.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/EraseAndOpenShortcutActivity.kt
new file mode 100644
index 0000000000..47a914553a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/EraseAndOpenShortcutActivity.kt
@@ -0,0 +1,31 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity
+
+import android.app.Activity
+import android.content.Intent
+import android.os.Bundle
+import mozilla.components.browser.state.selector.privateTabs
+import org.mozilla.focus.GleanMetrics.AppShortcuts
+import org.mozilla.focus.ext.components
+
+class EraseAndOpenShortcutActivity : Activity() {
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ components.tabsUseCases.removeAllTabs()
+
+ val tabCount = components.store.state.privateTabs.size
+ AppShortcuts.eraseOpenButtonTapped.record(AppShortcuts.EraseOpenButtonTappedExtra(tabCount))
+
+ val intent = Intent(this, MainActivity::class.java)
+ intent.action = MainActivity.ACTION_OPEN
+ intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP
+ startActivity(intent)
+
+ finish()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/EraseShortcutActivity.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/EraseShortcutActivity.kt
new file mode 100644
index 0000000000..4f7f160911
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/EraseShortcutActivity.kt
@@ -0,0 +1,23 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.activity
+
+import android.app.Activity
+import android.os.Bundle
+import mozilla.components.browser.state.selector.privateTabs
+import org.mozilla.focus.GleanMetrics.AppShortcuts
+import org.mozilla.focus.ext.components
+
+class EraseShortcutActivity : Activity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ components.tabsUseCases.removeAllTabs()
+
+ val tabCount = components.store.state.privateTabs.size
+ AppShortcuts.justEraseButtonTapped.record(AppShortcuts.JustEraseButtonTappedExtra(tabCount))
+
+ finishAndRemoveTask()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/InstallFirefoxActivity.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/InstallFirefoxActivity.kt
new file mode 100644
index 0000000000..5e85af2670
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/InstallFirefoxActivity.kt
@@ -0,0 +1,93 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity
+
+import android.app.Activity
+import android.content.Context
+import android.content.Intent
+import android.content.pm.ActivityInfo
+import android.os.Bundle
+import android.webkit.WebView
+import androidx.core.net.toUri
+import mozilla.components.service.glean.private.NoExtras
+import mozilla.components.support.utils.Browsers
+import mozilla.components.support.utils.ext.resolveActivityCompat
+import org.mozilla.focus.GleanMetrics.OpenWith
+import org.mozilla.focus.utils.AppConstants
+
+/**
+ * Helper activity that will open the Google Play store by following a redirect URL.
+ */
+class InstallFirefoxActivity : Activity() {
+
+ private var webView: WebView? = null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ webView = WebView(this)
+
+ setContentView(webView)
+
+ webView!!.loadUrl(REDIRECT_URL)
+ }
+
+ override fun onPause() {
+ super.onPause()
+
+ if (webView != null) {
+ webView!!.onPause()
+ }
+
+ finish()
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+
+ if (webView != null) {
+ webView!!.destroy()
+ }
+ }
+
+ companion object {
+ private const val REDIRECT_URL = "https://app.adjust.com/gs1ao4"
+
+ fun resolveAppStore(context: Context): ActivityInfo? {
+ val resolveInfo = context.packageManager.resolveActivityCompat(createStoreIntent(), 0)
+
+ if (resolveInfo?.activityInfo == null) {
+ return null
+ }
+
+ return if (!resolveInfo.activityInfo.exported) {
+ // We are not allowed to launch this activity.
+ null
+ } else {
+ resolveInfo.activityInfo
+ }
+ }
+
+ private fun createStoreIntent(): Intent {
+ return Intent(
+ Intent.ACTION_VIEW,
+ ("market://details?id=" + Browsers.KnownBrowser.FIREFOX.packageName).toUri(),
+ )
+ }
+
+ fun open(context: Context) {
+ if (AppConstants.isKlarBuild) {
+ // Redirect to Google Play directly
+ context.startActivity(createStoreIntent())
+ } else {
+ // Start this activity to load the redirect URL in a WebView.
+ val intent = Intent(context, InstallFirefoxActivity::class.java)
+ context.startActivity(intent)
+ }
+
+ OpenWith.installFirefox.record(NoExtras())
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/IntentReceiverActivity.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/IntentReceiverActivity.kt
new file mode 100644
index 0000000000..027ade16bc
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/IntentReceiverActivity.kt
@@ -0,0 +1,72 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity
+
+import android.app.Activity
+import android.content.Intent
+import android.os.Bundle
+import mozilla.components.feature.intent.ext.sanitize
+import mozilla.components.feature.search.widget.BaseVoiceSearchActivity
+import mozilla.components.support.utils.toSafeIntent
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.session.IntentProcessor
+import org.mozilla.focus.utils.SupportUtils
+
+/**
+ * This activity receives VIEW intents and either forwards them to MainActivity or CustomTabActivity.
+ */
+class IntentReceiverActivity : Activity() {
+ private val intentProcessor by lazy {
+ IntentProcessor(this, components.tabsUseCases, components.customTabsUseCases)
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ val intent = intent.sanitize().toSafeIntent()
+
+ if (intent.dataString.equals(SupportUtils.OPEN_WITH_DEFAULT_BROWSER_URL)) {
+ dispatchNormalIntent()
+ return
+ }
+
+ val result = intentProcessor.handleIntent(this, intent, savedInstanceState)
+ if (result is IntentProcessor.Result.CustomTab) {
+ dispatchCustomTabsIntent(result.id)
+ } else {
+ dispatchNormalIntent()
+ }
+
+ finish()
+ }
+
+ private fun dispatchCustomTabsIntent(tabId: String) {
+ val intent = Intent(intent)
+
+ intent.setClassName(applicationContext, CustomTabActivity::class.java.name)
+
+ // We are adding a generated custom tab ID to the intent here. CustomTabActivity will
+ // use this ID to later decide what session to display once it is created.
+ intent.putExtra(CustomTabActivity.CUSTOM_TAB_ID, tabId)
+
+ startActivity(intent)
+ }
+
+ private fun dispatchNormalIntent() {
+ val intent = Intent(intent)
+ intent.setClassName(applicationContext, MainActivity::class.java.name)
+ intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP
+ intent.putExtra(SEARCH_WIDGET_EXTRA, intent.getBooleanExtra(SEARCH_WIDGET_EXTRA, false))
+ intent.putExtra(
+ BaseVoiceSearchActivity.SPEECH_PROCESSING,
+ intent.getStringExtra(BaseVoiceSearchActivity.SPEECH_PROCESSING),
+ )
+ startActivity(intent)
+ }
+
+ companion object {
+ const val SEARCH_WIDGET_EXTRA = "search_widget_extra"
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/MainActivity.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/MainActivity.kt
new file mode 100644
index 0000000000..f81e0fb926
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/MainActivity.kt
@@ -0,0 +1,473 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity
+
+import android.Manifest.permission.POST_NOTIFICATIONS
+import android.content.Context
+import android.content.Intent
+import android.content.res.Configuration
+import android.graphics.Color
+import android.os.Build
+import android.os.Bundle
+import android.util.AttributeSet
+import android.view.MenuItem
+import android.view.View
+import android.view.ViewTreeObserver
+import androidx.activity.result.contract.ActivityResultContracts
+import androidx.appcompat.app.ActionBar
+import androidx.appcompat.widget.Toolbar
+import androidx.core.content.ContextCompat
+import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
+import androidx.core.view.isVisible
+import androidx.preference.PreferenceManager
+import mozilla.components.browser.state.selector.privateTabs
+import mozilla.components.concept.engine.EngineView
+import mozilla.components.feature.search.widget.BaseVoiceSearchActivity
+import mozilla.components.lib.auth.canUseBiometricFeature
+import mozilla.components.lib.crash.Crash
+import mozilla.components.service.glean.private.NoExtras
+import mozilla.components.support.base.feature.UserInteractionHandler
+import mozilla.components.support.ktx.android.content.getColorFromAttr
+import mozilla.components.support.ktx.android.view.createWindowInsetsController
+import mozilla.components.support.locale.LocaleAwareAppCompatActivity
+import mozilla.components.support.utils.SafeIntent
+import mozilla.components.support.utils.StatusBarUtils
+import org.mozilla.experiments.nimbus.initializeTooling
+import org.mozilla.focus.GleanMetrics.AppOpened
+import org.mozilla.focus.GleanMetrics.Notifications
+import org.mozilla.focus.R
+import org.mozilla.focus.appreview.AppReviewUtils
+import org.mozilla.focus.databinding.ActivityMainBinding
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.setNavigationIcon
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.ext.updateSecureWindowFlags
+import org.mozilla.focus.fragment.BrowserFragment
+import org.mozilla.focus.fragment.UrlInputFragment
+import org.mozilla.focus.navigation.MainActivityNavigation
+import org.mozilla.focus.navigation.Navigator
+import org.mozilla.focus.searchwidget.ExternalIntentNavigation
+import org.mozilla.focus.session.IntentProcessor
+import org.mozilla.focus.session.PrivateNotificationFeature
+import org.mozilla.focus.shortcut.HomeScreen
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+import org.mozilla.focus.telemetry.startuptelemetry.StartupPathProvider
+import org.mozilla.focus.telemetry.startuptelemetry.StartupTypeTelemetry
+import org.mozilla.focus.utils.SupportUtils
+
+private const val REQUEST_TIME_OUT = 2000L
+
+@Suppress("TooManyFunctions", "LargeClass")
+open class MainActivity : LocaleAwareAppCompatActivity() {
+ private var isToolbarInflated = false
+ private val intentProcessor by lazy {
+ IntentProcessor(this, components.tabsUseCases, components.customTabsUseCases)
+ }
+
+ private val navigator by lazy { Navigator(components.appStore, MainActivityNavigation(this)) }
+ private val tabCount: Int
+ get() = components.store.state.privateTabs.size
+
+ private val startupPathProvider = StartupPathProvider()
+ private lateinit var startupTypeTelemetry: StartupTypeTelemetry
+ private var _binding: ActivityMainBinding? = null
+ private val binding get() = _binding!!
+ private lateinit var privateNotificationFeature: PrivateNotificationFeature
+ private val notificationPermission =
+ registerForActivityResult(ActivityResultContracts.RequestPermission()) { granted ->
+ when {
+ granted -> {
+ privateNotificationFeature.start()
+ }
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ components.experiments.initializeTooling(applicationContext, intent)
+ installSplashScreen()
+
+ updateSecureWindowFlags()
+
+ super.onCreate(savedInstanceState)
+ _binding = ActivityMainBinding.inflate(layoutInflater)
+ // Checks if Activity is currently in PiP mode if launched from external intents, then exits it
+ checkAndExitPiP()
+
+ if (!isTaskRoot) {
+ if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN == intent.action) {
+ finish()
+ return
+ }
+ }
+
+ @Suppress("DEPRECATION") // https://github.com/mozilla-mobile/focus-android/issues/5016
+ window.decorView.systemUiVisibility =
+ View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+
+ window.statusBarColor = ContextCompat.getColor(this, android.R.color.transparent)
+ when (resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK) {
+ Configuration.UI_MODE_NIGHT_UNDEFINED, // We assume light here per Android doc's recommendation
+ Configuration.UI_MODE_NIGHT_NO,
+ -> {
+ updateLightSystemBars()
+ }
+ Configuration.UI_MODE_NIGHT_YES -> {
+ clearLightSystemBars()
+ }
+ }
+ setContentView(binding.root)
+
+ startupPathProvider.attachOnActivityOnCreate(lifecycle, intent)
+ startupTypeTelemetry = StartupTypeTelemetry(components.startupStateProvider, startupPathProvider).apply {
+ attachOnMainActivityOnCreate(lifecycle)
+ }
+
+ val safeIntent = SafeIntent(intent)
+
+ lifecycle.addObserver(navigator)
+
+ if (savedInstanceState == null) {
+ handleAppNavigation(safeIntent)
+ }
+
+ if (savedInstanceState == null && intent.hasExtra(HomeScreen.ADD_TO_HOMESCREEN_TAG)) {
+ intentProcessor.handleNewIntent(this, safeIntent)
+ }
+
+ if (safeIntent.isLauncherIntent) {
+ AppOpened.fromIcons.record(AppOpened.FromIconsExtra(AppOpenType.LAUNCH.type))
+ }
+
+ val launchCount = settings.getAppLaunchCount()
+ PreferenceManager.getDefaultSharedPreferences(this)
+ .edit()
+ .putInt(getString(R.string.app_launch_count), launchCount + 1)
+ .apply()
+
+ AppReviewUtils.showAppReview(this)
+
+ privateNotificationFeature = PrivateNotificationFeature(
+ context = applicationContext,
+ browserStore = components.store,
+ permissionRequestHandler = { requestNotificationPermission() },
+ ).also {
+ it.start()
+ }
+
+ components.notificationsDelegate.bindToActivity(this)
+ }
+
+ private fun requestNotificationPermission() {
+ privateNotificationFeature.stop()
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ notificationPermission.launch(POST_NOTIFICATIONS)
+ }
+ }
+
+ private fun setSplashScreenPreDrawListener(safeIntent: SafeIntent) {
+ val endTime = System.currentTimeMillis() + REQUEST_TIME_OUT
+ binding.container.viewTreeObserver.addOnPreDrawListener(
+ object : ViewTreeObserver.OnPreDrawListener {
+ override fun onPreDraw(): Boolean {
+ return if (System.currentTimeMillis() >= endTime) {
+ ExternalIntentNavigation.handleAppNavigation(
+ bundle = safeIntent.extras,
+ context = this@MainActivity,
+ )
+ binding.container.viewTreeObserver.removeOnPreDrawListener(this)
+ true
+ } else {
+ false
+ }
+ }
+ },
+ )
+ }
+
+ private fun checkAndExitPiP() {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && isInPictureInPictureMode && intent != null) {
+ // Exit PiP mode
+ moveTaskToBack(false)
+ startActivity(Intent(this, this::class.java).setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT))
+ }
+ }
+
+ final override fun onUserLeaveHint() {
+ // The notification permission prompt will trigger onUserLeaveHint too.
+ // We shouldn't treat this situation as user leaving.
+ if (!components.notificationsDelegate.isRequestingPermission) {
+ val browserFragment =
+ supportFragmentManager.findFragmentByTag(BrowserFragment.FRAGMENT_TAG) as BrowserFragment?
+ if (browserFragment is UserInteractionHandler && browserFragment.onHomePressed()) {
+ return
+ }
+ }
+ super.onUserLeaveHint()
+ }
+
+ override fun onResume() {
+ super.onResume()
+ checkBiometricStillValid()
+ }
+
+ override fun onPause() {
+ val fragmentManager = supportFragmentManager
+ val browserFragment =
+ fragmentManager.findFragmentByTag(BrowserFragment.FRAGMENT_TAG) as BrowserFragment?
+ browserFragment?.cancelAnimation()
+
+ val urlInputFragment =
+ fragmentManager.findFragmentByTag(UrlInputFragment.FRAGMENT_TAG) as UrlInputFragment?
+ urlInputFragment?.cancelAnimation()
+
+ super.onPause()
+ }
+
+ override fun onStop() {
+ super.onStop()
+ }
+
+ override fun onNewIntent(unsafeIntent: Intent) {
+ if (Crash.isCrashIntent(unsafeIntent)) {
+ val browserFragment = supportFragmentManager
+ .findFragmentByTag(BrowserFragment.FRAGMENT_TAG) as BrowserFragment?
+ val crash = Crash.fromIntent(unsafeIntent)
+
+ browserFragment?.handleTabCrash(crash)
+ }
+ startupPathProvider.onIntentReceived(intent)
+ val intent = SafeIntent(unsafeIntent)
+
+ handleAppRestoreFromBackground(intent)
+
+ if (intent.dataString.equals(SupportUtils.OPEN_WITH_DEFAULT_BROWSER_URL)) {
+ components.appStore.dispatch(
+ AppAction.OpenSettings(
+ page = Screen.Settings.Page.General,
+ ),
+ )
+ super.onNewIntent(unsafeIntent)
+ return
+ }
+
+ val action = intent.action
+
+ if (intent.hasExtra(HomeScreen.ADD_TO_HOMESCREEN_TAG)) {
+ intentProcessor.handleNewIntent(this, intent)
+ }
+
+ if (ACTION_OPEN == action) {
+ Notifications.openButtonTapped.record(NoExtras())
+ }
+
+ if (ACTION_ERASE == action) {
+ processEraseAction(intent)
+ }
+
+ if (intent.isLauncherIntent) {
+ AppOpened.fromIcons.record(AppOpened.FromIconsExtra(AppOpenType.RESUME.type))
+ }
+
+ super.onNewIntent(unsafeIntent)
+ }
+
+ private fun handleAppRestoreFromBackground(intent: SafeIntent) {
+ if (!intent.extras?.getString(BaseVoiceSearchActivity.SPEECH_PROCESSING).isNullOrEmpty()) {
+ handleAppNavigation(intent)
+ return
+ }
+ when (components.appStore.state.screen) {
+ is Screen.Settings -> components.appStore.dispatch(
+ AppAction.OpenSettings(
+ page =
+ (components.appStore.state.screen as Screen.Settings).page,
+ ),
+ )
+ is Screen.SitePermissionOptionsScreen -> components.appStore.dispatch(
+ AppAction.OpenSitePermissionOptionsScreen(
+ sitePermission =
+ (components.appStore.state.screen as Screen.SitePermissionOptionsScreen).sitePermission,
+ ),
+ )
+ else -> {
+ handleAppNavigation(intent)
+ }
+ }
+ }
+
+ private fun handleAppNavigation(intent: SafeIntent) {
+ if (components.appStore.state.screen == Screen.Locked()) {
+ components.appStore.dispatch(AppAction.Lock(intent.extras))
+ } else if (settings.getAppLaunchCount() == 0) {
+ setSplashScreenPreDrawListener(intent)
+ } else {
+ ExternalIntentNavigation.handleAppNavigation(
+ bundle = intent.extras,
+ context = this,
+ )
+ }
+ }
+
+ private fun processEraseAction(intent: SafeIntent) {
+ val fromNotificationAction = intent.getBooleanExtra(EXTRA_NOTIFICATION, false)
+
+ components.tabsUseCases.removeAllTabs()
+
+ if (fromNotificationAction) {
+ Notifications.eraseOpenButtonTapped.record(Notifications.EraseOpenButtonTappedExtra(tabCount))
+ }
+ }
+
+ override fun onCreateView(parent: View?, name: String, context: Context, attrs: AttributeSet): View? {
+ return if (name == EngineView::class.java.name) {
+ components.engine.createView(context, attrs).asView()
+ } else {
+ super.onCreateView(parent, name, context, attrs)
+ }
+ }
+
+ override fun onBackPressed() {
+ val fragmentManager = supportFragmentManager
+
+ val urlInputFragment =
+ fragmentManager.findFragmentByTag(UrlInputFragment.FRAGMENT_TAG) as UrlInputFragment?
+ if (urlInputFragment != null &&
+ urlInputFragment.isVisible &&
+ urlInputFragment.onBackPressed()
+ ) {
+ // The URL input fragment has handled the back press. It does its own animations so
+ // we do not try to remove it from outside.
+ return
+ }
+
+ val browserFragment =
+ fragmentManager.findFragmentByTag(BrowserFragment.FRAGMENT_TAG) as BrowserFragment?
+ if (browserFragment != null &&
+ browserFragment.isVisible &&
+ browserFragment.onBackPressed()
+ ) {
+ // The Browser fragment handles back presses on its own because it might just go back
+ // in the browsing history.
+ return
+ }
+
+ val appStore = components.appStore
+ if (appStore.state.screen is Screen.Settings || appStore.state.screen is Screen.SitePermissionOptionsScreen) {
+ // When on a settings screen we want the same behavior as navigating "up" via the toolbar
+ // and therefore dispatch the `NavigateUp` action on the app store.
+ val selectedTabId = components.store.state.selectedTabId
+ appStore.dispatch(AppAction.NavigateUp(selectedTabId))
+ return
+ }
+
+ onBackPressedDispatcher.onBackPressed()
+ }
+
+ override fun onOptionsItemSelected(item: MenuItem): Boolean {
+ if (item.itemId == android.R.id.home) {
+ // We forward an up action to the app store with the NavigateUp action to let the reducer
+ // decide to show a different screen.
+ val selectedTabId = components.store.state.selectedTabId
+ components.appStore.dispatch(AppAction.NavigateUp(selectedTabId))
+ return true
+ }
+
+ return super.onOptionsItemSelected(item)
+ }
+
+ // Handles the edge case of a user removing all enrolled prints while auth was enabled
+ private fun checkBiometricStillValid() {
+ // Disable biometrics if the user is no longer eligible due to un-enrolling fingerprints:
+ if (!canUseBiometricFeature()) {
+ PreferenceManager.getDefaultSharedPreferences(this)
+ .edit().putBoolean(
+ getString(R.string.pref_key_biometric),
+ false,
+ ).apply()
+ }
+ }
+
+ private fun updateLightSystemBars() {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ window.statusBarColor = getColorFromAttr(android.R.attr.statusBarColor)
+ window.createWindowInsetsController().isAppearanceLightStatusBars = true
+ } else {
+ window.statusBarColor = Color.BLACK
+ }
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ // API level can display handle light navigation bar color
+ window.createWindowInsetsController().isAppearanceLightNavigationBars = true
+ window.navigationBarColor = ContextCompat.getColor(this, android.R.color.transparent)
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+ window.navigationBarDividerColor =
+ ContextCompat.getColor(this, android.R.color.transparent)
+ }
+ }
+ }
+
+ private fun clearLightSystemBars() {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ window.createWindowInsetsController().isAppearanceLightStatusBars = false
+ }
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ // API level can display handle light navigation bar color
+ window.createWindowInsetsController().isAppearanceLightNavigationBars = false
+ }
+ }
+
+ fun getToolbar(): ActionBar {
+ if (!isToolbarInflated) {
+ val toolbar = binding.toolbar.inflate() as Toolbar
+ setSupportActionBar(toolbar)
+ setNavigationIcon(R.drawable.ic_back_button)
+ isToolbarInflated = true
+ }
+ return supportActionBar!!
+ }
+
+ fun customizeStatusBar(backgroundColorId: Int? = null) {
+ with(binding.statusBarBackground) {
+ binding.statusBarBackground.isVisible = true
+ StatusBarUtils.getStatusBarHeight(this) { statusBarHeight ->
+ layoutParams.height = statusBarHeight
+ backgroundColorId?.let { color ->
+ setBackgroundColor(ContextCompat.getColor(context, color))
+ }
+ }
+ }
+ }
+
+ fun hideStatusBarBackground() {
+ binding.statusBarBackground.isVisible = false
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ _binding = null
+
+ if (this::privateNotificationFeature.isInitialized) {
+ privateNotificationFeature.stop()
+ }
+
+ components.notificationsDelegate.unBindActivity(this)
+ }
+
+ enum class AppOpenType(val type: String) {
+ LAUNCH("Launch"),
+ RESUME("Resume"),
+ }
+
+ companion object {
+ const val ACTION_ERASE = "erase"
+ const val ACTION_OPEN = "open"
+
+ const val EXTRA_NOTIFICATION = "notification"
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/TextActionActivity.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/TextActionActivity.kt
new file mode 100644
index 0000000000..2181ded3ae
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/activity/TextActionActivity.kt
@@ -0,0 +1,48 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.activity
+
+import android.app.Activity
+import android.content.Intent
+import android.os.Build
+import android.os.Bundle
+import androidx.annotation.RequiresApi
+import androidx.core.net.toUri
+import mozilla.components.feature.search.ext.buildSearchUrl
+import mozilla.components.feature.search.ext.waitForSelectedOrDefaultSearchEngine
+import mozilla.components.support.utils.SafeIntent
+import org.mozilla.focus.ext.components
+
+/**
+ * Activity for receiving and processing an ACTION_PROCESS_TEXT intent.
+ */
+class TextActionActivity : Activity() {
+ @RequiresApi(api = Build.VERSION_CODES.M)
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ val intent = SafeIntent(intent)
+
+ val searchTextCharSequence = intent.getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT)
+ val searchText = searchTextCharSequence?.toString() ?: ""
+
+ components.store.waitForSelectedOrDefaultSearchEngine { searchEngine ->
+ val searchUrl = searchEngine?.buildSearchUrl(searchText).toString()
+ val searchIntent = Intent(this, IntentReceiverActivity::class.java)
+ searchIntent.action = Intent.ACTION_VIEW
+ searchIntent.putExtra(EXTRA_TEXT_SELECTION, true)
+ searchIntent.data = searchUrl.toUri()
+ searchIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP
+
+ startActivity(searchIntent)
+
+ finish()
+ }
+ }
+
+ companion object {
+ const val EXTRA_TEXT_SELECTION = "text_selection"
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/animation/TransitionDrawableGroup.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/animation/TransitionDrawableGroup.kt
new file mode 100644
index 0000000000..3c1e30d44e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/animation/TransitionDrawableGroup.kt
@@ -0,0 +1,26 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.animation
+
+import android.graphics.drawable.TransitionDrawable
+
+/**
+ * A class to allow [TransitionDrawable]'s animations to play together: similar to [android.animation.AnimatorSet].
+ */
+class TransitionDrawableGroup(private vararg val transitionDrawables: TransitionDrawable) {
+ fun startTransition(durationMillis: Int) {
+ // In theory, there are no guarantees these will play together.
+ // In practice, I haven't noticed any problems.
+ for (transitionDrawable in transitionDrawables) {
+ transitionDrawable.startTransition(durationMillis)
+ }
+ }
+
+ fun resetTransition() {
+ for (transitionDrawable in transitionDrawables) {
+ transitionDrawable.resetTransition()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/appreview/AppReviewStep.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/appreview/AppReviewStep.kt
new file mode 100644
index 0000000000..47089dc410
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/appreview/AppReviewStep.kt
@@ -0,0 +1,11 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.appreview
+
+enum class AppReviewStep {
+ Pending,
+ ReviewNeeded,
+ Reviewed,
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/appreview/AppReviewUtils.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/appreview/AppReviewUtils.kt
new file mode 100644
index 0000000000..d180bc6bac
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/appreview/AppReviewUtils.kt
@@ -0,0 +1,151 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.appreview
+
+import android.app.Activity
+import android.content.ActivityNotFoundException
+import android.content.Context
+import android.content.Intent
+import androidx.core.net.toUri
+import androidx.preference.PreferenceManager
+import com.google.android.play.core.review.ReviewInfo
+import com.google.android.play.core.review.ReviewManagerFactory
+import com.google.android.play.core.tasks.Task
+import mozilla.components.browser.state.state.SessionState
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.utils.SupportUtils
+import java.util.concurrent.TimeUnit
+
+class AppReviewUtils {
+ companion object {
+ /**
+ * Number of app openings until In App Review is triggered.
+ */
+ private const val APP_OPENINGS_REVIEW_TRIGGER = 3
+ private val APP_REVIEW_TIME_TRIGGER = TimeUnit.DAYS.toMillis(90)
+
+ /**
+ * Shows in app review or opens play store if Review Info task is not successful.
+ *
+ * @property activity where In App review is triggered
+ */
+ fun showAppReview(activity: Activity) {
+ if (shouldShowInAppReview(activity)) {
+ val manager = ReviewManagerFactory.create(activity)
+ val request = manager.requestReviewFlow()
+ request.addOnCompleteListener { task: Task<ReviewInfo?> ->
+ if (task.isSuccessful) {
+ // We can get the ReviewInfo object
+ val reviewInfo = task.result
+ val flow = manager.launchReviewFlow(activity, reviewInfo)
+ flow.addOnCompleteListener {
+ // The flow has finished. The API does not indicate whether the user
+ // reviewed or not, or even whether the review dialog was shown. Thus, no
+ // matter the result, we continue our app flow.
+ setAppReviewed(activity)
+ }
+ } else {
+ setAppReviewed(activity)
+ // There was some problem, open PlayStore
+ openPlayStore(activity = activity)
+ }
+ }
+ }
+ }
+
+ /**
+ * Set the number of app openings and the flag when In App Review is needed.
+ *
+ * @property context needed for SharePref
+ */
+ fun addAppOpenings(context: Context) {
+ val preferenceManage = PreferenceManager.getDefaultSharedPreferences(context)
+ val currentOpeningsNumber = preferenceManage.getInt(
+ context.getString(
+ R.string.pref_in_app_review_openings,
+ ),
+ 0,
+ ) + 1
+ val appReviewStep = preferenceManage.getString(
+ context.getString(
+ R.string.pref_in_app_review_step,
+ ),
+ AppReviewStep.Pending.name,
+ )
+
+ preferenceManage
+ .edit().putInt(
+ context.getString(R.string.pref_in_app_review_openings),
+ currentOpeningsNumber,
+ ).apply()
+ if (currentOpeningsNumber == APP_OPENINGS_REVIEW_TRIGGER &&
+ appReviewStep == AppReviewStep.Pending.name
+ ) {
+ setAppReviewStep(context, AppReviewStep.ReviewNeeded)
+ }
+ }
+
+ private fun shouldShowInAppReview(context: Context): Boolean {
+ val inAppReviewStep = PreferenceManager.getDefaultSharedPreferences(context).getString(
+ context.getString(R.string.pref_in_app_review_step),
+ AppReviewStep.Pending.name,
+ )
+ val lastReviewedTime = PreferenceManager.getDefaultSharedPreferences(context).getLong(
+ context.getString(R.string.pref_in_app_review_time),
+ 0L,
+ )
+
+ return inAppReviewStep == AppReviewStep.ReviewNeeded.name || (
+ lastReviewedTime +
+ APP_REVIEW_TIME_TRIGGER <= System.currentTimeMillis() &&
+ inAppReviewStep == AppReviewStep.Reviewed.name
+ )
+ }
+
+ private fun openPlayStore(activity: Activity) {
+ try {
+ activity.startActivity(
+ Intent(
+ Intent.ACTION_VIEW,
+ SupportUtils.RATE_APP_URL.toUri(),
+ ),
+ )
+ } catch (e: ActivityNotFoundException) {
+ // Device without the play store installed.
+ // Opening the play store website.
+ val tabId = activity.components.tabsUseCases.addTab(
+ url = SupportUtils.FOCUS_PLAY_STORE_URL,
+ source = SessionState.Source.Internal.NewTab,
+ selectTab = true,
+ private = true,
+ )
+ activity.components.appStore.dispatch(AppAction.OpenTab(tabId))
+ }
+ }
+
+ private fun setAppReviewed(activity: Activity) {
+ setAppReviewStep(activity, AppReviewStep.Reviewed)
+ setLastReviewedTime(activity)
+ }
+
+ private fun setAppReviewStep(context: Context, appReviewStep: AppReviewStep) {
+ PreferenceManager.getDefaultSharedPreferences(context)
+ .edit().putString(
+ context.getString(R.string.pref_in_app_review_step),
+ appReviewStep.name,
+ ).apply()
+ }
+
+ private fun setLastReviewedTime(context: Context) {
+ PreferenceManager.getDefaultSharedPreferences(context)
+ .edit().putLong(
+ context.getString(R.string.pref_in_app_review_time),
+ System.currentTimeMillis(),
+ ).apply()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteAddFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteAddFragment.kt
new file mode 100644
index 0000000000..4da800d468
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteAddFragment.kt
@@ -0,0 +1,120 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.autocomplete
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
+import android.view.View
+import android.view.ViewGroup
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers.IO
+import kotlinx.coroutines.Dispatchers.Main
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.launch
+import mozilla.components.browser.domains.CustomDomains
+import org.mozilla.focus.GleanMetrics.Autocomplete
+import org.mozilla.focus.R
+import org.mozilla.focus.databinding.FragmentAutocompleteAddDomainBinding
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.settings.BaseSettingsLikeFragment
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.utils.ViewUtils
+import kotlin.coroutines.CoroutineContext
+
+/**
+ * Fragment showing settings UI to add custom autocomplete domains.
+ */
+class AutocompleteAddFragment : BaseSettingsLikeFragment(), CoroutineScope {
+ private var job = Job()
+ override val coroutineContext: CoroutineContext
+ get() = job + Main
+ private var _binding: FragmentAutocompleteAddDomainBinding? = null
+ private val binding get() = _binding!!
+
+ override fun onResume() {
+ super.onResume()
+
+ if (job.isCancelled) {
+ job = Job()
+ }
+
+ showToolbar(getString(R.string.preference_autocomplete_title_add))
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?,
+ ): View {
+ _binding = FragmentAutocompleteAddDomainBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ ViewUtils.showKeyboard(binding.domainView)
+ }
+
+ override fun onPause() {
+ job.cancel()
+ ViewUtils.hideKeyboard(activity?.currentFocus)
+ super.onPause()
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
+ menuInflater.inflate(R.menu.menu_autocomplete_add, menu)
+ }
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) {
+ R.id.save -> {
+ val domain = binding.domainView.text.toString().trim()
+
+ launch(IO) {
+ val domains = CustomDomains.load(requireActivity())
+ val error = when {
+ domain.isEmpty() -> getString(R.string.preference_autocomplete_add_error)
+ domains.contains(domain) -> getString(R.string.preference_autocomplete_duplicate_url_error)
+ else -> null
+ }
+
+ launch(Main) {
+ if (error != null) {
+ binding.domainView.error = error
+ } else {
+ saveDomainAndClose(requireActivity().applicationContext, domain)
+ }
+ }
+ }
+ true
+ }
+ // other options are not handled by this menu provider
+ else -> false
+ }
+
+ private fun saveDomainAndClose(context: Context, domain: String) {
+ launch(IO) {
+ CustomDomains.add(context, domain)
+ Autocomplete.domainAdded.add()
+ }
+
+ ViewUtils.showBrandedSnackbar(view, R.string.preference_autocomplete_add_confirmation, 0)
+
+ requireComponents.appStore.dispatch(
+ AppAction.NavigateUp(
+ requireComponents.store.state.selectedTabId,
+ ),
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteCustomDomainsPreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteCustomDomainsPreference.kt
new file mode 100644
index 0000000000..3a71b24790
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteCustomDomainsPreference.kt
@@ -0,0 +1,23 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.autocomplete
+
+import android.content.Context
+import android.util.AttributeSet
+import org.mozilla.focus.settings.LearnMoreSwitchPreference
+import org.mozilla.focus.utils.SupportUtils
+
+/**
+ * Switch preference for enabling/disabling autocompletion for custom domains entered by the user.
+ */
+class AutocompleteCustomDomainsPreference(
+ context: Context,
+ attrs: AttributeSet?,
+) : LearnMoreSwitchPreference(context, attrs) {
+ override fun getLearnMoreUrl() = SupportUtils.getSumoURLForTopic(
+ SupportUtils.getAppVersion(context),
+ SupportUtils.SumoTopic.AUTOCOMPLETE,
+ )
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteDefaultDomainsPreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteDefaultDomainsPreference.kt
new file mode 100644
index 0000000000..1a8509d1f3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteDefaultDomainsPreference.kt
@@ -0,0 +1,23 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.autocomplete
+
+import android.content.Context
+import android.util.AttributeSet
+import org.mozilla.focus.settings.LearnMoreSwitchPreference
+import org.mozilla.focus.utils.SupportUtils
+
+/**
+ * Switch preference for enabling/disabling autocompletion for default domains that ship with the app.
+ */
+class AutocompleteDefaultDomainsPreference(
+ context: Context,
+ attrs: AttributeSet?,
+) : LearnMoreSwitchPreference(context, attrs) {
+ override fun getLearnMoreUrl() = SupportUtils.getSumoURLForTopic(
+ SupportUtils.getAppVersion(context),
+ SupportUtils.SumoTopic.AUTOCOMPLETE,
+ )
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteDomainFormatter.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteDomainFormatter.kt
new file mode 100644
index 0000000000..d62b3a8b35
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteDomainFormatter.kt
@@ -0,0 +1,18 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.autocomplete
+
+object AutocompleteDomainFormatter {
+ private const val HOST_INDEX = 3
+ private val urlMatcher = Regex("""(https?://)?(www.)?(.+)?""")
+
+ fun format(url: String): String {
+ val result = urlMatcher.find(url)
+
+ return result?.let {
+ it.groups[HOST_INDEX]?.value
+ } ?: url
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteListFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteListFragment.kt
new file mode 100644
index 0000000000..7d2f793746
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteListFragment.kt
@@ -0,0 +1,349 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.autocomplete
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
+import android.view.MotionEvent
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.CompoundButton
+import android.widget.TextView
+import androidx.core.content.ContextCompat
+import androidx.core.view.isVisible
+import androidx.recyclerview.widget.ItemTouchHelper
+import androidx.recyclerview.widget.ItemTouchHelper.SimpleCallback
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.Dispatchers.IO
+import kotlinx.coroutines.Dispatchers.Main
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+import mozilla.components.browser.domains.CustomDomains
+import org.mozilla.focus.GleanMetrics.Autocomplete
+import org.mozilla.focus.R
+import org.mozilla.focus.databinding.FragmentAutocompleteCustomdomainsBinding
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.settings.BaseSettingsLikeFragment
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+import org.mozilla.focus.utils.ViewUtils
+import java.util.Collections
+import kotlin.coroutines.CoroutineContext
+
+typealias DomainFormatter = (String) -> String
+
+/**
+ * Fragment showing settings UI listing all custom autocomplete domains entered by the user.
+ */
+open class AutocompleteListFragment : BaseSettingsLikeFragment(), CoroutineScope {
+ private var job = Job()
+ override val coroutineContext: CoroutineContext
+ get() = job + Main
+ private var _binding: FragmentAutocompleteCustomdomainsBinding? = null
+ protected val binding get() = _binding!!
+
+ /**
+ * ItemTouchHelper for reordering items in the domain list.
+ */
+ val itemTouchHelper: ItemTouchHelper = ItemTouchHelper(
+ object : SimpleCallback(ItemTouchHelper.UP or ItemTouchHelper.DOWN, 0) {
+ override fun onMove(
+ recyclerView: RecyclerView,
+ viewHolder: RecyclerView.ViewHolder,
+ target: RecyclerView.ViewHolder,
+ ): Boolean {
+ val from = viewHolder.bindingAdapterPosition
+ val to = target.bindingAdapterPosition
+
+ (recyclerView.adapter as DomainListAdapter).move(from, to)
+
+ return true
+ }
+
+ override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {}
+
+ override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder): Int {
+ if (viewHolder is AddActionViewHolder) {
+ return ItemTouchHelper.Callback.makeMovementFlags(0, 0)
+ }
+
+ return super.getMovementFlags(recyclerView, viewHolder)
+ }
+
+ override fun onSelectedChanged(viewHolder: RecyclerView.ViewHolder?, actionState: Int) {
+ super.onSelectedChanged(viewHolder, actionState)
+
+ if (viewHolder is DomainViewHolder) {
+ viewHolder.onSelected()
+ }
+ }
+
+ override fun clearView(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder) {
+ super.clearView(recyclerView, viewHolder)
+
+ if (viewHolder is DomainViewHolder) {
+ viewHolder.onCleared()
+ }
+ }
+
+ override fun canDropOver(
+ recyclerView: RecyclerView,
+ current: RecyclerView.ViewHolder,
+ target: RecyclerView.ViewHolder,
+ ): Boolean {
+ if (target is AddActionViewHolder) {
+ return false
+ }
+
+ return super.canDropOver(recyclerView, current, target)
+ }
+ },
+ )
+
+ /**
+ * In selection mode the user can select and remove items. In non-selection mode the list can
+ * be reordered by the user.
+ */
+ open fun isSelectionMode() = false
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?,
+ ): View {
+ _binding = FragmentAutocompleteCustomdomainsBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding.domainList.apply {
+ layoutManager = LinearLayoutManager(activity, RecyclerView.VERTICAL, false)
+ adapter = DomainListAdapter()
+ setHasFixedSize(true)
+
+ if (!isSelectionMode()) {
+ itemTouchHelper.attachToRecyclerView(this)
+ }
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+
+ if (job.isCancelled) {
+ job = Job()
+ }
+
+ showToolbar(getString(R.string.preference_autocomplete_subitem_manage_sites))
+
+ (binding.domainList.adapter as DomainListAdapter).refresh(requireActivity()) {
+ activity?.invalidateOptionsMenu()
+ }
+ }
+
+ override fun onPause() {
+ job.cancel()
+ super.onPause()
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
+ menuInflater.inflate(R.menu.menu_autocomplete_list, menu)
+ }
+
+ override fun onPrepareMenu(menu: Menu) {
+ val removeItem = menu.findItem(R.id.remove)
+
+ removeItem?.let {
+ it.isVisible = isSelectionMode() || binding.domainList.adapter!!.itemCount > 1
+ val isEnabled =
+ !isSelectionMode() || (binding.domainList.adapter as DomainListAdapter).selection()
+ .isNotEmpty()
+ ViewUtils.setMenuItemEnabled(it, isEnabled)
+ }
+ }
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) {
+ R.id.remove -> {
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(page = Screen.Settings.Page.SearchAutocompleteRemove),
+ )
+ true
+ }
+ else -> false
+ }
+
+ /**
+ * Adapter implementation for the list of custom autocomplete domains.
+ */
+ inner class DomainListAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
+ private val domains: MutableList<String> = mutableListOf()
+ private val selectedDomains: MutableList<String> = mutableListOf()
+
+ fun refresh(context: Context, body: (() -> Unit)? = null) {
+ launch(Main) {
+ val updatedDomains =
+ withContext(Dispatchers.Default) {
+ CustomDomains.load(context)
+ }
+
+ domains.clear()
+ domains.addAll(updatedDomains)
+
+ notifyDataSetChanged()
+
+ body?.invoke()
+ }
+ }
+
+ override fun getItemViewType(position: Int) =
+ when (position) {
+ domains.size -> AddActionViewHolder.LAYOUT_ID
+ else -> DomainViewHolder.LAYOUT_ID
+ }
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder =
+ when (viewType) {
+ AddActionViewHolder.LAYOUT_ID ->
+ AddActionViewHolder(
+ this@AutocompleteListFragment,
+ LayoutInflater.from(parent.context).inflate(viewType, parent, false),
+ )
+ DomainViewHolder.LAYOUT_ID ->
+ DomainViewHolder(
+ LayoutInflater.from(parent.context).inflate(viewType, parent, false),
+ ) { AutocompleteDomainFormatter.format(it) }
+ else -> throw IllegalArgumentException("Unknown view type: $viewType")
+ }
+
+ override fun getItemCount(): Int = domains.size + if (isSelectionMode()) 0 else 1
+
+ override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
+ if (holder is DomainViewHolder) {
+ holder.bind(
+ domains[position],
+ isSelectionMode(),
+ selectedDomains,
+ itemTouchHelper,
+ this@AutocompleteListFragment,
+ )
+ }
+ }
+
+ override fun onViewRecycled(holder: RecyclerView.ViewHolder) {
+ if (holder is DomainViewHolder) {
+ holder.checkBoxView.setOnCheckedChangeListener(null)
+ }
+ }
+
+ fun selection(): List<String> = selectedDomains
+
+ fun move(from: Int, to: Int) {
+ Collections.swap(domains, from, to)
+ notifyItemMoved(from, to)
+
+ launch(IO) {
+ CustomDomains.save(activity!!.applicationContext, domains)
+ Autocomplete.listOrderChanged.add()
+ }
+ }
+ }
+
+ /**
+ * ViewHolder implementation for a domain item in the list.
+ */
+ private class DomainViewHolder(
+ itemView: View,
+ val domainFormatter: DomainFormatter? = null,
+ ) : RecyclerView.ViewHolder(itemView) {
+ val domainView: TextView = itemView.findViewById(R.id.domainView)
+ val checkBoxView: CheckBox = itemView.findViewById(R.id.checkbox)
+ val handleView: View = itemView.findViewById(R.id.handleView)
+
+ companion object {
+ val LAYOUT_ID = R.layout.item_custom_domain
+ }
+
+ fun bind(
+ domain: String,
+ isSelectionMode: Boolean,
+ selectedDomains: MutableList<String>,
+ itemTouchHelper: ItemTouchHelper,
+ fragment: AutocompleteListFragment,
+ ) {
+ domainView.text = domainFormatter?.invoke(domain) ?: domain
+
+ checkBoxView.isVisible = isSelectionMode
+ checkBoxView.isChecked = selectedDomains.contains(domain)
+ checkBoxView.setOnCheckedChangeListener { _: CompoundButton, isChecked: Boolean ->
+ if (isChecked) {
+ selectedDomains.add(domain)
+ } else {
+ selectedDomains.remove(domain)
+ }
+
+ fragment.activity?.invalidateOptionsMenu()
+ }
+
+ handleView.isVisible = !isSelectionMode
+ handleView.setOnTouchListener { _, event ->
+ if (event.actionMasked == MotionEvent.ACTION_DOWN) {
+ itemTouchHelper.startDrag(this)
+ }
+ false
+ }
+
+ if (isSelectionMode) {
+ itemView.setOnClickListener {
+ checkBoxView.isChecked = !checkBoxView.isChecked
+ }
+ }
+ }
+
+ fun onSelected() {
+ itemView.setBackgroundColor(ContextCompat.getColor(itemView.context, R.color.disabled))
+ }
+
+ fun onCleared() {
+ itemView.setBackgroundColor(0)
+ }
+ }
+
+ /**
+ * ViewHolder implementation for a "Add custom domain" item at the bottom of the list.
+ */
+ private class AddActionViewHolder(
+ val fragment: AutocompleteListFragment,
+ itemView: View,
+ ) : RecyclerView.ViewHolder(itemView) {
+ init {
+ itemView.setOnClickListener {
+ fragment.requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(page = Screen.Settings.Page.SearchAutocompleteAdd),
+ )
+ }
+ }
+
+ companion object {
+ val LAYOUT_ID = R.layout.item_add_custom_domain
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteRemoveFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteRemoveFragment.kt
new file mode 100644
index 0000000000..248a514ed7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteRemoveFragment.kt
@@ -0,0 +1,74 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.autocomplete
+
+import android.content.Context
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.Dispatchers.Main
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+import mozilla.components.browser.domains.CustomDomains
+import org.mozilla.focus.GleanMetrics.Autocomplete
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.state.AppAction
+import kotlin.coroutines.CoroutineContext
+
+class AutocompleteRemoveFragment : AutocompleteListFragment(), CoroutineScope {
+ private var job = Job()
+ override val coroutineContext: CoroutineContext
+ get() = job + Main
+
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
+ menuInflater.inflate(R.menu.menu_autocomplete_remove, menu)
+ }
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) {
+ R.id.remove -> {
+ removeSelectedDomains(requireActivity().applicationContext)
+ true
+ }
+ else -> false
+ }
+
+ private fun removeSelectedDomains(context: Context) {
+ val domains = (binding.domainList.adapter as DomainListAdapter).selection()
+ if (domains.isNotEmpty()) {
+ launch(Main) {
+ withContext(Dispatchers.Default) {
+ CustomDomains.remove(context, domains)
+ Autocomplete.domainRemoved.add()
+ }
+
+ requireComponents.appStore.dispatch(
+ AppAction.NavigateUp(requireComponents.store.state.selectedTabId),
+ )
+ }
+ }
+ }
+
+ override fun isSelectionMode() = true
+
+ override fun onResume() {
+ super.onResume()
+
+ if (job.isCancelled) {
+ job = Job()
+ }
+
+ showToolbar(getString(R.string.preference_autocomplete_title_remove))
+ }
+
+ override fun onPause() {
+ job.cancel()
+ super.onPause()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteSettingsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteSettingsFragment.kt
new file mode 100644
index 0000000000..58c4eb13a8
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/autocomplete/AutocompleteSettingsFragment.kt
@@ -0,0 +1,84 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.autocomplete
+
+import android.content.SharedPreferences
+import android.os.Bundle
+import androidx.preference.Preference
+import org.mozilla.focus.GleanMetrics.Autocomplete
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.requirePreference
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.settings.BaseSettingsFragment
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+
+/**
+ * Settings UI for configuring autocomplete.
+ */
+class AutocompleteSettingsFragment : BaseSettingsFragment(), SharedPreferences.OnSharedPreferenceChangeListener {
+
+ private lateinit var topSitesAutocomplete: AutocompleteDefaultDomainsPreference
+ private lateinit var favoriteSitesAutocomplete: AutocompleteCustomDomainsPreference
+
+ override fun onCreatePreferences(p0: Bundle?, p1: String?) {
+ addPreferencesFromResource(R.xml.autocomplete)
+ val appName = requireContext().getString(R.string.app_name)
+
+ topSitesAutocomplete =
+ requirePreference<AutocompleteDefaultDomainsPreference>(R.string.pref_key_autocomplete_preinstalled).apply {
+ summary =
+ context.getString(R.string.preference_autocomplete_topsite_summary2, appName)
+ }
+ favoriteSitesAutocomplete =
+ requirePreference<AutocompleteCustomDomainsPreference>(R.string.pref_key_autocomplete_custom).apply {
+ summary =
+ context.getString(R.string.preference_autocomplete_user_list_summary2, appName)
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+
+ showToolbar(getString(R.string.preference_subitem_autocomplete))
+
+ preferenceManager.sharedPreferences?.registerOnSharedPreferenceChangeListener(this)
+ }
+
+ override fun onPause() {
+ super.onPause()
+
+ preferenceManager.sharedPreferences?.unregisterOnSharedPreferenceChangeListener(this)
+ }
+
+ override fun onPreferenceTreeClick(preference: Preference): Boolean {
+ if (preference.key == getString(R.string.pref_key_screen_custom_domains)) {
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(page = Screen.Settings.Page.SearchAutocompleteList),
+ )
+ }
+
+ return super.onPreferenceTreeClick(preference)
+ }
+
+ override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
+ if (key == null || sharedPreferences == null) {
+ return
+ }
+
+ when (key) {
+ topSitesAutocomplete.key ->
+ Autocomplete.topSitesSettingChanged.record(
+ Autocomplete.TopSitesSettingChangedExtra(sharedPreferences.all[key] as Boolean),
+ )
+
+ favoriteSitesAutocomplete.key ->
+ Autocomplete.favoriteSitesSettingChanged.record(
+ Autocomplete.FavoriteSitesSettingChangedExtra(sharedPreferences.all[key] as Boolean),
+ )
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/biometrics/BiometricAuthenticationFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/biometrics/BiometricAuthenticationFragment.kt
new file mode 100644
index 0000000000..8f86e53ee0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/biometrics/BiometricAuthenticationFragment.kt
@@ -0,0 +1,131 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.biometrics
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.annotation.VisibleForTesting
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.ui.platform.ComposeView
+import androidx.fragment.app.Fragment
+import mozilla.components.lib.auth.AuthenticationDelegate
+import mozilla.components.lib.auth.BiometricPromptAuth
+import mozilla.components.lib.auth.canUseBiometricFeature
+import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.hideToolbar
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.searchwidget.ExternalIntentNavigation
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.ui.theme.FocusTheme
+
+/**
+ * Fragment used to display biometric authentication when the app is locked.
+ */
+class BiometricAuthenticationFragment : Fragment(), AuthenticationDelegate {
+ @VisibleForTesting
+ internal val biometricPromptAuth = ViewBoundFeatureWrapper<BiometricPromptAuth>()
+
+ @VisibleForTesting
+ internal val biometricErrorText = mutableStateOf("")
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?,
+ ): View {
+ return ComposeView(requireContext()).apply {
+ setBiometricPrompt(this)
+ setContent {
+ FocusTheme {
+ val biometricErrorText by biometricErrorText
+ BiometricPromptContent(biometricErrorText) {
+ showBiometricPrompt(
+ biometricPromptAuth.get(),
+ getString(R.string.biometric_prompt_title),
+ getString(R.string.biometric_prompt_subtitle),
+ )
+ }
+ }
+ }
+ isTransitionGroup = true
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ hideToolbar()
+ }
+ override fun onAuthError(errorText: String) {
+ biometricErrorText.value = errorText
+ }
+
+ override fun onAuthFailure() {
+ // onAuthFailure
+ }
+
+ override fun onAuthSuccess() {
+ onAuthenticated()
+ }
+
+ @VisibleForTesting
+ internal fun showBiometricPrompt(
+ biometricPromptAuth: BiometricPromptAuth?,
+ title: String,
+ subtitle: String,
+ ) {
+ if (context?.canUseBiometricFeature() == true) {
+ biometricPromptAuth?.requestAuthentication(
+ title = title,
+ subtitle = subtitle,
+ )
+ }
+ }
+
+ private fun setBiometricPrompt(view: View) {
+ biometricPromptAuth.set(
+ feature = BiometricPromptAuth(
+ context = requireContext(),
+ fragment = this,
+ authenticationDelegate = this,
+ ),
+ owner = this,
+ view = view,
+ )
+ }
+
+ @VisibleForTesting
+ internal fun onAuthenticated() {
+ ExternalIntentNavigation.handleAppNavigation(
+ bundle = arguments,
+ context = requireContext(),
+ )
+
+ val tabId = requireComponents.store.state.selectedTabId
+ requireComponents.appStore.dispatch(AppAction.Unlock(tabId))
+ dismiss()
+ }
+
+ @VisibleForTesting
+ internal fun dismiss() {
+ requireActivity().supportFragmentManager.beginTransaction().remove(this).commitAllowingStateLoss()
+ }
+
+ companion object {
+ const val FRAGMENT_TAG = "biometric-authentication-fragment"
+
+ /**
+ * Creates a [BiometricAuthenticationFragment] with redirection to a destination from @param [bundle].
+ */
+ fun createWithDestinationData(bundle: Bundle? = null): BiometricAuthenticationFragment {
+ val fragment = BiometricAuthenticationFragment()
+ fragment.arguments = bundle
+ return fragment
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/biometrics/BiometricAuthenticationFragmentCompose.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/biometrics/BiometricAuthenticationFragmentCompose.kt
new file mode 100644
index 0000000000..378e4b7150
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/biometrics/BiometricAuthenticationFragmentCompose.kt
@@ -0,0 +1,114 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.biometrics
+
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxHeight
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material.Button
+import androidx.compose.material.ButtonDefaults
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.geometry.Offset
+import androidx.compose.ui.graphics.Brush
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.text.AnnotatedString
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import mozilla.components.ui.colors.PhotonColors
+import org.mozilla.focus.R
+import org.mozilla.focus.ui.theme.FocusTheme
+import org.mozilla.focus.ui.theme.focusTypography
+
+@Composable
+@Preview
+private fun BiometricPromptContentPreview() {
+ FocusTheme {
+ BiometricPromptContent("Fingerprint operation canceled by user.") {}
+ }
+}
+
+/**
+ * Content of the biometric authentication prompt.
+ * @param biometricErrorText Text for an authentication error
+ * @param showBiometricPrompt callback for displaying the OS biometric authentication prompt
+ */
+@Composable
+fun BiometricPromptContent(biometricErrorText: String, showBiometricPrompt: () -> Unit) {
+ Column(
+ horizontalAlignment = Alignment.CenterHorizontally,
+ verticalArrangement = Arrangement.Center,
+ modifier = Modifier
+ .fillMaxWidth()
+ .fillMaxHeight()
+ .background(
+ brush = Brush.linearGradient(
+ colors = listOf(
+ colorResource(R.color.home_screen_modal_gradient_one),
+ colorResource(R.color.home_screen_modal_gradient_two),
+ colorResource(R.color.home_screen_modal_gradient_three),
+ colorResource(R.color.home_screen_modal_gradient_four),
+ colorResource(R.color.home_screen_modal_gradient_five),
+ colorResource(R.color.home_screen_modal_gradient_six),
+ ),
+ end = Offset(0f, Float.POSITIVE_INFINITY),
+ start = Offset(Float.POSITIVE_INFINITY, 0f),
+ ),
+ ),
+ ) {
+ Image(
+ painter = painterResource(R.drawable.wordmark2),
+ contentDescription = LocalContext.current.getString(R.string.app_name),
+ modifier = Modifier
+ .padding(start = 24.dp, end = 24.dp),
+ )
+ Text(
+ style = focusTypography.onboardingButton,
+ color = Color.Red,
+ text = biometricErrorText,
+ modifier = Modifier.padding(top = 16.dp, bottom = 16.dp),
+ )
+ ComponentShowBiometricPromptButton {
+ showBiometricPrompt()
+ }
+ }
+}
+
+@Composable
+private fun ComponentShowBiometricPromptButton(showBiometricPrompt: () -> Unit) {
+ Button(
+ onClick = showBiometricPrompt,
+ colors = ButtonDefaults.textButtonColors(
+ backgroundColor = colorResource(R.color.biometric_show_button_background),
+ ),
+ modifier = Modifier
+ .padding(16.dp)
+ .fillMaxWidth(),
+ ) {
+ Image(
+ painter = painterResource(R.drawable.ic_fingerprint),
+ contentDescription = LocalContext.current.getString(R.string.biometric_auth_image_description),
+ modifier = Modifier
+ .padding(end = 10.dp),
+ )
+ Text(
+ color = PhotonColors.White,
+ text = AnnotatedString(
+ LocalContext.current.resources.getString(
+ R.string.show_biometric_button_text,
+ ),
+ ),
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/biometrics/LockObserver.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/biometrics/LockObserver.kt
new file mode 100644
index 0000000000..7625effa9c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/biometrics/LockObserver.kt
@@ -0,0 +1,59 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.biometrics
+
+import android.content.Context
+import androidx.lifecycle.DefaultLifecycleObserver
+import androidx.lifecycle.LifecycleOwner
+import kotlinx.coroutines.DelicateCoroutinesApi
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
+import mozilla.components.browser.state.selector.privateTabs
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.lib.auth.canUseBiometricFeature
+import org.mozilla.focus.GleanMetrics.TabCount
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.AppStore
+import org.mozilla.focus.topsites.DefaultTopSitesStorage
+
+class LockObserver(
+ private val context: Context,
+ private val browserStore: BrowserStore,
+ private val appStore: AppStore,
+) : DefaultLifecycleObserver {
+
+ override fun onCreate(owner: LifecycleOwner) {
+ super.onCreate(owner)
+ triggerAppLock()
+ }
+
+ override fun onPause(owner: LifecycleOwner) {
+ super.onPause(owner)
+ triggerAppLock()
+ }
+
+ @OptIn(DelicateCoroutinesApi::class)
+ private fun triggerAppLock() {
+ GlobalScope.launch(Dispatchers.IO) {
+ val tabCount = browserStore.state.privateTabs.size.toLong()
+ TabCount.appBackgrounded.accumulateSamples(listOf(tabCount))
+ val topSitesList = context.components.topSitesStorage.getTopSites(
+ totalSites = DefaultTopSitesStorage.TOP_SITES_MAX_LIMIT,
+ frecencyConfig = null,
+ )
+ if (tabCount == 0L && topSitesList.isEmpty()) {
+ return@launch
+ }
+ if (context.settings.shouldUseBiometrics() &&
+ context.canUseBiometricFeature()
+ ) {
+ appStore.dispatch(AppAction.Lock())
+ }
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/BlockedTrackersMiddleware.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/BlockedTrackersMiddleware.kt
new file mode 100644
index 0000000000..4fc2de851f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/BlockedTrackersMiddleware.kt
@@ -0,0 +1,55 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.browser
+
+import android.content.Context
+import androidx.preference.PreferenceManager
+import mozilla.components.browser.state.action.BrowserAction
+import mozilla.components.browser.state.action.TrackingProtectionAction
+import mozilla.components.browser.state.state.BrowserState
+import mozilla.components.lib.state.Middleware
+import mozilla.components.lib.state.MiddlewareContext
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.settings
+
+/**
+ * [Middleware] to record the number of blocked trackers in response to [BrowserAction]s.
+ * @param context The application context.
+ */
+class BlockedTrackersMiddleware(
+ private val context: Context,
+) : Middleware<BrowserState, BrowserAction> {
+
+ private val settings = context.settings
+ private val preferences = PreferenceManager.getDefaultSharedPreferences(context)
+
+ override fun invoke(
+ context: MiddlewareContext<BrowserState, BrowserAction>,
+ next: (BrowserAction) -> Unit,
+ action: BrowserAction,
+ ) {
+ when (action) {
+ is TrackingProtectionAction.TrackerBlockedAction -> {
+ incrementCount()
+ }
+ else -> {
+ // no-op
+ }
+ }
+
+ next(action)
+ }
+
+ private fun incrementCount() {
+ val blockedTrackersCount = settings.getTotalBlockedTrackersCount()
+ preferences
+ .edit()
+ .putInt(
+ context.getString(R.string.pref_key_privacy_total_trackers_blocked_count),
+ blockedTrackersCount + 1,
+ )
+ .apply()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/LocalizedContent.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/LocalizedContent.kt
new file mode 100644
index 0000000000..304fe4b281
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/LocalizedContent.kt
@@ -0,0 +1,106 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.browser
+
+import android.content.Context
+import android.content.pm.PackageManager
+import android.view.View
+import androidx.collection.ArrayMap
+import mozilla.components.support.utils.ext.getPackageInfoCompat
+import org.mozilla.focus.R
+import org.mozilla.focus.locale.Locales
+import org.mozilla.focus.utils.HtmlLoader
+import org.mozilla.focus.utils.SupportUtils.manifestoURL
+import org.mozilla.geckoview.BuildConfig
+import java.util.Locale
+
+object LocalizedContent {
+ // We can't use "about:" because webview silently swallows about: pages, hence we use
+ // a custom scheme.
+ const val URL_ABOUT = "focus:about"
+ const val URL_RIGHTS = "focus:rights"
+ const val URL_GPL = "focus:gpl"
+ const val URL_LICENSES = "focus:licenses"
+
+ /**
+ * Load the content for focus:about
+ */
+ fun loadAbout(context: Context): String {
+ val resources = Locales.getLocalizedResources(context)
+ val substitutionMap: MutableMap<String, String> = ArrayMap()
+ val appName = context.resources.getString(R.string.app_name)
+ val learnMoreURL = manifestoURL
+ var aboutVersion = ""
+ try {
+ val engineIndicator = " \uD83E\uDD8E " + BuildConfig.MOZ_APP_VERSION + "-" +
+ BuildConfig.MOZ_APP_BUILDID
+ val packageInfo = context.packageManager.getPackageInfoCompat(context.packageName, 0)
+ @Suppress("DEPRECATION")
+ aboutVersion = String.format(
+ Locale.US,
+ "%s (Build #%s)",
+ packageInfo.versionName,
+ packageInfo.versionCode.toString() + engineIndicator,
+ )
+ } catch (e: PackageManager.NameNotFoundException) {
+ // Nothing to do if we can't find the package name.
+ }
+ substitutionMap["%about-version%"] = aboutVersion
+ val aboutContent = resources.getString(R.string.about_content, appName, learnMoreURL)
+ substitutionMap["%about-content%"] = aboutContent
+ val wordmark = HtmlLoader.loadPngAsDataURI(context, R.drawable.wordmark2)
+ substitutionMap["%wordmark%"] = wordmark
+ putLayoutDirectionIntoMap(substitutionMap, context)
+ return HtmlLoader.loadResourceFile(context, R.raw.about, substitutionMap)
+ }
+
+ /**
+ * Load the content for focus:rights
+ */
+ fun loadRights(context: Context): String {
+ val resources = Locales.getLocalizedResources(context)
+ val substitutionMap: MutableMap<String, String> = ArrayMap()
+ val appName = context.resources.getString(R.string.app_name)
+ val mplUrl = "https://www.mozilla.org/en-US/MPL/"
+ val trademarkPolicyUrl = "https://www.mozilla.org/foundation/trademarks/policy/"
+ val gplUrl = "focus:gpl"
+ val trackingProtectionUrl = "https://wiki.mozilla.org/Security/Tracking_protection#Lists"
+ val licensesUrl = "focus:licenses"
+ val content1 = resources.getString(R.string.your_rights_content1, appName)
+ substitutionMap["%your-rights-content1%"] = content1
+ val content2 = resources.getString(R.string.your_rights_content2, appName, mplUrl)
+ substitutionMap["%your-rights-content2%"] = content2
+ val content3 = resources.getString(R.string.your_rights_content3, appName, trademarkPolicyUrl)
+ substitutionMap["%your-rights-content3%"] = content3
+ val content4 = resources.getString(R.string.your_rights_content4, appName, licensesUrl)
+ substitutionMap["%your-rights-content4%"] = content4
+ val content5 = resources.getString(R.string.your_rights_content5, appName, gplUrl, trackingProtectionUrl)
+ substitutionMap["%your-rights-content5%"] = content5
+ putLayoutDirectionIntoMap(substitutionMap, context)
+ return HtmlLoader.loadResourceFile(context, R.raw.rights, substitutionMap)
+ }
+
+ fun loadLicenses(context: Context): String {
+ return HtmlLoader.loadResourceFile(context, R.raw.licenses, emptyMap())
+ }
+
+ fun loadGPL(context: Context): String {
+ return HtmlLoader.loadResourceFile(context, R.raw.gpl, emptyMap())
+ }
+
+ private fun putLayoutDirectionIntoMap(substitutionMap: MutableMap<String, String>, context: Context) {
+ val direction: String = when (context.resources.configuration.layoutDirection) {
+ View.LAYOUT_DIRECTION_LTR -> {
+ "ltr"
+ }
+ View.LAYOUT_DIRECTION_RTL -> {
+ "rtl"
+ }
+ else -> {
+ "auto"
+ }
+ }
+ substitutionMap["%dir%"] = direction
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/BrowserMenuController.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/BrowserMenuController.kt
new file mode 100644
index 0000000000..7deb9d9c99
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/BrowserMenuController.kt
@@ -0,0 +1,190 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.browser.integration
+
+import androidx.annotation.VisibleForTesting
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import mozilla.components.browser.state.selector.findTabOrCustomTabOrSelectedTab
+import mozilla.components.browser.state.state.SessionState
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.feature.session.SessionUseCases
+import mozilla.components.feature.top.sites.TopSitesUseCases
+import org.mozilla.focus.GleanMetrics.BrowserMenu
+import org.mozilla.focus.GleanMetrics.CustomTabsToolbar
+import org.mozilla.focus.GleanMetrics.Shortcuts
+import org.mozilla.focus.ext.titleOrDomain
+import org.mozilla.focus.menu.ToolbarMenu
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.AppStore
+import org.mozilla.focus.state.Screen
+
+@Suppress("LongParameterList")
+class BrowserMenuController(
+ private val sessionUseCases: SessionUseCases,
+ private val appStore: AppStore,
+ private val store: BrowserStore,
+ private val topSitesUseCases: TopSitesUseCases,
+ private val currentTabId: String,
+ private val shareCallback: () -> Unit,
+ private val requestDesktopCallback: (isChecked: Boolean) -> Unit,
+ private val addToHomeScreenCallback: () -> Unit,
+ private val showFindInPageCallback: () -> Unit,
+ private val openInCallback: () -> Unit,
+ private val openInBrowser: () -> Unit,
+ private val showShortcutAddedSnackBar: () -> Unit,
+) {
+ @VisibleForTesting
+ private val currentTab: SessionState?
+ get() = store.state.findTabOrCustomTabOrSelectedTab(currentTabId)
+
+ @VisibleForTesting
+ internal var ioScope: CoroutineScope = CoroutineScope(Dispatchers.IO)
+
+ @Suppress("ComplexMethod")
+ fun handleMenuInteraction(item: ToolbarMenu.Item) {
+ recordBrowserMenuTelemetry(item)
+
+ when (item) {
+ is ToolbarMenu.Item.Back, ToolbarMenu.CustomTabItem.Back -> sessionUseCases.goBack(
+ currentTabId,
+ )
+ is ToolbarMenu.Item.Forward, ToolbarMenu.CustomTabItem.Forward -> sessionUseCases.goForward(
+ currentTabId,
+ )
+ is ToolbarMenu.Item.Reload, ToolbarMenu.CustomTabItem.Reload -> {
+ sessionUseCases.reload(currentTabId)
+ }
+ is ToolbarMenu.Item.Stop, ToolbarMenu.CustomTabItem.Stop -> sessionUseCases.stopLoading(
+ currentTabId,
+ )
+ is ToolbarMenu.Item.Share -> shareCallback()
+ is ToolbarMenu.Item.FindInPage, ToolbarMenu.CustomTabItem.FindInPage -> showFindInPageCallback()
+ is ToolbarMenu.Item.AddToShortcuts -> {
+ ioScope.launch {
+ currentTab?.let { state ->
+ topSitesUseCases.addPinnedSites(
+ title = state.content.titleOrDomain,
+ url = state.content.url,
+ )
+ }
+ }
+ showShortcutAddedSnackBar()
+ }
+ is ToolbarMenu.Item.RemoveFromShortcuts -> {
+ ioScope.launch {
+ currentTab?.let { state ->
+ appStore.state.topSites.find { it.url == state.content.url }
+ ?.let { topSite ->
+ topSitesUseCases.removeTopSites(topSite)
+ }
+ }
+ }
+ }
+ is ToolbarMenu.Item.RequestDesktop -> requestDesktopCallback(item.isChecked)
+ is ToolbarMenu.CustomTabItem.RequestDesktop -> requestDesktopCallback(item.isChecked)
+ is ToolbarMenu.Item.AddToHomeScreen, ToolbarMenu.CustomTabItem.AddToHomeScreen -> addToHomeScreenCallback()
+ is ToolbarMenu.CustomTabItem.OpenInBrowser -> openInBrowser()
+ is ToolbarMenu.Item.OpenInApp, ToolbarMenu.CustomTabItem.OpenInApp -> openInCallback()
+ is ToolbarMenu.Item.Settings -> appStore.dispatch(AppAction.OpenSettings(page = Screen.Settings.Page.Start))
+ }
+ }
+
+ @Suppress("LongMethod")
+ @VisibleForTesting
+ internal fun recordBrowserMenuTelemetry(item: ToolbarMenu.Item) {
+ when (item) {
+ is ToolbarMenu.Item.Back -> BrowserMenu.navigationToolbarAction.record(
+ BrowserMenu.NavigationToolbarActionExtra("back"),
+ )
+ is ToolbarMenu.Item.Forward -> BrowserMenu.navigationToolbarAction.record(
+ BrowserMenu.NavigationToolbarActionExtra("forward"),
+ )
+ is ToolbarMenu.Item.Reload -> {
+ BrowserMenu.navigationToolbarAction.record(
+ BrowserMenu.NavigationToolbarActionExtra("reload"),
+ )
+ }
+ is ToolbarMenu.Item.Stop -> BrowserMenu.navigationToolbarAction.record(
+ BrowserMenu.NavigationToolbarActionExtra("stop"),
+ )
+ is ToolbarMenu.Item.Share -> BrowserMenu.navigationToolbarAction.record(
+ BrowserMenu.NavigationToolbarActionExtra("share"),
+ )
+ is ToolbarMenu.Item.FindInPage -> BrowserMenu.browserMenuAction.record(
+ BrowserMenu.BrowserMenuActionExtra("find_in_page"),
+ )
+ is ToolbarMenu.Item.AddToShortcuts ->
+ Shortcuts.shortcutAddedCounter.add()
+ is ToolbarMenu.Item.RemoveFromShortcuts ->
+ Shortcuts.shortcutRemovedCounter["removed_from_browser_menu"].add()
+
+ is ToolbarMenu.Item.RequestDesktop -> {
+ if (item.isChecked) {
+ BrowserMenu.browserMenuAction.record(
+ BrowserMenu.BrowserMenuActionExtra("desktop_view_on"),
+ )
+ } else {
+ BrowserMenu.browserMenuAction.record(
+ BrowserMenu.BrowserMenuActionExtra("desktop_view_off"),
+ )
+ }
+ }
+ is ToolbarMenu.Item.AddToHomeScreen -> BrowserMenu.browserMenuAction.record(
+ BrowserMenu.BrowserMenuActionExtra("add_to_home_screen"),
+ )
+
+ is ToolbarMenu.Item.OpenInApp -> BrowserMenu.browserMenuAction.record(
+ BrowserMenu.BrowserMenuActionExtra("open_in_app"),
+ )
+ is ToolbarMenu.Item.Settings -> BrowserMenu.browserMenuAction.record(
+ BrowserMenu.BrowserMenuActionExtra("settings"),
+ )
+
+ // custom tabs
+ ToolbarMenu.CustomTabItem.Back -> CustomTabsToolbar.navigationToolbarAction.record(
+ CustomTabsToolbar.NavigationToolbarActionExtra("back"),
+ )
+ ToolbarMenu.CustomTabItem.Forward -> CustomTabsToolbar.navigationToolbarAction.record(
+ CustomTabsToolbar.NavigationToolbarActionExtra("forward"),
+ )
+ ToolbarMenu.CustomTabItem.Stop -> CustomTabsToolbar.navigationToolbarAction.record(
+ CustomTabsToolbar.NavigationToolbarActionExtra("stop"),
+ )
+
+ ToolbarMenu.CustomTabItem.Reload -> {
+ CustomTabsToolbar.navigationToolbarAction.record(
+ CustomTabsToolbar.NavigationToolbarActionExtra("reload"),
+ )
+ }
+
+ ToolbarMenu.CustomTabItem.AddToHomeScreen -> CustomTabsToolbar.browserMenuAction.record(
+ CustomTabsToolbar.BrowserMenuActionExtra("add_to_home_screen"),
+ )
+ ToolbarMenu.CustomTabItem.OpenInApp -> CustomTabsToolbar.browserMenuAction.record(
+ CustomTabsToolbar.BrowserMenuActionExtra("open_in_app"),
+ )
+ ToolbarMenu.CustomTabItem.OpenInBrowser -> CustomTabsToolbar.browserMenuAction.record(
+ CustomTabsToolbar.BrowserMenuActionExtra("open_in_browser"),
+ )
+
+ ToolbarMenu.CustomTabItem.FindInPage -> CustomTabsToolbar.browserMenuAction.record(
+ CustomTabsToolbar.BrowserMenuActionExtra("find_in_page"),
+ )
+ is ToolbarMenu.CustomTabItem.RequestDesktop -> {
+ if (item.isChecked) {
+ CustomTabsToolbar.browserMenuAction.record(
+ CustomTabsToolbar.BrowserMenuActionExtra("desktop_view_on"),
+ )
+ } else {
+ CustomTabsToolbar.browserMenuAction.record(
+ CustomTabsToolbar.BrowserMenuActionExtra("desktop_view_off"),
+ )
+ }
+ }
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/BrowserToolbarIntegration.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/BrowserToolbarIntegration.kt
new file mode 100644
index 0000000000..e3f8db2f89
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/BrowserToolbarIntegration.kt
@@ -0,0 +1,501 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.browser.integration
+
+import android.graphics.Color
+import android.widget.LinearLayout
+import androidx.annotation.VisibleForTesting
+import androidx.appcompat.content.res.AppCompatResources
+import androidx.appcompat.widget.AppCompatEditText
+import androidx.compose.material.Text
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.style.TextDecoration
+import androidx.compose.ui.unit.dp
+import androidx.core.content.ContextCompat
+import androidx.core.content.res.ResourcesCompat
+import androidx.core.view.children
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.cancel
+import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.distinctUntilChangedBy
+import kotlinx.coroutines.flow.mapNotNull
+import mozilla.components.browser.state.selector.findCustomTabOrSelectedTab
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.browser.toolbar.BrowserToolbar
+import mozilla.components.browser.toolbar.display.DisplayToolbar.Indicators
+import mozilla.components.compose.cfr.CFRPopup
+import mozilla.components.compose.cfr.CFRPopupProperties
+import mozilla.components.feature.customtabs.CustomTabsToolbarFeature
+import mozilla.components.feature.session.SessionUseCases
+import mozilla.components.feature.tabs.CustomTabsUseCases
+import mozilla.components.feature.tabs.toolbar.TabCounterToolbarButton
+import mozilla.components.feature.toolbar.ToolbarBehaviorController
+import mozilla.components.feature.toolbar.ToolbarPresenter
+import mozilla.components.lib.state.ext.flowScoped
+import mozilla.components.support.base.feature.LifecycleAwareFeature
+import mozilla.components.support.ktx.android.view.hideKeyboard
+import org.mozilla.focus.GleanMetrics.TabCount
+import org.mozilla.focus.GleanMetrics.TrackingProtection
+import org.mozilla.focus.R
+import org.mozilla.focus.cookiebanner.CookieBannerOption
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.isCustomTab
+import org.mozilla.focus.ext.isTablet
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.fragment.BrowserFragment
+import org.mozilla.focus.menu.browser.CustomTabMenu
+import org.mozilla.focus.nimbus.FocusNimbus
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+import org.mozilla.focus.ui.theme.focusTypography
+import org.mozilla.focus.utils.ClickableSubstringLink
+
+@Suppress("LongParameterList", "LargeClass", "TooManyFunctions")
+class BrowserToolbarIntegration(
+ private val store: BrowserStore,
+ private val toolbar: BrowserToolbar,
+ private val fragment: BrowserFragment,
+ controller: BrowserMenuController,
+ sessionUseCases: SessionUseCases,
+ customTabsUseCases: CustomTabsUseCases,
+ private val onUrlLongClicked: () -> Boolean,
+ private val eraseActionListener: () -> Unit,
+ private val tabCounterListener: () -> Unit,
+ private val customTabId: String? = null,
+ inTesting: Boolean = false,
+) : LifecycleAwareFeature {
+ private val presenter = ToolbarPresenter(
+ toolbar,
+ store,
+ customTabId,
+ )
+
+ @VisibleForTesting
+ internal var securityIndicatorScope: CoroutineScope? = null
+
+ @VisibleForTesting
+ internal var eraseTabsCfrScope: CoroutineScope? = null
+
+ @VisibleForTesting
+ internal var trackingProtectionCfrScope: CoroutineScope? = null
+
+ @VisibleForTesting
+ internal var cookieBannerCfrScope: CoroutineScope? = null
+
+ private var tabsCounterScope: CoroutineScope? = null
+ private var customTabsFeature: CustomTabsToolbarFeature? = null
+ private var navigationButtonsIntegration: NavigationButtonsIntegration? = null
+ private val eraseAction = BrowserToolbar.Button(
+ imageDrawable = AppCompatResources.getDrawable(
+ toolbar.context,
+ R.drawable.mozac_ic_delete_24,
+ )!!,
+ contentDescription = toolbar.context.getString(R.string.content_description_erase),
+ iconTintColorResource = R.color.primaryText,
+ listener = {
+ val openedTabs = store.state.tabs.size
+ TabCount.eraseButtonTapped.record(TabCount.EraseButtonTappedExtra(openedTabs))
+
+ eraseActionListener.invoke()
+ },
+ )
+ private val tabsAction = TabCounterToolbarButton(
+ lifecycleOwner = fragment,
+ showTabs = {
+ toolbar.hideKeyboard()
+ tabCounterListener.invoke()
+ },
+ store = store,
+ )
+
+ @VisibleForTesting
+ internal var toolbarController = ToolbarBehaviorController(toolbar, store, customTabId)
+
+ init {
+ val context = toolbar.context
+
+ toolbar.display.apply {
+ colors = colors.copy(
+ hint = ContextCompat.getColor(toolbar.context, R.color.urlBarHintText),
+ securityIconInsecure = Color.TRANSPARENT,
+ text = ContextCompat.getColor(toolbar.context, R.color.primaryText),
+ menu = ContextCompat.getColor(toolbar.context, R.color.primaryText),
+ )
+
+ addTrackingProtectionIndicator()
+
+ displayIndicatorSeparator = false
+
+ setOnSiteSecurityClickedListener {
+ TrackingProtection.toolbarShieldClicked.add()
+ fragment.initCookieBanner()
+ fragment.showTrackingProtectionPanel()
+ }
+
+ onUrlClicked = {
+ fragment.edit()
+ false // Do not switch to edit mode
+ }
+
+ setOnUrlLongClickListener { onUrlLongClicked() }
+
+ icons = icons.copy(
+ trackingProtectionTrackersBlocked = AppCompatResources.getDrawable(
+ context,
+ R.drawable.mozac_ic_shield_24,
+ )!!,
+ trackingProtectionNothingBlocked = AppCompatResources.getDrawable(
+ context,
+ R.drawable.mozac_ic_shield_24,
+ )!!,
+ trackingProtectionException = AppCompatResources.getDrawable(
+ context,
+ R.drawable.mozac_ic_shield_slash_24,
+ )!!,
+ )
+ }
+
+ toolbar.display.setOnTrackingProtectionClickedListener {
+ TrackingProtection.toolbarShieldClicked.add()
+ fragment.initCookieBanner()
+ fragment.showTrackingProtectionPanel()
+ }
+
+ if (customTabId != null) {
+ val menu = CustomTabMenu(
+ context = fragment.requireContext(),
+ store = store,
+ currentTabId = customTabId,
+ onItemTapped = { controller.handleMenuInteraction(it) },
+ )
+ customTabsFeature = CustomTabsToolbarFeature(
+ store,
+ toolbar,
+ sessionId = customTabId,
+ useCases = customTabsUseCases,
+ menuBuilder = menu.menuBuilder,
+ window = fragment.activity?.window,
+ menuItemIndex = menu.menuBuilder.items.size - 1,
+ closeListener = { fragment.closeCustomTab() },
+ updateTheme = true,
+ forceActionButtonTinting = false,
+ )
+ }
+
+ val isCustomTab = store.state.findCustomTabOrSelectedTab(customTabId)?.isCustomTab()
+
+ if (context.isTablet() && isCustomTab == false) {
+ navigationButtonsIntegration = NavigationButtonsIntegration(
+ context,
+ store,
+ toolbar,
+ sessionUseCases,
+ customTabId,
+ )
+ }
+
+ if (isCustomTab == false) {
+ toolbar.addNavigationAction(eraseAction)
+ if (!inTesting) {
+ setUrlBackground()
+ }
+ }
+ }
+
+ // Use the same background for display/edit modes.
+ private fun setUrlBackground() {
+ val urlBackground = ResourcesCompat.getDrawable(
+ fragment.resources,
+ R.drawable.toolbar_url_background,
+ fragment.context?.theme,
+ )
+ toolbar.display.setUrlBackground(urlBackground)
+ }
+
+ private fun setBrowserActionButtons() {
+ tabsCounterScope = store.flowScoped { flow ->
+ flow.distinctUntilChangedBy { state -> state.tabs.size > 1 }
+ .collect { state ->
+ if (state.tabs.size > 1) {
+ toolbar.addBrowserAction(tabsAction)
+ } else {
+ toolbar.removeBrowserAction(tabsAction)
+ }
+ }
+ }
+ }
+
+ override fun start() {
+ presenter.start()
+ toolbarController.start()
+ customTabsFeature?.start()
+ navigationButtonsIntegration?.start()
+ observerSecurityIndicatorChanges()
+ if (store.state.findCustomTabOrSelectedTab(customTabId)?.isCustomTab() == false) {
+ setBrowserActionButtons()
+ observeEraseCfr()
+ }
+
+ if (fragment.requireContext().settings.shouldShowCookieBannerCfr &&
+ fragment.requireContext().settings.isCookieBannerEnable &&
+ fragment.requireContext().settings.getCurrentCookieBannerOptionFromSharePref() ==
+ CookieBannerOption.CookieBannerRejectAll()
+ ) {
+ observeCookieBannerCfr()
+ }
+
+ observeTrackingProtectionCfr()
+ }
+
+ @VisibleForTesting
+ internal fun observeEraseCfr() {
+ eraseTabsCfrScope = fragment.components?.appStore?.flowScoped { flow ->
+ flow.mapNotNull { state -> state.showEraseTabsCfr }
+ .distinctUntilChanged()
+ .collect { showEraseCfr ->
+ if (showEraseCfr) {
+ val eraseActionView =
+ toolbar.findViewById<LinearLayout>(R.id.mozac_browser_toolbar_navigation_actions)
+ .children
+ .last()
+ CFRPopup(
+ anchor = eraseActionView,
+ properties = CFRPopupProperties(
+ popupWidth = 256.dp,
+ popupAlignment = CFRPopup.PopupAlignment.INDICATOR_CENTERED_IN_ANCHOR,
+ popupBodyColors = listOf(
+ ContextCompat.getColor(
+ fragment.requireContext(),
+ R.color.cfr_pop_up_shape_end_color,
+ ),
+ ContextCompat.getColor(
+ fragment.requireContext(),
+ R.color.cfr_pop_up_shape_start_color,
+ ),
+ ),
+ dismissButtonColor = ContextCompat.getColor(
+ fragment.requireContext(),
+ R.color.cardview_light_background,
+ ),
+ popupVerticalOffset = 0.dp,
+ ),
+ onDismiss = { onDismissEraseTabsCfr() },
+ text = {
+ Text(
+ style = focusTypography.cfrTextStyle,
+ text = fragment.getString(R.string.cfr_for_toolbar_delete_icon2),
+ color = colorResource(R.color.cfr_text_color),
+ )
+ },
+ ).apply {
+ show()
+ }
+ }
+ }
+ }
+ }
+
+ private fun onDismissEraseTabsCfr() {
+ fragment.components?.appStore?.dispatch(AppAction.ShowEraseTabsCfrChange(false))
+ }
+
+ @VisibleForTesting
+ internal fun observeCookieBannerCfr() {
+ cookieBannerCfrScope = fragment.components?.appStore?.flowScoped { flow ->
+ flow.mapNotNull { state -> state.showCookieBannerCfr }
+ .distinctUntilChanged()
+ .collect { showCookieBannerCfr ->
+ if (showCookieBannerCfr) {
+ CFRPopup(
+ anchor = toolbar.findViewById<AppCompatEditText>(R.id.mozac_browser_toolbar_background),
+ properties = CFRPopupProperties(
+ popupWidth = 256.dp,
+ popupAlignment = CFRPopup.PopupAlignment.BODY_TO_ANCHOR_START,
+ popupBodyColors = listOf(
+ ContextCompat.getColor(
+ fragment.requireContext(),
+ R.color.cfr_pop_up_shape_end_color,
+ ),
+ ContextCompat.getColor(
+ fragment.requireContext(),
+ R.color.cfr_pop_up_shape_start_color,
+ ),
+ ),
+ dismissButtonColor = ContextCompat.getColor(
+ fragment.requireContext(),
+ R.color.cardview_light_background,
+ ),
+ popupVerticalOffset = 0.dp,
+ indicatorArrowStartOffset = 10.dp,
+ ),
+ onDismiss = { onDismissCookieBannerCfr() },
+ text = {
+ val textCookieBannerCfr = stringResource(
+ id = R.string.cfr_cookie_banner,
+ LocalContext.current.getString(R.string.onboarding_short_app_name),
+ LocalContext.current.getString(R.string.cfr_cookie_banner_link),
+ )
+ ClickableSubstringLink(
+ text = textCookieBannerCfr,
+ style = focusTypography.cfrCookieBannerTextStyle,
+ linkTextDecoration = TextDecoration.Underline,
+ clickableStartIndex = textCookieBannerCfr.indexOf(
+ LocalContext.current.getString(
+ R.string.cfr_cookie_banner_link,
+ ),
+ ),
+ clickableEndIndex = textCookieBannerCfr.length,
+ onClick = {
+ fragment.requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(Screen.Settings.Page.CookieBanner),
+ )
+ onDismissCookieBannerCfr()
+ },
+ )
+ },
+ ).apply {
+ show()
+ stopObserverCookieBannerCfrChanges()
+ }
+ }
+ }
+ }
+ }
+
+ @VisibleForTesting
+ internal fun observeTrackingProtectionCfr() {
+ trackingProtectionCfrScope = fragment.components?.appStore?.flowScoped { flow ->
+ flow.mapNotNull { state -> state.showTrackingProtectionCfrForTab }
+ .distinctUntilChanged()
+ .collect { showTrackingProtectionCfrForTab ->
+ if (showTrackingProtectionCfrForTab[store.state.selectedTabId] == true) {
+ CFRPopup(
+ anchor = toolbar.findViewById(
+ R.id.mozac_browser_toolbar_tracking_protection_indicator,
+ ),
+ properties = CFRPopupProperties(
+ popupWidth = 256.dp,
+ popupAlignment = CFRPopup.PopupAlignment.INDICATOR_CENTERED_IN_ANCHOR,
+ popupBodyColors = listOf(
+ ContextCompat.getColor(
+ fragment.requireContext(),
+ R.color.cfr_pop_up_shape_end_color,
+ ),
+ ContextCompat.getColor(
+ fragment.requireContext(),
+ R.color.cfr_pop_up_shape_start_color,
+ ),
+ ),
+ dismissButtonColor = ContextCompat.getColor(
+ fragment.requireContext(),
+ R.color.cardview_light_background,
+ ),
+ popupVerticalOffset = 0.dp,
+ ),
+ onDismiss = { onDismissTrackingProtectionCfr() },
+ text = {
+ Text(
+ style = focusTypography.cfrTextStyle,
+ text = fragment.getString(R.string.cfr_for_toolbar_shield_icon2),
+ color = colorResource(R.color.cfr_text_color),
+ )
+ },
+ ).apply {
+ show()
+ }
+ }
+ }
+ }
+ }
+
+ private fun onDismissCookieBannerCfr() {
+ fragment.components?.appStore?.dispatch(
+ AppAction.ShowCookieBannerCfrChange(
+ false,
+ ),
+ )
+ fragment.requireContext().settings.shouldShowCookieBannerCfr = false
+ }
+
+ private fun onDismissTrackingProtectionCfr() {
+ store.state.selectedTabId?.let {
+ fragment.components?.appStore?.dispatch(
+ AppAction.ShowTrackingProtectionCfrChange(
+ mapOf(
+ it to false,
+ ),
+ ),
+ )
+ }
+ fragment.requireContext().settings.shouldShowCfrForTrackingProtection = false
+ FocusNimbus.features.onboarding.recordExposure()
+ fragment.components?.appStore?.dispatch(AppAction.ShowEraseTabsCfrChange(true))
+ }
+
+ @VisibleForTesting
+ internal fun observerSecurityIndicatorChanges() {
+ securityIndicatorScope = store.flowScoped { flow ->
+ flow.mapNotNull { state -> state.findCustomTabOrSelectedTab(customTabId) }
+ .distinctUntilChangedBy { tab -> tab.content.securityInfo }
+ .collect {
+ val secure = it.content.securityInfo.secure
+ val url = it.content.url
+ if (secure && Indicators.SECURITY in toolbar.display.indicators) {
+ addTrackingProtectionIndicator()
+ } else if (!secure && Indicators.SECURITY !in toolbar.display.indicators &&
+ !url.trim().startsWith("about:")
+ ) {
+ addSecurityIndicator()
+ }
+ }
+ }
+ }
+
+ override fun stop() {
+ presenter.stop()
+ toolbarController.stop()
+ customTabsFeature?.stop()
+ navigationButtonsIntegration?.stop()
+ stopObserverSecurityIndicatorChanges()
+ toolbar.removeBrowserAction(tabsAction)
+ tabsCounterScope?.cancel()
+ stopObserverEraseTabsCfrChanges()
+ stopObserverTrackingProtectionCfrChanges()
+ stopObserverCookieBannerCfrChanges()
+ }
+
+ @VisibleForTesting
+ internal fun stopObserverTrackingProtectionCfrChanges() {
+ trackingProtectionCfrScope?.cancel()
+ }
+
+ @VisibleForTesting
+ internal fun stopObserverEraseTabsCfrChanges() {
+ eraseTabsCfrScope?.cancel()
+ }
+
+ @VisibleForTesting
+ internal fun stopObserverSecurityIndicatorChanges() {
+ securityIndicatorScope?.cancel()
+ }
+
+ @VisibleForTesting
+ internal fun stopObserverCookieBannerCfrChanges() {
+ cookieBannerCfrScope?.cancel()
+ }
+
+ @VisibleForTesting
+ internal fun addSecurityIndicator() {
+ toolbar.display.indicators = listOf(Indicators.SECURITY)
+ }
+
+ @VisibleForTesting
+ internal fun addTrackingProtectionIndicator() {
+ toolbar.display.indicators = listOf(Indicators.TRACKING_PROTECTION)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/FindInPageIntegration.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/FindInPageIntegration.kt
new file mode 100644
index 0000000000..18742f2994
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/FindInPageIntegration.kt
@@ -0,0 +1,53 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.browser.integration
+
+import androidx.core.view.isVisible
+import mozilla.components.browser.state.state.SessionState
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.browser.toolbar.BrowserToolbar
+import mozilla.components.concept.engine.EngineView
+import mozilla.components.feature.findinpage.FindInPageFeature
+import mozilla.components.feature.findinpage.view.FindInPageBar
+import mozilla.components.support.base.feature.LifecycleAwareFeature
+import mozilla.components.support.base.feature.UserInteractionHandler
+
+class FindInPageIntegration(
+ store: BrowserStore,
+ private val findInPageView: FindInPageBar,
+ private val browserToolbar: BrowserToolbar,
+ engineView: EngineView,
+) : LifecycleAwareFeature, UserInteractionHandler {
+ private val feature = FindInPageFeature(
+ store,
+ findInPageView,
+ engineView,
+ ::hide,
+ )
+
+ override fun start() {
+ feature.start()
+ }
+
+ override fun stop() {
+ feature.stop()
+ }
+
+ override fun onBackPressed(): Boolean {
+ return feature.onBackPressed()
+ }
+
+ fun show(sessionState: SessionState) {
+ findInPageView.isVisible = true
+ // Hiding the toolbar prevents Talkback from dictating its elements.
+ browserToolbar.isVisible = false
+ feature.bind(sessionState)
+ }
+
+ fun hide() {
+ findInPageView.isVisible = false
+ browserToolbar.isVisible = true
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/FullScreenIntegration.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/FullScreenIntegration.kt
new file mode 100644
index 0000000000..a003636912
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/FullScreenIntegration.kt
@@ -0,0 +1,133 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.browser.integration
+
+import android.app.Activity
+import android.os.Build
+import android.view.View
+import androidx.annotation.VisibleForTesting
+import androidx.core.view.isVisible
+import androidx.fragment.app.FragmentManager
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.browser.toolbar.BrowserToolbar
+import mozilla.components.concept.engine.EngineView
+import mozilla.components.feature.prompts.dialog.FullScreenNotification
+import mozilla.components.feature.prompts.dialog.FullScreenNotificationDialog
+import mozilla.components.feature.session.FullScreenFeature
+import mozilla.components.feature.session.SessionUseCases
+import mozilla.components.support.base.feature.LifecycleAwareFeature
+import mozilla.components.support.base.feature.UserInteractionHandler
+import mozilla.components.support.ktx.android.view.enterImmersiveMode
+import mozilla.components.support.ktx.android.view.exitImmersiveMode
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.disableDynamicBehavior
+import org.mozilla.focus.ext.enableDynamicBehavior
+import org.mozilla.focus.ext.hide
+import org.mozilla.focus.ext.showAsFixed
+import org.mozilla.focus.utils.Settings
+
+@Suppress("LongParameterList")
+class FullScreenIntegration(
+ val activity: Activity,
+ val store: BrowserStore,
+ tabId: String?,
+ sessionUseCases: SessionUseCases,
+ private val settings: Settings,
+ private val toolbarView: BrowserToolbar,
+ private val statusBar: View,
+ private val engineView: EngineView,
+ private val parentFragmentManager: FragmentManager,
+) : LifecycleAwareFeature, UserInteractionHandler {
+ @VisibleForTesting
+ internal var feature = FullScreenFeature(
+ store,
+ sessionUseCases,
+ tabId,
+ ::viewportFitChanged,
+ ::fullScreenChanged,
+ )
+
+ override fun start() {
+ feature.start()
+ }
+
+ override fun stop() {
+ feature.stop()
+ }
+
+ @VisibleForTesting
+ internal fun fullScreenChanged(
+ enabled: Boolean,
+ fullScreenNotification: FullScreenNotification =
+ FullScreenNotificationDialog(R.layout.dialog_full_screen_notification),
+ ) {
+ if (enabled) {
+ enterBrowserFullscreen()
+ statusBar.isVisible = false
+
+ fullScreenNotification.show(parentFragmentManager)
+
+ switchToImmersiveMode()
+ } else {
+ // If the video is in PiP, but is not in fullscreen anymore we should move the task containing
+ // this activity to the back of the activity stack
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && activity.isInPictureInPictureMode) {
+ activity.moveTaskToBack(false)
+ }
+ statusBar.isVisible = true
+ exitBrowserFullscreen()
+
+ exitImmersiveMode()
+ }
+ }
+
+ override fun onBackPressed(): Boolean {
+ return feature.onBackPressed()
+ }
+
+ @VisibleForTesting
+ internal fun viewportFitChanged(viewportFit: Int) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+ activity.window.attributes.layoutInDisplayCutoutMode = viewportFit
+ }
+ }
+
+ /**
+ * Hide system bars. They can be revealed temporarily with system gestures, such as swiping from
+ * the top of the screen. These transient system bars will overlay app’s content, may have some
+ * degree of transparency, and will automatically hide after a short timeout.
+ */
+ @VisibleForTesting
+ internal fun switchToImmersiveMode() {
+ activity.enterImmersiveMode()
+ }
+
+ /**
+ * Show the system bars again.
+ */
+ fun exitImmersiveMode() {
+ activity.exitImmersiveMode()
+ }
+
+ @VisibleForTesting
+ internal fun enterBrowserFullscreen() {
+ if (settings.isAccessibilityEnabled()) {
+ toolbarView.hide(engineView)
+ } else {
+ toolbarView.collapse()
+ toolbarView.disableDynamicBehavior(engineView)
+ }
+ }
+
+ @VisibleForTesting
+ internal fun exitBrowserFullscreen() {
+ if (settings.isAccessibilityEnabled()) {
+ toolbarView.showAsFixed(activity, engineView)
+ } else {
+ toolbarView.enableDynamicBehavior(activity, engineView)
+ toolbarView.expand()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/NavigationButtonsIntegration.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/NavigationButtonsIntegration.kt
new file mode 100644
index 0000000000..056d8bfb3a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/browser/integration/NavigationButtonsIntegration.kt
@@ -0,0 +1,123 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.browser.integration
+
+import android.content.Context
+import androidx.core.content.ContextCompat
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.cancel
+import kotlinx.coroutines.flow.collect
+import kotlinx.coroutines.flow.map
+import mozilla.components.browser.state.selector.findCustomTabOrSelectedTab
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.browser.toolbar.BrowserToolbar
+import mozilla.components.feature.session.SessionUseCases
+import mozilla.components.lib.state.ext.flowScoped
+import mozilla.components.support.base.feature.LifecycleAwareFeature
+import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifAnyChanged
+import mozilla.components.support.utils.ColorUtils
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.ifCustomTab
+import org.mozilla.focus.theme.resolveAttribute
+
+class NavigationButtonsIntegration(
+ val context: Context,
+ val store: BrowserStore,
+ val toolbar: BrowserToolbar,
+ private val sessionUseCases: SessionUseCases,
+ private val customTabId: String?,
+) : LifecycleAwareFeature {
+ private var scope: CoroutineScope? = null
+
+ private var enabledColorRes = context.theme.resolveAttribute(R.attr.primaryText)
+ private var disabledColorRes = context.theme.resolveAttribute(R.attr.disabled)
+
+ init {
+ store.state.findCustomTabOrSelectedTab(customTabId)?.ifCustomTab()?.let { sessionState ->
+ sessionState.config.colorSchemes?.defaultColorSchemeParams?.toolbarColor?.let { color ->
+ if (!ColorUtils.isDark(color)) {
+ enabledColorRes = R.color.enabled_button_tint
+ disabledColorRes = R.color.disabled
+ }
+ }
+ }
+
+ val backButton = BrowserToolbar.TwoStateButton(
+ primaryImage = ContextCompat.getDrawable(context, R.drawable.mozac_ic_back_24)!!,
+ primaryContentDescription = context.getString(R.string.content_description_back),
+ primaryImageTintResource = enabledColorRes,
+ isInPrimaryState = {
+ store.state.findCustomTabOrSelectedTab(customTabId)?.content?.canGoBack
+ ?: false
+ },
+ secondaryImageTintResource = disabledColorRes,
+ disableInSecondaryState = true,
+ longClickListener = null,
+ listener = {
+ sessionUseCases.goBack(store.state.findCustomTabOrSelectedTab(customTabId)?.id)
+ },
+ )
+ toolbar.addNavigationAction(backButton)
+
+ val forwardButton = BrowserToolbar.TwoStateButton(
+ primaryImage = ContextCompat.getDrawable(context, R.drawable.mozac_ic_forward_24)!!,
+ primaryContentDescription = context.getString(R.string.content_description_forward),
+ primaryImageTintResource = enabledColorRes,
+ isInPrimaryState = {
+ store.state.findCustomTabOrSelectedTab(customTabId)?.content?.canGoForward
+ ?: false
+ },
+ secondaryImageTintResource = disabledColorRes,
+ disableInSecondaryState = true,
+ longClickListener = null,
+ listener = {
+ sessionUseCases.goForward(store.state.findCustomTabOrSelectedTab(customTabId)?.id)
+ },
+ )
+ toolbar.addNavigationAction(forwardButton)
+
+ val reloadOrStopButton = BrowserToolbar.TwoStateButton(
+ primaryImage = ContextCompat.getDrawable(context, R.drawable.mozac_ic_stop)!!,
+ secondaryImage = ContextCompat.getDrawable(context, R.drawable.mozac_ic_arrow_clockwise_24)!!,
+ primaryContentDescription = context.getString(R.string.content_description_stop),
+ secondaryContentDescription = context.getString(R.string.content_description_reload),
+ primaryImageTintResource = enabledColorRes,
+ isInPrimaryState = {
+ store.state.findCustomTabOrSelectedTab(customTabId)?.content?.loading ?: false
+ },
+ secondaryImageTintResource = enabledColorRes,
+ disableInSecondaryState = false,
+ longClickListener = null,
+ listener = {
+ val tab = store.state.findCustomTabOrSelectedTab(customTabId)
+ ?: return@TwoStateButton
+ if (tab.content.loading) {
+ sessionUseCases.stopLoading(tab.id)
+ } else {
+ sessionUseCases.reload(tab.id)
+ }
+ },
+ )
+ toolbar.addNavigationAction(reloadOrStopButton)
+ }
+
+ override fun start() {
+ scope = store.flowScoped { flow ->
+ flow.map { state -> state.findCustomTabOrSelectedTab(customTabId) }
+ .ifAnyChanged { tab ->
+ arrayOf(
+ tab?.content?.canGoBack,
+ tab?.content?.canGoForward,
+ tab?.content?.loading,
+ )
+ }
+ .collect { toolbar.invalidateActions() }
+ }
+ }
+
+ override fun stop() {
+ scope?.cancel()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cfr/CfrMiddleware.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cfr/CfrMiddleware.kt
new file mode 100644
index 0000000000..16ea8393f6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cfr/CfrMiddleware.kt
@@ -0,0 +1,123 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.cfr
+
+import android.content.Context
+import androidx.core.net.toUri
+import mozilla.components.browser.state.action.BrowserAction
+import mozilla.components.browser.state.action.ContentAction
+import mozilla.components.browser.state.action.CookieBannerAction
+import mozilla.components.browser.state.action.TrackingProtectionAction
+import mozilla.components.browser.state.selector.findTabOrCustomTabOrSelectedTab
+import mozilla.components.browser.state.state.BrowserState
+import mozilla.components.concept.engine.EngineSession
+import mozilla.components.lib.state.Middleware
+import mozilla.components.lib.state.MiddlewareContext
+import mozilla.components.service.glean.private.NoExtras
+import org.mozilla.focus.GleanMetrics.CookieBanner
+import org.mozilla.focus.cookiebanner.CookieBannerOption
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.ext.truncatedHost
+import org.mozilla.focus.nimbus.FocusNimbus
+import org.mozilla.focus.nimbus.Onboarding
+import org.mozilla.focus.state.AppAction
+
+/**
+ * Middleware used to intercept browser store actions in order to decide when should we display a specific CFR
+ */
+class CfrMiddleware(private val appContext: Context) : Middleware<BrowserState, BrowserAction> {
+ private val onboardingFeature = FocusNimbus.features.onboarding
+ private lateinit var onboardingConfig: Onboarding
+ private val components = appContext.components
+ private var isCurrentTabSecure = false
+ private var tpExposureAlreadyRecorded = false
+
+ override fun invoke(
+ context: MiddlewareContext<BrowserState, BrowserAction>,
+ next: (BrowserAction) -> Unit,
+ action: BrowserAction,
+ ) {
+ onboardingConfig = onboardingFeature.value()
+ if (onboardingConfig.isCfrEnabled) {
+ next(action)
+ showCookieBannerCfr(action)
+ showTrackingProtectionCfr(action, context)
+ } else {
+ next(action)
+ }
+ }
+
+ private fun showCookieBannerCfr(
+ action: BrowserAction,
+ ) {
+ if (action is CookieBannerAction.UpdateStatusAction &&
+ shouldShowCookieBannerCfr(action) &&
+ otherCfrHasBeenShown()
+ ) {
+ CookieBanner.cookieBannerCfrShown.record(NoExtras())
+ components.appStore.dispatch(
+ AppAction.ShowCookieBannerCfrChange(true),
+ )
+ }
+ }
+
+ private fun showTrackingProtectionCfr(
+ action: BrowserAction,
+ context: MiddlewareContext<BrowserState, BrowserAction>,
+ ) {
+ if (action is ContentAction.UpdateSecurityInfoAction) {
+ isCurrentTabSecure = action.securityInfo.secure
+ }
+ if (shouldShowCfrForTrackingProtection(action = action, browserState = context.state)) {
+ if (!tpExposureAlreadyRecorded) {
+ FocusNimbus.features.onboarding.recordExposure()
+ tpExposureAlreadyRecorded = true
+ }
+
+ components.appStore.dispatch(
+ AppAction.ShowTrackingProtectionCfrChange(
+ mapOf((action as TrackingProtectionAction.TrackerBlockedAction).tabId to true),
+ ),
+ )
+ }
+ }
+
+ private fun isMozillaUrl(browserState: BrowserState): Boolean {
+ return browserState.findTabOrCustomTabOrSelectedTab(
+ browserState.selectedTabId,
+ )?.content?.url?.toUri()?.truncatedHost()?.substringBefore(".") == ("mozilla")
+ }
+
+ private fun isActionSecure(action: BrowserAction) =
+ action is TrackingProtectionAction.TrackerBlockedAction && isCurrentTabSecure
+
+ private fun shouldShowCfrForTrackingProtection(
+ action: BrowserAction,
+ browserState: BrowserState,
+ ) = (
+ isActionSecure(action = action) &&
+ !isMozillaUrl(browserState = browserState) &&
+ components.settings.shouldShowCfrForTrackingProtection &&
+ !components.appStore.state.showEraseTabsCfr
+ )
+
+ private fun otherCfrHasBeenShown(): Boolean {
+ return (
+ !appContext.settings.shouldShowCfrForTrackingProtection &&
+ !components.appStore.state.showEraseTabsCfr
+ )
+ }
+
+ private fun shouldShowCookieBannerCfr(action: CookieBannerAction.UpdateStatusAction): Boolean {
+ return (
+ !appContext.settings.isFirstRun &&
+ appContext.settings.shouldShowCookieBannerCfr &&
+ appContext.settings.isCookieBannerEnable &&
+ appContext.settings.getCurrentCookieBannerOptionFromSharePref() ==
+ CookieBannerOption.CookieBannerRejectAll() &&
+ action.status == EngineSession.CookieBannerHandlingStatus.HANDLED
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/components/EngineProvider.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/components/EngineProvider.kt
new file mode 100644
index 0000000000..3b747b7711
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/components/EngineProvider.kt
@@ -0,0 +1,59 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.components
+
+import android.content.Context
+import androidx.datastore.preferences.preferencesDataStore
+import mozilla.components.browser.engine.gecko.GeckoEngine
+import mozilla.components.browser.engine.gecko.cookiebanners.GeckoCookieBannersStorage
+import mozilla.components.browser.engine.gecko.cookiebanners.ReportSiteDomainsRepository
+import mozilla.components.browser.engine.gecko.fetch.GeckoViewFetchClient
+import mozilla.components.concept.engine.DefaultSettings
+import mozilla.components.concept.engine.Engine
+import mozilla.components.concept.fetch.Client
+import mozilla.components.lib.crash.handler.CrashHandlerService
+import org.mozilla.focus.utils.AppConstants
+import org.mozilla.geckoview.GeckoRuntime
+import org.mozilla.geckoview.GeckoRuntimeSettings
+
+object EngineProvider {
+ private var runtime: GeckoRuntime? = null
+ private val Context.dataStore by preferencesDataStore(
+ name = ReportSiteDomainsRepository.REPORT_SITE_DOMAINS_REPOSITORY_NAME,
+ )
+
+ @Synchronized
+ private fun getOrCreateRuntime(context: Context): GeckoRuntime {
+ if (runtime == null) {
+ val builder = GeckoRuntimeSettings.Builder()
+
+ builder.crashHandler(CrashHandlerService::class.java)
+ builder.aboutConfigEnabled(
+ AppConstants.isDevOrNightlyBuild || AppConstants.isBetaBuild,
+ )
+
+ runtime = GeckoRuntime.create(context, builder.build())
+ }
+
+ return runtime!!
+ }
+
+ fun createEngine(context: Context, defaultSettings: DefaultSettings): Engine {
+ val runtime = getOrCreateRuntime(context)
+
+ return GeckoEngine(context, defaultSettings, runtime)
+ }
+
+ fun createCookieBannerStorage(context: Context): GeckoCookieBannersStorage {
+ val runtime = getOrCreateRuntime(context)
+
+ return GeckoCookieBannersStorage(runtime, ReportSiteDomainsRepository(context.dataStore))
+ }
+
+ fun createClient(context: Context): Client {
+ val runtime = getOrCreateRuntime(context)
+ return GeckoViewFetchClient(context, runtime)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/contextmenu/ContextMenuCandidates.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/contextmenu/ContextMenuCandidates.kt
new file mode 100644
index 0000000000..0620e67699
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/contextmenu/ContextMenuCandidates.kt
@@ -0,0 +1,87 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.contextmenu
+
+import android.content.Context
+import android.view.View
+import mozilla.components.feature.app.links.AppLinksUseCases
+import mozilla.components.feature.contextmenu.ContextMenuCandidate
+import mozilla.components.feature.contextmenu.ContextMenuUseCases
+import mozilla.components.feature.tabs.TabsUseCases
+import mozilla.components.ui.widgets.DefaultSnackbarDelegate
+import mozilla.components.ui.widgets.SnackbarDelegate
+
+object ContextMenuCandidates {
+ @Suppress("LongParameterList", "UndocumentedPublicFunction")
+ fun get(
+ context: Context,
+ tabsUseCases: TabsUseCases,
+ contextMenuUseCases: ContextMenuUseCases,
+ appLinksUseCases: AppLinksUseCases,
+ snackBarParentView: View,
+ snackbarDelegate: SnackbarDelegate = DefaultSnackbarDelegate(),
+ isCustomTab: Boolean,
+ ): List<ContextMenuCandidate> {
+ return if (isCustomTab) {
+ // the context menu candidates list is the same as in a Fenix custom tab.
+ listOf(
+ ContextMenuCandidate.createCopyLinkCandidate(
+ context,
+ snackBarParentView,
+ snackbarDelegate,
+ ),
+ ContextMenuCandidate.createShareLinkCandidate(context),
+ ContextMenuCandidate.createSaveImageCandidate(context, contextMenuUseCases),
+ ContextMenuCandidate.createSaveVideoAudioCandidate(context, contextMenuUseCases),
+ ContextMenuCandidate.createCopyImageLocationCandidate(
+ context,
+ snackBarParentView,
+ snackbarDelegate,
+ ),
+ )
+ } else {
+ listOf(
+ ContextMenuCandidate.createOpenInPrivateTabCandidate(
+ context,
+ tabsUseCases,
+ snackBarParentView,
+ snackbarDelegate,
+ ),
+ ContextMenuCandidate.createCopyLinkCandidate(
+ context,
+ snackBarParentView,
+ snackbarDelegate,
+ ),
+ ContextMenuCandidate.createDownloadLinkCandidate(context, contextMenuUseCases),
+ ContextMenuCandidate.createShareLinkCandidate(context),
+ ContextMenuCandidate.createShareImageCandidate(context, contextMenuUseCases),
+ ContextMenuCandidate.createOpenImageInNewTabCandidate(
+ context,
+ tabsUseCases,
+ snackBarParentView,
+ snackbarDelegate,
+ ),
+ ContextMenuCandidate.createSaveImageCandidate(context, contextMenuUseCases),
+ ContextMenuCandidate.createSaveVideoAudioCandidate(context, contextMenuUseCases),
+ ContextMenuCandidate.createCopyImageLocationCandidate(
+ context,
+ snackBarParentView,
+ snackbarDelegate,
+ ),
+ ContextMenuCandidate.createAddContactCandidate(context),
+ ContextMenuCandidate.createShareEmailAddressCandidate(context),
+ ContextMenuCandidate.createCopyEmailAddressCandidate(
+ context,
+ snackBarParentView,
+ snackbarDelegate,
+ ),
+ ContextMenuCandidate.createOpenInExternalAppCandidate(
+ context,
+ appLinksUseCases,
+ ),
+ )
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebanner/CookieBannerFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebanner/CookieBannerFragment.kt
new file mode 100644
index 0000000000..78f3d4b0f0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebanner/CookieBannerFragment.kt
@@ -0,0 +1,66 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.cookiebanner
+
+import android.os.Bundle
+import org.mozilla.focus.GleanMetrics.CookieBanner
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.requirePreference
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.settings.BaseSettingsFragment
+
+class CookieBannerFragment : BaseSettingsFragment() {
+ private lateinit var rejectAllCookies: CookieBannerRejectAllPreference
+
+ override fun onStart() {
+ super.onStart()
+ showToolbar(getString(R.string.preferences_cookie_banner))
+ }
+
+ override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
+ addPreferencesFromResource(R.xml.cookie_banner_settings)
+ setupPreferences()
+ setupInitialState()
+ setupOnPreferenceChangeListener()
+ }
+
+ private fun setupPreferences() {
+ rejectAllCookies = requirePreference(R.string.pref_key_cookie_banner_reject_all)
+ }
+
+ private fun setupInitialState() {
+ when (requireContext().settings.getCurrentCookieBannerOptionFromSharePref()) {
+ is CookieBannerOption.CookieBannerDisabled -> {
+ rejectAllCookies.isChecked = false
+ }
+ is CookieBannerOption.CookieBannerRejectAll -> {
+ rejectAllCookies.isChecked = true
+ }
+ }
+ }
+
+ private fun setupOnPreferenceChangeListener() {
+ rejectAllCookies.setOnPreferenceChangeListener { _, newValue ->
+ val enableRejectAllCookies = newValue as Boolean
+
+ val cookieBannerOption: CookieBannerOption = if (enableRejectAllCookies) {
+ CookieBannerOption.CookieBannerRejectAll()
+ } else {
+ CookieBannerOption.CookieBannerDisabled()
+ }
+
+ handleCookieBannerChange(cookieBannerOption)
+ true
+ }
+ }
+
+ private fun handleCookieBannerChange(cookieBannerOption: CookieBannerOption) {
+ CookieBanner.settingChanged.record(CookieBanner.SettingChangedExtra(cookieBannerOption.metricTag))
+ requireContext().settings.saveCurrentCookieBannerOptionInSharePref(cookieBannerOption)
+ requireContext().components.engine.settings.cookieBannerHandlingModePrivateBrowsing = cookieBannerOption.mode
+ requireContext().components.sessionUseCases.reload()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebanner/CookieBannerOption.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebanner/CookieBannerOption.kt
new file mode 100644
index 0000000000..69a85a2bc7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebanner/CookieBannerOption.kt
@@ -0,0 +1,28 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.cookiebanner
+
+import mozilla.components.concept.engine.EngineSession
+import org.mozilla.focus.R
+
+sealed class CookieBannerOption(
+ open val prefKeyId: Int,
+ open val mode: EngineSession.CookieBannerHandlingMode,
+ open val metricTag: String,
+) {
+
+ data class CookieBannerRejectAll(
+ override val prefKeyId: Int = R.string.pref_key_cookie_banner_reject_all,
+ override val mode: EngineSession.CookieBannerHandlingMode =
+ EngineSession.CookieBannerHandlingMode.REJECT_ALL,
+ override val metricTag: String = "reject_all",
+ ) : CookieBannerOption(prefKeyId = prefKeyId, mode = mode, metricTag = metricTag)
+
+ data class CookieBannerDisabled(
+ override val prefKeyId: Int = R.string.pref_key_cookie_banner_disabled,
+ override val mode: EngineSession.CookieBannerHandlingMode =
+ EngineSession.CookieBannerHandlingMode.DISABLED,
+ override val metricTag: String = "disabled",
+ ) : CookieBannerOption(prefKeyId = prefKeyId, mode = mode, metricTag = metricTag)
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebanner/CookieBannerRejectAllPreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebanner/CookieBannerRejectAllPreference.kt
new file mode 100644
index 0000000000..4d96848c43
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebanner/CookieBannerRejectAllPreference.kt
@@ -0,0 +1,20 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.cookiebanner
+
+import android.content.Context
+import android.util.AttributeSet
+import org.mozilla.focus.settings.LearnMoreSwitchPreference
+import org.mozilla.focus.utils.SupportUtils
+
+class CookieBannerRejectAllPreference(context: Context, attrs: AttributeSet?) :
+ LearnMoreSwitchPreference(context, attrs) {
+
+ override fun getLearnMoreUrl(): String {
+ return SupportUtils.getSumoURLForTopic(
+ SupportUtils.getAppVersion(context),
+ SupportUtils.SumoTopic.COOKIE_BANNER,
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerExceptionDetailsSwitch.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerExceptionDetailsSwitch.kt
new file mode 100644
index 0000000000..084d258bf6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerExceptionDetailsSwitch.kt
@@ -0,0 +1,32 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.cookiebannerreducer
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
+import org.mozilla.focus.R
+import org.mozilla.focus.databinding.SwitchWithDescriptionBinding
+
+class CookieBannerExceptionDetailsSwitch @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0,
+) : ConstraintLayout(context, attrs, defStyleAttr) {
+
+ internal var binding: SwitchWithDescriptionBinding
+
+ init {
+ val view =
+ LayoutInflater.from(context).inflate(R.layout.switch_with_description, this, true)
+ binding = SwitchWithDescriptionBinding.bind(view)
+ setTitle()
+ }
+
+ private fun setTitle() {
+ binding.title.text = context.getString(R.string.cookie_banner_exception_panel_switch_title)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerDetailsPanel.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerDetailsPanel.kt
new file mode 100644
index 0000000000..9cf1aa5111
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerDetailsPanel.kt
@@ -0,0 +1,181 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.cookiebannerreducer
+
+import android.content.Context
+import android.view.View
+import android.widget.FrameLayout
+import androidx.core.net.toUri
+import com.google.android.material.bottomsheet.BottomSheetBehavior
+import com.google.android.material.bottomsheet.BottomSheetDialog
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.launch
+import mozilla.components.support.ktx.kotlin.toShortUrl
+import mozilla.telemetry.glean.private.NoExtras
+import org.mozilla.focus.GleanMetrics.CookieBanner
+import org.mozilla.focus.R
+import org.mozilla.focus.databinding.CookieBannerReducerDetailsBinding
+import org.mozilla.focus.ext.components
+
+/**
+ * Cookie banner reducer details panel that will be visible when the user
+ * clicks on cookie banner reducer item.
+ */
+class CookieBannerReducerDetailsPanel(
+ context: Context,
+ cookieBannerReducerStore: CookieBannerReducerStore,
+ private val ioScope: CoroutineScope,
+ private val tabUrl: String,
+ private val goBack: () -> Unit,
+ private val defaultCookieBannerInteractor: DefaultCookieBannerReducerInteractor,
+) : BottomSheetDialog(context) {
+
+ private var binding: CookieBannerReducerDetailsBinding =
+ CookieBannerReducerDetailsBinding.inflate(layoutInflater, null, false)
+ private val cookieBannerExceptionStatus =
+ cookieBannerReducerStore.state.cookieBannerReducerStatus
+ private var siteDomain: String? = null
+
+ init {
+ setContentView(binding.root)
+ initSiteDomain()
+ expandBottomSheet()
+ setListeners()
+ bindSwitchItem()
+ updateViews()
+ }
+
+ private fun initSiteDomain() {
+ ioScope.launch {
+ val host = tabUrl.toUri().host.orEmpty()
+ siteDomain = context.components.publicSuffixList.getPublicSuffixPlusOne(host).await()
+ }
+ }
+
+ private fun updateViews() {
+ bindTitle()
+ bindDescription()
+ bindItemAction()
+ }
+
+ private fun expandBottomSheet() {
+ val bottomSheet =
+ findViewById<View>(R.id.design_bottom_sheet) as FrameLayout
+ BottomSheetBehavior.from(bottomSheet).state = BottomSheetBehavior.STATE_EXPANDED
+ }
+
+ private fun updateSwitchItem() {
+ binding.cookieBannerExceptionDetailsSwitch.visibility = View.VISIBLE
+ binding.cookieBannerExceptionDetailsSwitch.binding.switchWidget.setOnClickListener {
+ val isChecked =
+ binding.cookieBannerExceptionDetailsSwitch.binding.switchWidget.isChecked
+ defaultCookieBannerInteractor.handleToggleCookieBannerException(isChecked)
+ updateViews()
+ dismiss()
+ }
+ }
+
+ private fun bindItemAction() {
+ when (cookieBannerExceptionStatus) {
+ CookieBannerReducerStatus.HasException -> {
+ binding.cookieBannerExceptionDetailsSwitch.binding.description.text =
+ context.getString(R.string.cookie_banner_exception_panel_switch_state_off)
+ updateSwitchItem()
+ }
+ CookieBannerReducerStatus.NoException -> {
+ binding.cookieBannerExceptionDetailsSwitch.binding.description.text =
+ context.getString(R.string.cookie_banner_exception_panel_switch_state_on)
+ updateSwitchItem()
+ }
+ CookieBannerReducerStatus.CookieBannerSiteNotSupported -> updateSiteNotSupportedItem()
+ else -> {}
+ }
+ }
+
+ private fun updateSiteNotSupportedItem() {
+ binding.requestSupport.visibility = View.VISIBLE
+ binding.cancelButton.visibility = View.VISIBLE
+ }
+
+ private fun bindTitle() {
+ val titleText = when (cookieBannerExceptionStatus) {
+ CookieBannerReducerStatus.HasException -> {
+ setExceptionTitle(
+ siteDomain,
+ R.string.cookie_banner_exception_panel_title_state_on_for_site,
+ )
+ }
+ CookieBannerReducerStatus.NoException -> {
+ setExceptionTitle(
+ siteDomain,
+ R.string.cookie_banner_exception_panel_title_state_off_for_site,
+ )
+ }
+ CookieBannerReducerStatus.CookieBannerSiteNotSupported -> {
+ context.getString(R.string.cookie_banner_exception_panel_switch_title)
+ }
+ else -> ""
+ }
+ binding.title.text = titleText
+ }
+
+ private fun bindDescription() {
+ val detailsText = when (cookieBannerExceptionStatus) {
+ CookieBannerReducerStatus.HasException -> context.getString(
+ R.string.cookie_banner_exception_panel_description_state_off_for_site2,
+ context.getString(R.string.app_name),
+ )
+ CookieBannerReducerStatus.CookieBannerSiteNotSupported -> context.getString(
+ R.string.cookie_banner_exception_panel_description_site_is_not_supported,
+ )
+ CookieBannerReducerStatus.NoException -> context.getString(
+ R.string.cookie_banner_exception_panel_description_state_on_for_site,
+ context.getString(R.string.app_name),
+ )
+ else -> ""
+ }
+ binding.details.text = detailsText
+ }
+
+ private fun setListeners() {
+ binding.detailsBack.setOnClickListener {
+ goBack.invoke()
+ dismiss()
+ }
+ binding.cancelButton.setOnClickListener {
+ CookieBanner.reportSiteCancelButton.record(NoExtras())
+ goBack.invoke()
+ dismiss()
+ }
+ binding.requestSupport.setOnClickListener {
+ if (!siteDomain.isNullOrEmpty()) {
+ defaultCookieBannerInteractor.handleRequestReportSiteDomain(siteDomain!!)
+ }
+ dismiss()
+ }
+ }
+
+ private fun setExceptionTitle(domain: String?, titleRes: Int): String {
+ val data = domain ?: tabUrl
+ val shortUrl = data.toShortUrl(context.components.publicSuffixList)
+ return context.getString(
+ titleRes,
+ shortUrl,
+ )
+ }
+
+ private fun bindSwitchItem() {
+ when (cookieBannerExceptionStatus) {
+ CookieBannerReducerStatus.HasException -> {
+ binding.cookieBannerExceptionDetailsSwitch.binding.switchWidget.isChecked = false
+ }
+ CookieBannerReducerStatus.NoException -> {
+ binding.cookieBannerExceptionDetailsSwitch.binding.switchWidget.isChecked = true
+ }
+ else -> {
+ }
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerItem.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerItem.kt
new file mode 100644
index 0000000000..6dbc2a5e77
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerItem.kt
@@ -0,0 +1,158 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.cookiebannerreducer
+
+import android.content.res.Configuration
+import androidx.compose.foundation.background
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.interaction.MutableInteractionSource
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.defaultMinSize
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.material.Icon
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.remember
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.RectangleShape
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import org.mozilla.focus.R
+import org.mozilla.focus.ui.theme.FocusTheme
+import org.mozilla.focus.ui.theme.focusColors
+
+@Composable
+@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)
+@Preview(uiMode = Configuration.UI_MODE_NIGHT_NO)
+private fun CookieBannerReducerItemPreviewSiteIsNotSupported() {
+ FocusTheme {
+ CookieBannerReducerItem(cookieBannerReducerStatus = CookieBannerReducerStatus.CookieBannerSiteNotSupported) {}
+ }
+}
+
+@Composable
+@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)
+@Preview(uiMode = Configuration.UI_MODE_NIGHT_NO)
+private fun CookieBannerReducerItemPreviewHasException() {
+ FocusTheme {
+ CookieBannerReducerItem(cookieBannerReducerStatus = CookieBannerReducerStatus.HasException) {}
+ }
+}
+
+@Composable
+@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)
+@Preview(uiMode = Configuration.UI_MODE_NIGHT_NO)
+private fun CookieBannerReducerItemPreviewHasNotException() {
+ FocusTheme {
+ CookieBannerReducerItem(cookieBannerReducerStatus = CookieBannerReducerStatus.NoException) {}
+ }
+}
+
+@Composable
+@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)
+@Preview(uiMode = Configuration.UI_MODE_NIGHT_NO)
+private fun CookieBannerReducerItemPreviewUnsupportedSiteRequestWasSubmitted() {
+ FocusTheme {
+ CookieBannerReducerItem(
+ cookieBannerReducerStatus =
+ CookieBannerReducerStatus.CookieBannerUnsupportedSiteRequestWasSubmitted,
+ ) {}
+ }
+}
+
+/**
+ * Displays the cookie banner exception item from Tracking Protection panel.
+ *
+ * @param cookieBannerReducerStatus if the site has a cookie banner, an exception or is not supported
+ * @param preferenceOnClickListener Callback that will redirect the user to cookie banner item details.
+ */
+@Composable
+fun CookieBannerReducerItem(
+ cookieBannerReducerStatus: CookieBannerReducerStatus,
+ preferenceOnClickListener: (() -> Unit)? = null,
+) {
+ var rowModifier = Modifier
+ .defaultMinSize(minHeight = 48.dp)
+ .background(
+ colorResource(R.color.settings_background),
+ shape = RectangleShape,
+ )
+
+ if (cookieBannerReducerStatus !is CookieBannerReducerStatus.CookieBannerUnsupportedSiteRequestWasSubmitted
+ ) {
+ rowModifier = rowModifier.then(
+ Modifier.clickable(
+ interactionSource = remember { MutableInteractionSource() },
+ indication = null,
+ ) { preferenceOnClickListener?.invoke() },
+ )
+ }
+
+ Row(
+ modifier = rowModifier,
+ verticalAlignment = Alignment.CenterVertically,
+ ) {
+ val painter =
+ if (cookieBannerReducerStatus is CookieBannerReducerStatus.NoException) {
+ painterResource(id = R.drawable.mozac_ic_cookies_24)
+ } else {
+ painterResource(id = R.drawable.ic_cookies_disable)
+ }
+ Icon(
+ painter = painter,
+ contentDescription = null,
+ tint = focusColors.onPrimary,
+ modifier = Modifier.padding(end = 20.dp),
+ )
+
+ Column(
+ modifier = Modifier.weight(1f),
+ ) {
+ Text(
+ text = stringResource(R.string.cookie_banner_exception_item_title),
+ maxLines = 1,
+ color = focusColors.settingsTextColor,
+ fontSize = 14.sp,
+ lineHeight = 20.sp,
+ )
+ val summary = when (cookieBannerReducerStatus) {
+ CookieBannerReducerStatus.HasException ->
+ stringResource(id = R.string.cookie_banner_exception_item_description_state_off)
+ CookieBannerReducerStatus.NoException ->
+ stringResource(id = R.string.cookie_banner_exception_item_description_state_on)
+ CookieBannerReducerStatus.CookieBannerSiteNotSupported ->
+ stringResource(id = R.string.cookie_banner_exception_site_not_supported)
+ CookieBannerReducerStatus.CookieBannerUnsupportedSiteRequestWasSubmitted ->
+ stringResource(id = R.string.cookie_banner_the_site_was_reported)
+ }
+ Text(
+ text = summary,
+ maxLines = 1,
+ color = colorResource(R.color.disabled),
+ fontSize = 12.sp,
+ lineHeight = 16.sp,
+ )
+ }
+ if (
+ cookieBannerReducerStatus !is CookieBannerReducerStatus.CookieBannerUnsupportedSiteRequestWasSubmitted
+ ) {
+ Icon(
+ modifier = Modifier
+ .padding(end = 0.dp)
+ .size(24.dp),
+ tint = focusColors.onPrimary,
+ painter = painterResource(id = R.drawable.mozac_ic_chevron_right_24),
+ contentDescription = null,
+ )
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerMiddleware.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerMiddleware.kt
new file mode 100644
index 0000000000..74388311a3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerMiddleware.kt
@@ -0,0 +1,230 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.cookiebannerreducer
+
+import android.content.Context
+import androidx.core.net.toUri
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+import mozilla.components.browser.state.state.SessionState
+import mozilla.components.concept.engine.Engine
+import mozilla.components.concept.engine.cookiehandling.CookieBannersStorage
+import mozilla.components.lib.state.Middleware
+import mozilla.components.lib.state.MiddlewareContext
+import mozilla.telemetry.glean.private.NoExtras
+import org.mozilla.focus.GleanMetrics.CookieBanner
+import org.mozilla.focus.GleanMetrics.Pings
+import org.mozilla.focus.cookiebanner.CookieBannerOption
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.settings
+
+/**
+ * Middleware for cookie banner reduction.
+ */
+class CookieBannerReducerMiddleware(
+ private val ioScope: CoroutineScope,
+ private val cookieBannersStorage: CookieBannersStorage,
+ private val appContext: Context,
+ private val currentTab: SessionState,
+) :
+ Middleware<CookieBannerReducerState, CookieBannerReducerAction> {
+
+ override fun invoke(
+ context: MiddlewareContext<CookieBannerReducerState, CookieBannerReducerAction>,
+ next: (CookieBannerReducerAction) -> Unit,
+ action: CookieBannerReducerAction,
+ ) {
+ when (action) {
+ is CookieBannerReducerAction.InitCookieBannerReducer -> {
+ /**
+ * The initial CookieBannerReducerState when the user enters first in the screen
+ */
+ initCookieBannerReducer(context)
+ }
+
+ is CookieBannerReducerAction.ToggleCookieBannerException -> {
+ handleCookieBannerToggle(action, context)
+ next(action)
+ }
+ is CookieBannerReducerAction.RequestReportSite -> {
+ reportSite(action, context)
+ next(action)
+ }
+ else -> {
+ next(action)
+ }
+ }
+ }
+
+ private fun handleCookieBannerToggle(
+ action: CookieBannerReducerAction.ToggleCookieBannerException,
+ context: MiddlewareContext<CookieBannerReducerState, CookieBannerReducerAction>,
+ ) {
+ ioScope.launch {
+ if (action.isCookieBannerHandlingExceptionEnabled) {
+ cookieBannersStorage.removeException(currentTab.content.url, true)
+ CookieBanner.exceptionRemoved.record(NoExtras())
+ context.store.dispatch(
+ CookieBannerReducerAction.UpdateCookieBannerReducerStatus(
+ CookieBannerReducerStatus.NoException,
+ ),
+ )
+ } else {
+ clearSiteData()
+ cookieBannersStorage.addPersistentExceptionInPrivateMode(currentTab.content.url)
+ CookieBanner.exceptionAdded.record(NoExtras())
+ context.store.dispatch(
+ CookieBannerReducerAction.UpdateCookieBannerReducerStatus(
+ CookieBannerReducerStatus.HasException,
+ ),
+ )
+ }
+ appContext.components.sessionUseCases.reload()
+ }
+ }
+
+ private fun reportSite(
+ action: CookieBannerReducerAction.RequestReportSite,
+ context: MiddlewareContext<CookieBannerReducerState, CookieBannerReducerAction>,
+ ) {
+ CookieBanner.reportSiteDomain.set(action.siteToReport)
+ Pings.cookieBannerReportSite.submit()
+ context.store.dispatch(
+ CookieBannerReducerAction.ShowSnackBarForSiteToReport(
+ true,
+ ),
+ )
+ context.store.dispatch(
+ CookieBannerReducerAction.UpdateCookieBannerReducerStatus(
+ CookieBannerReducerStatus.CookieBannerUnsupportedSiteRequestWasSubmitted,
+ ),
+ )
+ ioScope.launch { cookieBannersStorage.saveSiteDomain(action.siteToReport) }
+ }
+
+ private fun initCookieBannerReducer(
+ context: MiddlewareContext<CookieBannerReducerState, CookieBannerReducerAction>,
+ ) {
+ val shouldShowCookieBannerItem = shouldShowCookieBannerReducerItem()
+ context.store.dispatch(
+ CookieBannerReducerAction.UpdateCookieBannerReducerVisibility(
+ shouldShowCookieBannerItem = shouldShowCookieBannerItem,
+ ),
+ )
+
+ if (!shouldShowCookieBannerItem) {
+ return
+ }
+ ioScope.launch {
+ if (isSiteDomainReported(context)) {
+ return@launch
+ }
+ val hasException =
+ cookieBannersStorage.hasException(currentTab.content.url, true)
+ withContext(Dispatchers.Main) {
+ if (hasException == null) {
+ // An error occurred while querying the exception, let's hide the item.
+ context.store.dispatch(
+ CookieBannerReducerAction.UpdateCookieBannerReducerStatus(
+ null,
+ ),
+ )
+ return@withContext
+ } else if (!hasException) {
+ showUnsupportedSiteIfNeeded(context)
+ } else {
+ showExceptionStatus(context, true)
+ }
+ }
+ }
+ }
+
+ private fun showUnsupportedSiteIfNeeded(
+ context: MiddlewareContext<CookieBannerReducerState, CookieBannerReducerAction>,
+ ) {
+ currentTab.engineState.engineSession?.hasCookieBannerRuleForSession(
+ onResult = { result ->
+ if (result) {
+ showExceptionStatus(context, false)
+ } else {
+ context.store.dispatch(
+ CookieBannerReducerAction.UpdateCookieBannerReducerStatus(
+ CookieBannerReducerStatus.CookieBannerSiteNotSupported,
+ ),
+ )
+ }
+ },
+ onException = {
+ context.store.dispatch(
+ CookieBannerReducerAction.UpdateCookieBannerReducerVisibility(
+ shouldShowCookieBannerItem = false,
+ ),
+ )
+ },
+ )
+ }
+
+ private fun showExceptionStatus(
+ context: MiddlewareContext<CookieBannerReducerState, CookieBannerReducerAction>,
+ hasException: Boolean,
+ ) {
+ if (hasException) {
+ context.store.dispatch(
+ CookieBannerReducerAction.UpdateCookieBannerReducerStatus(
+ CookieBannerReducerStatus.HasException,
+ ),
+ )
+ } else {
+ context.store.dispatch(
+ CookieBannerReducerAction.UpdateCookieBannerReducerStatus(
+ CookieBannerReducerStatus.NoException,
+ ),
+ )
+ }
+ }
+
+ /**
+ * It returns the cookie banner reducer item visibility from tracking protection panel .
+ * If the item is invisible item details should also be invisible.
+ */
+ private fun shouldShowCookieBannerReducerItem(): Boolean {
+ return appContext.settings.isCookieBannerEnable &&
+ appContext.settings.getCurrentCookieBannerOptionFromSharePref() !=
+ CookieBannerOption.CookieBannerDisabled()
+ }
+
+ private suspend fun isSiteDomainReported(
+ context: MiddlewareContext<CookieBannerReducerState, CookieBannerReducerAction>,
+ ): Boolean {
+ val host = currentTab.content.url.toUri().host.orEmpty()
+ val siteDomain =
+ appContext.components.publicSuffixList.getPublicSuffixPlusOne(host).await()
+ if (siteDomain != null && cookieBannersStorage.isSiteDomainReported(siteDomain)) {
+ context.store.dispatch(
+ CookieBannerReducerAction.UpdateCookieBannerReducerStatus(
+ CookieBannerReducerStatus.CookieBannerUnsupportedSiteRequestWasSubmitted,
+ ),
+ )
+ return true
+ }
+ return false
+ }
+
+ private suspend fun clearSiteData() {
+ val host = currentTab.content.url.toUri().host.orEmpty()
+ val domain = appContext.components.publicSuffixList.getPublicSuffixPlusOne(host).await()
+ withContext(Dispatchers.Main) {
+ appContext.components.engine.clearData(
+ host = domain,
+ data = Engine.BrowsingData.select(
+ Engine.BrowsingData.AUTH_SESSIONS,
+ Engine.BrowsingData.ALL_SITE_DATA,
+ ),
+ )
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerStatus.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerStatus.kt
new file mode 100644
index 0000000000..978a0baf50
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerStatus.kt
@@ -0,0 +1,32 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.cookiebannerreducer
+
+/**
+ * Sealed class for the cookie banner exception Gui item
+ * from Tracking Protection panel.
+ */
+sealed class CookieBannerReducerStatus {
+
+ /**
+ * If the site is excepted from cookie banner reduction.
+ */
+ object HasException : CookieBannerReducerStatus()
+
+ /**
+ * If the site is not excepted from cookie banner reduction.
+ */
+ object NoException : CookieBannerReducerStatus()
+
+ /**
+ * If the cookie banner reducer is not supported on the site.
+ */
+ object CookieBannerSiteNotSupported : CookieBannerReducerStatus()
+
+ /**
+ * If the user reports with success a site that wasn't supported by cookie banner reducer.
+ */
+ object CookieBannerUnsupportedSiteRequestWasSubmitted : CookieBannerReducerStatus()
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerStore.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerStore.kt
new file mode 100644
index 0000000000..b6225bb028
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/CookieBannerReducerStore.kt
@@ -0,0 +1,113 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.cookiebannerreducer
+
+import mozilla.components.lib.state.Action
+import mozilla.components.lib.state.Middleware
+import mozilla.components.lib.state.State
+import mozilla.components.lib.state.Store
+
+/**
+ * The [CookieBannerReducerStore] holds the [CookieBannerReducerState] (state tree).
+ *
+ * The only way to change the [CookieBannerReducerState] inside
+ * [CookieBannerReducerStore] is to dispatch an [CookieBannerReducerAction] on it.
+ */
+class CookieBannerReducerStore(
+ initialState: CookieBannerReducerState,
+ middlewares: List<Middleware<CookieBannerReducerState, CookieBannerReducerAction>> = emptyList(),
+) : Store<CookieBannerReducerState, CookieBannerReducerAction>(
+ initialState,
+ ::cookieBannerStateReducer,
+ middlewares,
+) {
+ init {
+ dispatch(CookieBannerReducerAction.InitCookieBannerReducer)
+ }
+}
+
+/**
+ * The state of the cookie banner reducer
+ *
+ * @property isCookieBannerToggleEnabled Current status of cookie banner toggle from details exception.
+ * @property shouldShowCookieBannerItem Visibility of cookie banner reducer item.
+ * @property isCookieBannerDetected If the site has a cookie banner.
+ * @property showSnackBarForSiteToReport When cookie banner reducer doesn't work
+ * on a website and the user reports that site
+ * @property cookieBannerReducerStatus Current status of cookie banner reducer.
+ * @property siteToReport Site to report when cookie banner reducer doesn't work
+ */
+data class CookieBannerReducerState(
+ val isCookieBannerToggleEnabled: Boolean = false,
+ val shouldShowCookieBannerItem: Boolean = false,
+ val isCookieBannerDetected: Boolean = false,
+ val showSnackBarForSiteToReport: Boolean = false,
+ val cookieBannerReducerStatus: CookieBannerReducerStatus? = CookieBannerReducerStatus.NoException,
+ val siteToReport: String = "",
+) : State
+
+/**
+ * Action to dispatch through the `CookieBannerReducerStore` to modify cookie banner reducer item and item details
+ * from Tracking protection panel through the reducer.
+ */
+@Suppress("UndocumentedPublicClass")
+sealed class CookieBannerReducerAction : Action {
+ object InitCookieBannerReducer : CookieBannerReducerAction()
+
+ data class ToggleCookieBannerException(
+ val isCookieBannerHandlingExceptionEnabled: Boolean,
+ ) : CookieBannerReducerAction()
+
+ data class UpdateCookieBannerReducerVisibility(
+ val shouldShowCookieBannerItem: Boolean,
+ ) : CookieBannerReducerAction()
+
+ data class UpdateCookieBannerReducerStatus(
+ val cookieBannerReducerStatus: CookieBannerReducerStatus?,
+ ) : CookieBannerReducerAction()
+
+ data class RequestReportSite(
+ val siteToReport: String,
+ ) : CookieBannerReducerAction()
+
+ data class ShowSnackBarForSiteToReport(
+ val isSnackBarVisible: Boolean,
+ ) : CookieBannerReducerAction()
+}
+
+/**
+ * Reduces the cookie banner state from the current state and an action performed on it.
+ *
+ * @param state the current cookie banner item state
+ * @param action the action to perform
+ * @return the new cookie banner reducer state
+ */
+private fun cookieBannerStateReducer(
+ state: CookieBannerReducerState,
+ action: CookieBannerReducerAction,
+): CookieBannerReducerState {
+ return when (action) {
+ is CookieBannerReducerAction.ToggleCookieBannerException -> {
+ state.copy(isCookieBannerToggleEnabled = action.isCookieBannerHandlingExceptionEnabled)
+ }
+ is CookieBannerReducerAction.UpdateCookieBannerReducerVisibility -> {
+ state.copy(shouldShowCookieBannerItem = action.shouldShowCookieBannerItem)
+ }
+ is CookieBannerReducerAction.UpdateCookieBannerReducerStatus -> {
+ state.copy(cookieBannerReducerStatus = action.cookieBannerReducerStatus)
+ }
+ is CookieBannerReducerAction.RequestReportSite -> {
+ state.copy(siteToReport = action.siteToReport)
+ }
+ is CookieBannerReducerAction.ShowSnackBarForSiteToReport -> {
+ state.copy(showSnackBarForSiteToReport = action.isSnackBarVisible)
+ }
+ CookieBannerReducerAction.InitCookieBannerReducer -> {
+ throw IllegalStateException(
+ "You need to add CookieBannerReducerMiddleware to your CookieBannerReducerStore. ($action)",
+ )
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/DefaultCookieBannerReducerInteractor.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/DefaultCookieBannerReducerInteractor.kt
new file mode 100644
index 0000000000..f0ee6f7305
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/cookiebannerreducer/DefaultCookieBannerReducerInteractor.kt
@@ -0,0 +1,35 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.cookiebannerreducer
+
+import mozilla.telemetry.glean.private.NoExtras
+import org.mozilla.focus.GleanMetrics.CookieBanner
+
+/**
+ * Interactor class for cookie banner reducer feature .
+ */
+class DefaultCookieBannerReducerInteractor(val store: CookieBannerReducerStore) {
+
+ /**
+ * Method that gets called when the user changes the cookie banner exception toggle state.
+ * @param isCookieBannerHandlingExceptionEnabled - the state of the toggle
+ */
+ fun handleToggleCookieBannerException(isCookieBannerHandlingExceptionEnabled: Boolean) {
+ store.dispatch(
+ CookieBannerReducerAction.ToggleCookieBannerException(
+ isCookieBannerHandlingExceptionEnabled,
+ ),
+ )
+ }
+
+ /**
+ * Method that gets called when the user sends the url of the site that he wants to report.
+ * @param siteDomain - the site domain that will be sent to nimbus.
+ */
+ fun handleRequestReportSiteDomain(siteDomain: String) {
+ CookieBanner.reportDomainSiteButton.record(NoExtras())
+ store.dispatch(CookieBannerReducerAction.RequestReportSite(siteToReport = siteDomain))
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/customtabs/CustomTabsService.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/customtabs/CustomTabsService.kt
new file mode 100644
index 0000000000..73a453cc89
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/customtabs/CustomTabsService.kt
@@ -0,0 +1,15 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.customtabs
+
+import mozilla.components.concept.engine.Engine
+import mozilla.components.feature.customtabs.AbstractCustomTabsService
+import mozilla.components.feature.customtabs.store.CustomTabsServiceStore
+import org.mozilla.focus.ext.components
+
+class CustomTabsService : AbstractCustomTabsService() {
+ override val customTabsServiceStore: CustomTabsServiceStore by lazy { components.customTabsStore }
+ override val engine: Engine by lazy { components.engine }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/downloads/DownloadService.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/downloads/DownloadService.kt
new file mode 100644
index 0000000000..b5041f573e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/downloads/DownloadService.kt
@@ -0,0 +1,17 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.downloads
+
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.concept.fetch.Client
+import mozilla.components.feature.downloads.AbstractFetchDownloadService
+import mozilla.components.support.base.android.NotificationsDelegate
+import org.mozilla.focus.ext.components
+
+class DownloadService : AbstractFetchDownloadService() {
+ override val httpClient: Client by lazy { components.client }
+ override val store: BrowserStore by lazy { components.store }
+ override val notificationsDelegate: NotificationsDelegate by lazy { components.notificationsDelegate }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/AppContentInterceptor.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/AppContentInterceptor.kt
new file mode 100644
index 0000000000..2f6e4c5147
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/AppContentInterceptor.kt
@@ -0,0 +1,111 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.engine
+
+import android.content.Context
+import android.content.Intent
+import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
+import mozilla.components.browser.errorpages.ErrorPages
+import mozilla.components.browser.errorpages.ErrorType
+import mozilla.components.concept.engine.EngineSession
+import mozilla.components.concept.engine.request.RequestInterceptor
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.CrashListActivity
+import org.mozilla.focus.browser.LocalizedContent
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.utils.SupportUtils
+
+class AppContentInterceptor(
+ private val context: Context,
+) : RequestInterceptor {
+ override fun onLoadRequest(
+ engineSession: EngineSession,
+ uri: String,
+ lastUri: String?,
+ hasUserGesture: Boolean,
+ isSameDomain: Boolean,
+ isRedirect: Boolean,
+ isDirectNavigation: Boolean,
+ isSubframeRequest: Boolean,
+ ): RequestInterceptor.InterceptionResponse? {
+ return when (uri) {
+ LocalizedContent.URL_ABOUT -> RequestInterceptor.InterceptionResponse.Content(
+ LocalizedContent.loadAbout(context),
+ encoding = "base64",
+ )
+
+ LocalizedContent.URL_RIGHTS -> RequestInterceptor.InterceptionResponse.Content(
+ LocalizedContent.loadRights(context),
+ encoding = "base64",
+ )
+
+ LocalizedContent.URL_GPL -> RequestInterceptor.InterceptionResponse.Content(
+ LocalizedContent.loadGPL(context),
+ encoding = "base64",
+ )
+
+ LocalizedContent.URL_LICENSES -> RequestInterceptor.InterceptionResponse.Content(
+ LocalizedContent.loadLicenses(context),
+ encoding = "base64",
+ )
+
+ "about:crashes" -> {
+ val intent = Intent(context, CrashListActivity::class.java)
+ intent.addFlags(FLAG_ACTIVITY_NEW_TASK)
+ context.startActivity(intent)
+
+ RequestInterceptor.InterceptionResponse.Url("about:blank")
+ }
+
+ else -> context.components.appLinksInterceptor.onLoadRequest(
+ engineSession,
+ uri,
+ lastUri,
+ hasUserGesture,
+ isSameDomain,
+ isRedirect,
+ isDirectNavigation,
+ isSubframeRequest,
+ )
+ }
+ }
+
+ override fun onErrorRequest(
+ session: EngineSession,
+ errorType: ErrorType,
+ uri: String?,
+ ): RequestInterceptor.ErrorResponse {
+ val errorPage = ErrorPages.createUrlEncodedErrorPage(
+ context,
+ errorType,
+ uri,
+ titleOverride = { type -> getErrorPageTitle(context, type) },
+ descriptionOverride = { type -> getErrorPageDescription(context, type) },
+ )
+ return RequestInterceptor.ErrorResponse(errorPage)
+ }
+
+ override fun interceptsAppInitiatedRequests() = true
+}
+
+private fun getErrorPageTitle(context: Context, type: ErrorType): String? {
+ if (type == ErrorType.ERROR_HTTPS_ONLY) {
+ return context.getString(R.string.errorpage_httpsonly_title2)
+ }
+ // Returning `null` here will let the component use its default title for this error type
+ return null
+}
+
+private fun getErrorPageDescription(context: Context, type: ErrorType): String? {
+ if (type == ErrorType.ERROR_HTTPS_ONLY) {
+ return context.getString(
+ R.string.errorpage_httpsonly_message2,
+ context.getString(R.string.app_name),
+ SupportUtils.getGenericSumoURLForTopic(SupportUtils.SumoTopic.HTTPS_ONLY),
+ )
+ }
+ // Returning `null` here will let the component use its default description for this error type
+ return null
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/ClientWrapper.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/ClientWrapper.kt
new file mode 100644
index 0000000000..092744cd52
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/ClientWrapper.kt
@@ -0,0 +1,29 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.engine
+
+import mozilla.components.concept.fetch.Client
+import mozilla.components.concept.fetch.Request
+import mozilla.components.concept.fetch.Response
+
+/**
+ * A wrapper around [Client] preventing [Request]s without the private flag set.
+ */
+class ClientWrapper(
+ private val actual: Client,
+) : Client() {
+ override fun fetch(request: Request): Response {
+ if (!request.private) {
+ throw IllegalStateException("Non-private request")
+ }
+
+ return actual.fetch(request)
+ }
+
+ @Deprecated("Non-private Client usage should be prevented")
+ fun unwrap(): Client {
+ return actual
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/EngineSharedPreferencesListener.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/EngineSharedPreferencesListener.kt
new file mode 100644
index 0000000000..abd64b8e92
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/EngineSharedPreferencesListener.kt
@@ -0,0 +1,95 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.engine
+
+import android.content.Context
+import androidx.preference.Preference
+import org.mozilla.focus.GleanMetrics.TrackingProtection
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.settings
+
+/**
+ * SharedPreference listener that will update the engine whenever the user changes settings.
+ */
+class EngineSharedPreferencesListener(
+ private val context: Context,
+) : Preference.OnPreferenceChangeListener {
+
+ override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean {
+ when (preference.key) {
+ context.getString(R.string.pref_key_performance_enable_cookies) ->
+ updateTrackingProtectionPolicy(shouldBlockCookiesValue = newValue as String)
+
+ context.getString(R.string.pref_key_safe_browsing) ->
+ updateSafeBrowsingPolicy(newValue as Boolean)
+
+ context.getString(R.string.pref_key_performance_block_javascript) ->
+ updateJavaScriptSetting(newValue as Boolean)
+
+ context.getString(R.string.pref_key_performance_block_webfonts) ->
+ updateWebFontsBlocking(newValue as Boolean)
+ }
+
+ return true
+ }
+
+ internal fun updateTrackingProtectionPolicy(
+ source: String? = null,
+ tracker: String? = null,
+ isEnabled: Boolean = false,
+ shouldBlockCookiesValue: String = context.settings.shouldBlockCookiesValue(),
+ ) {
+ val policy = context.settings.createTrackingProtectionPolicy(shouldBlockCookiesValue)
+ val components = context.components
+
+ components.engineDefaultSettings.trackingProtectionPolicy = policy
+ components.settingsUseCases.updateTrackingProtection(policy)
+
+ if (source != null && tracker != null) {
+ TrackingProtection.trackerSettingChanged.record(
+ TrackingProtection.TrackerSettingChangedExtra(
+ sourceOfChange = source,
+ trackerChanged = tracker,
+ isEnabled = isEnabled,
+ ),
+ )
+ }
+ components.sessionUseCases.reload()
+ }
+
+ private fun updateSafeBrowsingPolicy(newValue: Boolean) {
+ context.settings.setupSafeBrowsing(context.components.engine, newValue)
+ context.components.sessionUseCases.reload()
+ }
+
+ private fun updateJavaScriptSetting(newValue: Boolean) {
+ val components = context.components
+
+ components.engineDefaultSettings.javascriptEnabled = !newValue
+ components.engine.settings.javascriptEnabled = !newValue
+ components.sessionUseCases.reload()
+ }
+
+ private fun updateWebFontsBlocking(newValue: Boolean) {
+ val components = context.components
+
+ components.engineDefaultSettings.webFontsEnabled = !newValue
+ components.engine.settings.webFontsEnabled = !newValue
+ components.sessionUseCases.reload()
+ }
+
+ enum class ChangeSource(val source: String) {
+ SETTINGS("Settings"),
+ PANEL("Panel"),
+ }
+
+ enum class TrackerChanged(val tracker: String) {
+ ADVERTISING("Advertising"),
+ ANALYTICS("Analytics"),
+ SOCIAL("Social"),
+ CONTENT("Content"),
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/SanityCheckMiddleware.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/SanityCheckMiddleware.kt
new file mode 100644
index 0000000000..c84c7b2fc6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/engine/SanityCheckMiddleware.kt
@@ -0,0 +1,36 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.engine
+
+import mozilla.components.browser.state.action.BrowserAction
+import mozilla.components.browser.state.action.InitAction
+import mozilla.components.browser.state.action.TabListAction
+import mozilla.components.browser.state.selector.normalTabs
+import mozilla.components.browser.state.state.BrowserState
+import mozilla.components.lib.state.Middleware
+import mozilla.components.lib.state.MiddlewareContext
+
+/**
+ * Middleware preventing creating non-private tabs.
+ */
+class SanityCheckMiddleware : Middleware<BrowserState, BrowserAction> {
+ override fun invoke(
+ context: MiddlewareContext<BrowserState, BrowserAction>,
+ next: (BrowserAction) -> Unit,
+ action: BrowserAction,
+ ) {
+ next(action)
+
+ if (action is TabListAction || action is InitAction) {
+ verifyNoNonPrivateTabs(context.state)
+ }
+ }
+
+ private fun verifyNoNonPrivateTabs(state: BrowserState) {
+ if (state.normalTabs.isNotEmpty()) {
+ throw IllegalStateException("State contains non-private tabs")
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/exceptions/ExceptionsListFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/exceptions/ExceptionsListFragment.kt
new file mode 100644
index 0000000000..eecbc7f517
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/exceptions/ExceptionsListFragment.kt
@@ -0,0 +1,323 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.exceptions
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
+import android.view.MotionEvent
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.CompoundButton
+import android.widget.TextView
+import androidx.core.content.ContextCompat
+import androidx.core.view.isVisible
+import androidx.recyclerview.widget.ItemTouchHelper
+import androidx.recyclerview.widget.ItemTouchHelper.SimpleCallback
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.launch
+import mozilla.components.concept.engine.content.blocking.TrackingProtectionException
+import org.mozilla.focus.GleanMetrics.TrackingProtectionExceptions
+import org.mozilla.focus.R
+import org.mozilla.focus.autocomplete.AutocompleteDomainFormatter
+import org.mozilla.focus.databinding.FragmentExceptionsDomainsBinding
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.settings.BaseSettingsLikeFragment
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+import org.mozilla.focus.utils.ViewUtils
+import java.util.Collections
+import kotlin.coroutines.CoroutineContext
+
+private const val REMOVE_EXCEPTIONS_DISABLED_ALPHA = 0.5f
+typealias DomainFormatter = (String) -> String
+
+/**
+ * Fragment showing settings UI listing all exception domains.
+ */
+open class ExceptionsListFragment : BaseSettingsLikeFragment(), CoroutineScope {
+ private var job = Job()
+ override val coroutineContext: CoroutineContext
+ get() = job + Dispatchers.Main
+ private var _binding: FragmentExceptionsDomainsBinding? = null
+ protected val binding get() = _binding!!
+
+ /**
+ * ItemTouchHelper for reordering items in the domain list.
+ */
+ val itemTouchHelper: ItemTouchHelper = ItemTouchHelper(
+ object : SimpleCallback(ItemTouchHelper.UP or ItemTouchHelper.DOWN, 0) {
+ override fun onMove(
+ recyclerView: RecyclerView,
+ viewHolder: RecyclerView.ViewHolder,
+ target: RecyclerView.ViewHolder,
+ ): Boolean {
+ val from = viewHolder.bindingAdapterPosition
+ val to = target.bindingAdapterPosition
+
+ (recyclerView.adapter as DomainListAdapter).move(from, to)
+
+ return true
+ }
+
+ override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {}
+
+ override fun onSelectedChanged(viewHolder: RecyclerView.ViewHolder?, actionState: Int) {
+ super.onSelectedChanged(viewHolder, actionState)
+
+ if (viewHolder is DomainViewHolder) {
+ viewHolder.onSelected()
+ }
+ }
+
+ override fun clearView(
+ recyclerView: RecyclerView,
+ viewHolder: RecyclerView.ViewHolder,
+ ) {
+ super.clearView(recyclerView, viewHolder)
+
+ if (viewHolder is DomainViewHolder) {
+ viewHolder.onCleared()
+ }
+ }
+ },
+ )
+
+ /**
+ * In selection mode the user can select and remove items. In non-selection mode the list can
+ * be reordered by the user.
+ */
+ open fun isSelectionMode() = false
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?,
+ ): View {
+ _binding = FragmentExceptionsDomainsBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding.exceptionList.apply {
+ layoutManager =
+ LinearLayoutManager(activity, RecyclerView.VERTICAL, false)
+ adapter = DomainListAdapter()
+ setHasFixedSize(true)
+ }
+
+ binding.removeAllExceptions.isVisible = !isSelectionMode()
+
+ if (!isSelectionMode()) {
+ itemTouchHelper.attachToRecyclerView(binding.exceptionList)
+ }
+
+ binding.removeAllExceptions.setOnClickListener { removeButton ->
+ removeButton.apply {
+ isEnabled = false
+ alpha = REMOVE_EXCEPTIONS_DISABLED_ALPHA
+ }
+ requireComponents.trackingProtectionUseCases.removeAllExceptions {
+ val exceptionsListSize =
+ (binding.exceptionList.adapter as DomainListAdapter).itemCount
+ TrackingProtectionExceptions.allowListCleared.record(
+ TrackingProtectionExceptions.AllowListClearedExtra(exceptionsListSize),
+ )
+
+ requireComponents.appStore.dispatch(
+ AppAction.NavigateUp(
+ requireComponents.store.state.selectedTabId,
+ ),
+ )
+ }
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+
+ job = Job()
+
+ showToolbar(getString(R.string.preference_exceptions))
+
+ (binding.exceptionList.adapter as DomainListAdapter).refresh(requireActivity()) {
+ // check if the exceptions list is empty only if fragment is still attached.
+ context?.let {
+ if ((binding.exceptionList.adapter as DomainListAdapter).itemCount == 0) {
+ requireComponents.appStore.dispatch(
+ AppAction.NavigateUp(requireComponents.store.state.selectedTabId),
+ )
+ }
+ activity?.invalidateOptionsMenu()
+ }
+ }
+ }
+
+ override fun onStop() {
+ job.cancel()
+ super.onStop()
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
+ menuInflater.inflate(R.menu.menu_exceptions_list, menu)
+ }
+
+ override fun onPrepareMenu(menu: Menu) {
+ val removeItem = menu.findItem(R.id.remove)
+
+ removeItem?.let {
+ it.isVisible = isSelectionMode() || binding.exceptionList.adapter!!.itemCount > 0
+ val isEnabled =
+ !isSelectionMode() || (binding.exceptionList.adapter as DomainListAdapter).selection().isNotEmpty()
+ ViewUtils.setMenuItemEnabled(it, isEnabled)
+ }
+ }
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) {
+ R.id.remove -> {
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(page = Screen.Settings.Page.PrivacyExceptionsRemove),
+ )
+ true
+ }
+ else -> false
+ }
+
+ /**
+ * Adapter implementation for the list of exception domains.
+ */
+ inner class DomainListAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
+ private var exceptions: List<TrackingProtectionException> = emptyList()
+ private val selectedExceptions: MutableList<TrackingProtectionException> = mutableListOf()
+
+ fun refresh(context: Context, body: (() -> Unit)? = null) {
+ this@ExceptionsListFragment.launch(Dispatchers.Main) {
+ context.components.trackingProtectionUseCases.fetchExceptions {
+ exceptions = it
+ notifyDataSetChanged()
+ body?.invoke()
+ }
+ }
+ }
+
+ override fun getItemViewType(position: Int) = DomainViewHolder.LAYOUT_ID
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder =
+ when (viewType) {
+ DomainViewHolder.LAYOUT_ID ->
+ DomainViewHolder(
+ LayoutInflater.from(parent.context).inflate(viewType, parent, false),
+ ) { AutocompleteDomainFormatter.format(it) }
+ else -> throw IllegalArgumentException("Unknown view type: $viewType")
+ }
+
+ override fun getItemCount(): Int = exceptions.size
+
+ override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
+ if (holder is DomainViewHolder) {
+ holder.bind(
+ exceptions[position],
+ isSelectionMode(),
+ selectedExceptions,
+ itemTouchHelper,
+ this@ExceptionsListFragment,
+ )
+ }
+ }
+
+ override fun onViewRecycled(holder: RecyclerView.ViewHolder) {
+ if (holder is DomainViewHolder) {
+ holder.checkBoxView.setOnCheckedChangeListener(null)
+ }
+ }
+
+ fun selection(): List<TrackingProtectionException> = selectedExceptions
+
+ fun move(from: Int, to: Int) {
+ Collections.swap(exceptions, from, to)
+ notifyItemMoved(from, to)
+
+ // The underlying storage in GeckoView doesn't support ordering - and ordering is also
+ // not necessary. We may just need to remove this feature from this list.
+ }
+ }
+
+ /**
+ * ViewHolder implementation for a domain item in the list.
+ */
+ private class DomainViewHolder(
+ itemView: View,
+ val domainFormatter: DomainFormatter? = null,
+ ) : RecyclerView.ViewHolder(itemView) {
+ val domainView: TextView = itemView.findViewById(R.id.domainView)
+ val checkBoxView: CheckBox = itemView.findViewById(R.id.checkbox)
+ val handleView: View = itemView.findViewById(R.id.handleView)
+
+ companion object {
+ val LAYOUT_ID = R.layout.item_custom_domain
+ }
+
+ fun bind(
+ exception: TrackingProtectionException,
+ isSelectionMode: Boolean,
+ selectedExceptions: MutableList<TrackingProtectionException>,
+ itemTouchHelper: ItemTouchHelper,
+ fragment: ExceptionsListFragment,
+ ) {
+ domainView.text = domainFormatter?.invoke(exception.url) ?: exception.url
+
+ checkBoxView.isVisible = isSelectionMode
+ checkBoxView.isChecked = selectedExceptions.contains(exception)
+ checkBoxView.setOnCheckedChangeListener { _: CompoundButton, isChecked: Boolean ->
+ if (isChecked) {
+ selectedExceptions.add(exception)
+ } else {
+ selectedExceptions.remove(exception)
+ }
+
+ fragment.activity?.invalidateOptionsMenu()
+ }
+
+ handleView.isVisible = isSelectionMode
+ handleView.setOnTouchListener { _, event ->
+ if (event.actionMasked == MotionEvent.ACTION_DOWN) {
+ itemTouchHelper.startDrag(this)
+ }
+ false
+ }
+
+ if (isSelectionMode) {
+ itemView.setOnClickListener {
+ checkBoxView.isChecked = !checkBoxView.isChecked
+ }
+ }
+ }
+
+ fun onSelected() {
+ itemView.setBackgroundColor(ContextCompat.getColor(itemView.context, R.color.disabled))
+ }
+
+ fun onCleared() {
+ itemView.setBackgroundColor(0)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/exceptions/ExceptionsRemoveFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/exceptions/ExceptionsRemoveFragment.kt
new file mode 100644
index 0000000000..c228877556
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/exceptions/ExceptionsRemoveFragment.kt
@@ -0,0 +1,61 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.exceptions
+
+import android.content.Context
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
+import kotlinx.coroutines.Dispatchers.Main
+import kotlinx.coroutines.launch
+import org.mozilla.focus.GleanMetrics.TrackingProtectionExceptions
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.state.AppAction
+import kotlin.collections.forEach as withEach
+
+class ExceptionsRemoveFragment : ExceptionsListFragment() {
+
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
+ menuInflater.inflate(R.menu.menu_autocomplete_remove, menu)
+ }
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) {
+ R.id.remove -> {
+ removeSelectedDomains(requireActivity().applicationContext)
+ true
+ }
+ else -> false
+ }
+
+ private fun removeSelectedDomains(context: Context) {
+ val exceptions = (binding.exceptionList.adapter as DomainListAdapter).selection()
+ TrackingProtectionExceptions.selectedItemsRemoved.record(
+ TrackingProtectionExceptions.SelectedItemsRemovedExtra(exceptions.size),
+ )
+
+ if (exceptions.isNotEmpty()) {
+ launch(Main) {
+ exceptions.withEach { exception ->
+ context.components.trackingProtectionUseCases.removeException(exception)
+ }
+
+ requireComponents.appStore.dispatch(
+ AppAction.NavigateUp(requireComponents.store.state.selectedTabId),
+ )
+ }
+ }
+ }
+
+ override fun isSelectionMode() = true
+
+ override fun onResume() {
+ super.onResume()
+
+ showToolbar(getString(R.string.preference_autocomplete_title_remove))
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/experiments/NimbusSetup.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/experiments/NimbusSetup.kt
new file mode 100644
index 0000000000..07b788d2d6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/experiments/NimbusSetup.kt
@@ -0,0 +1,116 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.experiments
+
+import android.content.Context
+import mozilla.components.service.nimbus.NimbusApi
+import mozilla.components.service.nimbus.NimbusAppInfo
+import mozilla.components.service.nimbus.NimbusBuilder
+import mozilla.components.support.base.log.logger.Logger
+import org.json.JSONObject
+import org.mozilla.experiments.nimbus.NimbusInterface
+import org.mozilla.experiments.nimbus.internal.NimbusException
+import org.mozilla.focus.BuildConfig
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.nimbus.FocusNimbus
+
+/**
+ * The maximum amount of time the app launch will be blocked to load experiments from disk.
+ *
+ * ⚠️ This value was decided from analyzing the Focus metrics (nimbus_initial_fetch) for the ideal
+ * timeout. We should NOT change this value without collecting more metrics first.
+ */
+private const val TIME_OUT_LOADING_EXPERIMENT_FROM_DISK_MS = 200L
+
+/**
+ * Create the Nimbus singleton object for the Focus/Klar apps.
+ */
+fun createNimbus(context: Context, urlString: String?): NimbusApi {
+ val isAppFirstRun = context.settings.isFirstRun
+
+ // These values can be used in the JEXL expressions when targeting experiments.
+ val customTargetingAttributes = JSONObject().apply {
+ // By convention, we should use snake case.
+ put("is_first_run", isAppFirstRun)
+
+ // This camelCase attribute is a boolean value represented as a string.
+ // This is left for backwards compatibility.
+ put("isFirstRun", isAppFirstRun.toString())
+ }
+
+ // The name "focus-android" or "klar-android" here corresponds to the app_name defined
+ // for the family of apps that encompasses all of the channels for the Focus app.
+ // This is defined upstream in the telemetry system. For more context on where the
+ // app_name come from see:
+ // https://probeinfo.telemetry.mozilla.org/v2/glean/app-listings
+ // and
+ // https://github.com/mozilla/probe-scraper/blob/master/repositories.yaml
+ val appInfo = NimbusAppInfo(
+ appName = getNimbusAppName(),
+ // Note: Using BuildConfig.BUILD_TYPE is important here so that it matches the value
+ // passed into Glean. `Config.channel.toString()` turned out to be non-deterministic
+ // and would mostly produce the value `Beta` and rarely would produce `beta`.
+ channel = BuildConfig.BUILD_TYPE,
+ customTargetingAttributes = customTargetingAttributes,
+ )
+
+ return NimbusBuilder(context).apply {
+ url = urlString
+ errorReporter = { message, e ->
+ Logger.error("Nimbus error: $message", e)
+ if (e !is NimbusException || e.isReportableError()) {
+ context.components.crashReporter.submitCaughtException(e)
+ }
+ }
+ initialExperiments = R.raw.initial_experiments
+ timeoutLoadingExperiment = TIME_OUT_LOADING_EXPERIMENT_FROM_DISK_MS
+ usePreviewCollection = context.settings.shouldUseNimbusPreview
+ sharedPreferences = context.settings.preferences
+ isFirstRun = isAppFirstRun
+ featureManifest = FocusNimbus
+ }.build(appInfo)
+}
+
+internal fun finishNimbusInitialization(experiments: NimbusApi) =
+ experiments.run {
+ // We fetch experiments in all cases,
+ if (context.settings.isFirstRun) {
+ // … however on first run, we immediately apply pending experiments.
+ // We also want to measure how long this will take, with Glean.
+ register(
+ object : NimbusInterface.Observer {
+ override fun onExperimentsFetched() {
+ applyPendingExperiments()
+ // Remove lingering observer when we're done fetching experiments on startup.
+ unregister(this)
+ }
+ },
+ )
+ }
+ fetchExperiments()
+ }
+
+fun getNimbusAppName(): String {
+ return if (BuildConfig.FLAVOR.contains("focus")) {
+ "focus_android"
+ } else {
+ "klar_android"
+ }
+}
+
+/**
+ * Classifies which errors we should forward to our crash reporter or not. We want to filter out the
+ * non-reportable ones if we know there is no reasonable action that we can perform.
+ *
+ * This fix should be upstreamed as part of: https://github.com/mozilla/application-services/issues/4333
+ */
+fun NimbusException.isReportableError(): Boolean {
+ return when (this) {
+ is NimbusException.ClientException -> false
+ else -> true
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Activity.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Activity.kt
new file mode 100644
index 0000000000..ee391ceb0c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Activity.kt
@@ -0,0 +1,41 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ext
+
+import android.app.Activity
+import android.os.Build
+import android.view.WindowManager
+import androidx.annotation.DrawableRes
+import androidx.appcompat.app.AppCompatActivity
+
+/**
+ * Sets the icon for the back (up) navigation button.
+ * @param icon The resource id of the icon.
+ */
+fun Activity.setNavigationIcon(
+ @DrawableRes icon: Int,
+) {
+ (this as? AppCompatActivity)?.supportActionBar?.let {
+ it.setDisplayHomeAsUpEnabled(true)
+ it.setHomeAsUpIndicator(icon)
+ }
+}
+
+/**
+ * Sets or clears the secure flags for the activity's window.
+ */
+fun Activity.updateSecureWindowFlags() {
+ if (this.settings.shouldUseSecureMode()) {
+ window.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ setRecentsScreenshotEnabled(false)
+ }
+ } else {
+ window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ setRecentsScreenshotEnabled(true)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/AndroidViewModel.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/AndroidViewModel.kt
new file mode 100644
index 0000000000..216dc009e7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/AndroidViewModel.kt
@@ -0,0 +1,12 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ext
+
+import androidx.lifecycle.AndroidViewModel
+import org.mozilla.focus.Components
+import org.mozilla.focus.FocusApplication
+
+val AndroidViewModel.components: Components
+ get() = getApplication<FocusApplication>().components
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/BrowserStore.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/BrowserStore.kt
new file mode 100644
index 0000000000..e037f3f368
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/BrowserStore.kt
@@ -0,0 +1,21 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ext
+
+import mozilla.components.browser.state.search.SearchEngine
+import mozilla.components.browser.state.state.selectedOrDefaultSearchEngine
+import mozilla.components.browser.state.store.BrowserStore
+
+/**
+ * Returns the default search engine name or "custom" string if the engine is added by the user.
+ */
+fun BrowserStore.defaultSearchEngineName(): String {
+ val defaultSearchEngine = state.search.selectedOrDefaultSearchEngine
+ return if (defaultSearchEngine?.type == SearchEngine.Type.CUSTOM) {
+ "custom"
+ } else {
+ defaultSearchEngine?.name ?: "<none>"
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/BrowserToolbar.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/BrowserToolbar.kt
new file mode 100644
index 0000000000..e719986a9d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/BrowserToolbar.kt
@@ -0,0 +1,86 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ext
+
+import android.content.Context
+import androidx.coordinatorlayout.widget.CoordinatorLayout
+import androidx.core.view.isVisible
+import mozilla.components.browser.toolbar.BrowserToolbar
+import mozilla.components.concept.engine.EngineView
+import mozilla.components.ui.widgets.behavior.EngineViewClippingBehavior
+import mozilla.components.ui.widgets.behavior.EngineViewScrollingBehavior
+import org.mozilla.focus.R
+import mozilla.components.ui.widgets.behavior.ToolbarPosition as engineToolbarPosition
+import mozilla.components.ui.widgets.behavior.ViewPosition as browserToolbarPosition
+
+/**
+ * Collapse the toolbar and block it from appearing until calling [enableDynamicBehavior].
+ * Useful in situations like entering fullscreen.
+ *
+ * @param engineView [EngineView] previously set to react to toolbar's dynamic behavior.
+ * Will now go through a bit of cleanup to ensure everything will be displayed nicely even without a toolbar.
+ */
+fun BrowserToolbar.disableDynamicBehavior(engineView: EngineView) {
+ (layoutParams as? CoordinatorLayout.LayoutParams)?.behavior = null
+
+ engineView.setDynamicToolbarMaxHeight(0)
+ engineView.asView().translationY = 0f
+ (engineView.asView().layoutParams as? CoordinatorLayout.LayoutParams)?.behavior = null
+}
+
+/**
+ * Expand the toolbar and reenable the dynamic behavior.
+ * Useful after [disableDynamicBehavior] for situations like exiting fullscreen.
+ *
+ * @param context [Context] used in setting up the dynamic behavior.
+ * @param engineView [EngineView] that should react to toolbar's dynamic behavior.
+ */
+fun BrowserToolbar.enableDynamicBehavior(context: Context, engineView: EngineView) {
+ (layoutParams as? CoordinatorLayout.LayoutParams)?.behavior = EngineViewScrollingBehavior(
+ context,
+ null,
+ browserToolbarPosition.TOP,
+ )
+
+ val toolbarHeight = context.resources.getDimension(R.dimen.browser_toolbar_height).toInt()
+ engineView.setDynamicToolbarMaxHeight(toolbarHeight)
+ (engineView.asView().layoutParams as? CoordinatorLayout.LayoutParams)?.apply {
+ topMargin = 0
+ behavior = EngineViewClippingBehavior(
+ context,
+ null,
+ engineView.asView(),
+ toolbarHeight,
+ engineToolbarPosition.TOP,
+ )
+ }
+}
+
+/**
+ * Show this toolbar at the top of the screen, fixed in place, with the EngineView immediately below it.
+ *
+ * @param context [Context] used for various system interactions
+ * @param engineView [EngineView] that must be shown immediately below the toolbar.
+ */
+fun BrowserToolbar.showAsFixed(context: Context, engineView: EngineView) {
+ isVisible = true
+
+ engineView.setDynamicToolbarMaxHeight(0)
+
+ val toolbarHeight = context.resources.getDimension(R.dimen.browser_toolbar_height).toInt()
+ (engineView.asView().layoutParams as? CoordinatorLayout.LayoutParams)?.topMargin = toolbarHeight
+}
+
+/**
+ * Remove this toolbar from the screen and allow the EngineView to occupy the entire screen.
+ *
+ * @param engineView [EngineView] that will be configured to occupy the entire screen.
+ */
+fun BrowserToolbar.hide(engineView: EngineView) {
+ engineView.setDynamicToolbarMaxHeight(0)
+ (engineView.asView().layoutParams as? CoordinatorLayout.LayoutParams)?.topMargin = 0
+
+ isVisible = false
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/ContentState.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/ContentState.kt
new file mode 100644
index 0000000000..86ecc538b0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/ContentState.kt
@@ -0,0 +1,16 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ext
+
+import mozilla.components.browser.state.state.ContentState
+
+val ContentState.hasSearchTerms: Boolean
+ get() = searchTerms.isNotEmpty()
+
+/**
+ * Returns the tab site title or domain name if title is empty.
+ */
+val ContentState.titleOrDomain: String
+ get() = title.ifEmpty { url.tryGetRootDomain }
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Context.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Context.kt
new file mode 100644
index 0000000000..e4b8f89bb3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Context.kt
@@ -0,0 +1,60 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ext
+
+import android.app.Activity
+import android.content.Context
+import android.view.ContextThemeWrapper
+import android.view.accessibility.AccessibilityManager
+import mozilla.components.support.utils.ext.getPackageInfoCompat
+import org.mozilla.focus.Components
+import org.mozilla.focus.FocusApplication
+import org.mozilla.focus.utils.Settings
+import org.mozilla.gecko.util.HardwareUtils
+import java.text.DateFormat
+
+/**
+ * Get the FocusApplication object from a context.
+ */
+val Context.application: FocusApplication
+ get() = applicationContext as FocusApplication
+
+/**
+ * Get the components of this application.
+ */
+val Context.components: Components
+ get() = application.components
+
+/**
+ * Get the settings of this application.
+ */
+val Context.settings: Settings
+ get() = application.components.settings
+
+/**
+ * System's [AccessibilityManager].
+ */
+val Context.accessibilityManager: AccessibilityManager
+ get() = getSystemService(Context.ACCESSIBILITY_SERVICE) as AccessibilityManager
+
+/**
+ * Get the app install date.
+ */
+val Context.installedDate: String
+ get() {
+ val installTime = this.packageManager.getPackageInfoCompat(this.packageName, 0).firstInstallTime
+ return DateFormat.getDateInstance().format(installTime)
+ }
+
+/**
+ * Checks if the current device is a tablet.
+ */
+fun Context.isTablet(): Boolean = HardwareUtils.isTablet(this)
+
+/**
+ * Casts [Context] to [Activity].
+ */
+fun Context.tryAsActivity() =
+ (this as? ContextThemeWrapper)?.baseContext as? Activity ?: this as? Activity
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Fragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Fragment.kt
new file mode 100644
index 0000000000..e0694eb0be
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Fragment.kt
@@ -0,0 +1,47 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ext
+
+import androidx.annotation.StringRes
+import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.Fragment
+import org.mozilla.focus.Components
+import org.mozilla.focus.activity.MainActivity
+
+/**
+ * Get the components of this application or null if this Fragment is not attached to a Context.
+ */
+val Fragment.components: Components?
+ get() = context?.components
+
+/**
+ * Get the components of this application.
+ *
+ * This method will throw an exception if this Fragment is not attached to a Context.
+ */
+val Fragment.requireComponents: Components
+ get() = requireContext().components
+
+/**
+ * Get the preference key.
+ * @param preferenceId Resource ID from preference_keys
+ */
+fun Fragment.getPreferenceKey(@StringRes preferenceId: Int): String = getString(preferenceId)
+
+/**
+ * Displays the toolbar with the given [title] if the parent activity
+ * can be casted to [AppCompatActivity] and [MainActivity]
+ */
+fun Fragment.showToolbar(title: String) {
+ (requireActivity() as? AppCompatActivity)?.title = title
+ (requireActivity() as? MainActivity)?.getToolbar()?.show()
+}
+
+/**
+ * Hides the activity toolbar if the fragment is attached to an [AppCompatActivity].
+ */
+fun Fragment.hideToolbar() {
+ (requireActivity() as? AppCompatActivity)?.supportActionBar?.hide()
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/PreferenceFragmentCompat.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/PreferenceFragmentCompat.kt
new file mode 100644
index 0000000000..a1349c5bdc
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/PreferenceFragmentCompat.kt
@@ -0,0 +1,16 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ext
+
+import androidx.annotation.StringRes
+import androidx.preference.Preference
+import androidx.preference.PreferenceFragmentCompat
+
+/**
+ * Find a preference with the corresponding key and throw if it does not exist.
+ * @param preferenceId Resource ID from preference_keys
+ */
+fun <T : Preference> PreferenceFragmentCompat.requirePreference(@StringRes preferenceId: Int) =
+ requireNotNull(findPreference<T>(getPreferenceKey(preferenceId)))
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/SessionState.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/SessionState.kt
new file mode 100644
index 0000000000..f211bc6b45
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/SessionState.kt
@@ -0,0 +1,25 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ext
+
+import mozilla.components.browser.state.state.CustomTabSessionState
+import mozilla.components.browser.state.state.SessionState
+
+/**
+ * Returns this [SessionState] cast to [CustomTabSessionState] if possible. Otherwise returns `null`.
+ */
+fun SessionState.ifCustomTab(): CustomTabSessionState? {
+ if (this is CustomTabSessionState) {
+ return this
+ }
+ return null
+}
+
+/**
+ * Returns `true` if this [SessionState] is a custom tab (an instance of [CustomTabSessionState]).
+ */
+fun SessionState.isCustomTab(): Boolean {
+ return this is CustomTabSessionState
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/String.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/String.kt
new file mode 100644
index 0000000000..d0711ab15d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/String.kt
@@ -0,0 +1,75 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ext
+
+import androidx.compose.ui.graphics.Color
+import androidx.core.net.toUri
+import mozilla.components.support.ktx.android.net.hostWithoutCommonPrefixes
+import mozilla.components.support.ktx.util.URLStringUtils
+
+// Extension functions for the String class
+
+/**
+ * Beautify a URL by truncating it in a way that highlights important parts of the URL.
+ *
+ * Spec: https://github.com/mozilla-mobile/focus-android/issues/1231#issuecomment-326237077
+ */
+fun String.beautifyUrl(): String {
+ if (isNullOrEmpty() || !URLStringUtils.isHttpOrHttps(this)) {
+ return this
+ }
+
+ val beautifulUrl = StringBuilder()
+
+ val uri = this.toUri()
+
+ // Use only the truncated host name
+
+ val truncatedHost = uri.truncatedHost()
+ if (truncatedHost.isNullOrEmpty()) {
+ return this
+ }
+
+ beautifulUrl.append(truncatedHost)
+
+ // Append the truncated path
+
+ val truncatedPath = uri.truncatedPath()
+ if (truncatedPath.isNotEmpty()) {
+ beautifulUrl.append(truncatedPath)
+ }
+
+ // And then append (only) the first query parameter
+
+ val query = uri.query
+ if (!query.isNullOrEmpty()) {
+ beautifulUrl.append("?")
+ beautifulUrl.append(query.split("&").first())
+ }
+
+ // We always append a fragment if there's one
+
+ val fragment = uri.fragment
+ if (!fragment.isNullOrEmpty()) {
+ beautifulUrl.append("#")
+ beautifulUrl.append(fragment)
+ }
+
+ return beautifulUrl.toString()
+}
+
+/**
+ * Tries to parse and get root domain part if [String] is a valid URL.
+ */
+val String.tryGetRootDomain: String
+ get() =
+ this.toUri().hostWithoutCommonPrefixes?.replaceAfter(".", "")?.removeSuffix(".")
+ ?.replaceFirstChar { it.uppercase() } ?: this
+
+/**
+ * Tries to parse a color string and return a [Color]
+ */
+val String.color: Color
+ get() = Color(android.graphics.Color.parseColor(this))
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Uri.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Uri.kt
new file mode 100644
index 0000000000..b13857f84c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ext/Uri.kt
@@ -0,0 +1,69 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ext
+
+import android.net.Uri
+import mozilla.components.support.ktx.kotlin.ELLIPSIS
+
+// Extension functions for the android.net.Uri class
+
+/**
+ * Return the truncated host of this Uri. The truncated host will only contain up to 2-3 segments of
+ * the original host. The original host will be returned if it's null or and empty String.
+ *
+ * Examples:
+ * mail.google.com -> google.com
+ * www.tomshardware.co.uk -> tomshardware.co.uk
+ *
+ * Spec: https://github.com/mozilla-mobile/focus-android/issues/1231#issuecomment-326237077
+ */
+fun Uri.truncatedHost(): String? {
+ if (host.isNullOrEmpty()) {
+ return host
+ }
+
+ // We start with the host name:
+ // * Pick the last two segments:
+ // en.m.wikipedia.org -> wikipedia.org
+ // * If the last element has a length of 2 or less than take another segment:
+ // www.tomshardware.co.uk -> tomshardware.co.uk
+ // * If there's no host then just remove the URL as is.
+
+ val hostSegments = host!!.split(".")
+ val usedHostSegments = mutableListOf<String>()
+
+ for (segment in hostSegments.reversed()) {
+ if (usedHostSegments.size < 2) {
+ // We always pick the first two segments
+ usedHostSegments.add(0, segment)
+ } else if (usedHostSegments.first().length <= 2) {
+ // The last segment has a length of 2 or less -> pick this segment too
+ usedHostSegments.add(0, segment)
+ } else {
+ // We have everything we need. Bail out.
+ break
+ }
+ }
+
+ return usedHostSegments.joinToString(separator = ".")
+}
+
+/**
+ * Return the truncated path only containing the first and last segment of the full path. If the
+ * Uri does not have a path an empty String will be returned.
+ *
+ * Example:
+ * /foo/bar/test/index.html -> /foo/…/index.html
+ */
+fun Uri.truncatedPath(): String {
+ val segments = pathSegments
+
+ return when (segments.size) {
+ 0 -> ""
+ 1 -> "/" + segments[0]
+ 2 -> "/" + segments.joinToString(separator = "/")
+ else -> "/" + listOf(segments.first(), Char.ELLIPSIS, segments.last()).joinToString(separator = "/")
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/firstrun/FirstrunCardView.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/firstrun/FirstrunCardView.kt
new file mode 100644
index 0000000000..eea14dc1ff
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/firstrun/FirstrunCardView.kt
@@ -0,0 +1,38 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.firstrun
+
+import android.content.Context
+import android.util.AttributeSet
+import org.mozilla.focus.R
+import kotlin.math.min
+
+class FirstrunCardView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = R.attr.cardViewStyle,
+) : androidx.cardview.widget.CardView(context, attrs, defStyleAttr) {
+
+ private val maxWidth = resources.getDimensionPixelSize(R.dimen.firstrun_card_width)
+ private val maxHeight = resources.getDimensionPixelSize(R.dimen.firstrun_card_height)
+
+ override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
+ // The view is set to match_parent in the layout file. So width and height should be the
+ // value needed to fill the whole parent view.
+ val availableWidth = MeasureSpec.getSize(widthMeasureSpec)
+ val availableHeight = MeasureSpec.getSize(heightMeasureSpec)
+
+ // Now let's use those sizes to measure - but let's not exceed our defined max sizes (We do
+ // not want to have gigantic cards on large devices like tablets.)
+ val measuredWidth = min(availableWidth, maxWidth)
+ val measuredHeight = min(availableHeight, maxHeight)
+
+ // Let's use the measured values to hand them to the super class to measure the child views etc.
+ val newWidthMeasureSpec = MeasureSpec.makeMeasureSpec(measuredWidth, MeasureSpec.EXACTLY)
+ val newHeightMeasureSpec = MeasureSpec.makeMeasureSpec(measuredHeight, MeasureSpec.EXACTLY)
+
+ super.onMeasure(newWidthMeasureSpec, newHeightMeasureSpec)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/firstrun/FirstrunPagerAdapter.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/firstrun/FirstrunPagerAdapter.kt
new file mode 100644
index 0000000000..e3a60d271c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/firstrun/FirstrunPagerAdapter.kt
@@ -0,0 +1,103 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.firstrun
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.Button
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import org.mozilla.focus.R
+
+class FirstrunPagerAdapter(
+ private val context: Context,
+ private val listener: View.OnClickListener,
+) : PagerAdapter() {
+
+ private data class FirstrunPage(val title: String, val text: String, val imageResource: Int) {
+ val contentDescription = title + text
+ }
+
+ private val pages: Array<FirstrunPage>
+
+ init {
+ val appName = context.getString(R.string.app_name)
+ pages = arrayOf(
+ FirstrunPage(
+ context.getString(R.string.firstrun_defaultbrowser_title),
+ context.getString(R.string.firstrun_defaultbrowser_text2),
+ R.drawable.onboarding_img1,
+ ),
+ FirstrunPage(
+ context.getString(R.string.firstrun_search_title),
+ context.getString(R.string.firstrun_search_text),
+ R.drawable.onboarding_img4,
+ ),
+ FirstrunPage(
+ context.getString(R.string.firstrun_shortcut_title),
+ context.getString(R.string.firstrun_shortcut_text, appName),
+ R.drawable.onboarding_img3,
+ ),
+ FirstrunPage(
+ context.getString(R.string.firstrun_privacy_title),
+ context.getString(R.string.firstrun_privacy_text, appName),
+ R.drawable.onboarding_img2,
+ ),
+ )
+ }
+
+ private fun getView(position: Int, pager: ViewPager): View {
+ val view = LayoutInflater.from(context).inflate(R.layout.firstrun_page, pager, false)
+
+ val page = pages[position]
+
+ val titleView: TextView = view.findViewById(R.id.title)
+ titleView.text = page.title
+
+ val textView: TextView = view.findViewById(R.id.text)
+ textView.text = page.text
+
+ val imageView: ImageView = view.findViewById(R.id.image)
+ imageView.setImageResource(page.imageResource)
+
+ val buttonView: Button = view.findViewById(R.id.button)
+ buttonView.setOnClickListener(listener)
+ if (position == pages.size - 1) {
+ buttonView.setText(R.string.firstrun_close_button)
+ buttonView.id = R.id.finish
+ buttonView.contentDescription = buttonView.text.toString().lowercase()
+ } else {
+ buttonView.setText(R.string.firstrun_next_button)
+ buttonView.id = R.id.next
+ }
+
+ return view
+ }
+
+ fun getPageAccessibilityDescription(position: Int): String =
+ pages[position].contentDescription
+
+ override fun isViewFromObject(view: View, any: Any) = view === any
+
+ override fun getCount() = pages.size
+
+ override fun instantiateItem(container: ViewGroup, position: Int): Any {
+ container as ViewPager
+
+ val view = getView(position, container)
+ container.addView(view)
+
+ return view
+ }
+
+ override fun destroyItem(container: ViewGroup, position: Int, view: Any) {
+ view as View
+ container.removeView(view)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/AddToHomescreenDialogFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/AddToHomescreenDialogFragment.kt
new file mode 100644
index 0000000000..f06d789299
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/AddToHomescreenDialogFragment.kt
@@ -0,0 +1,145 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment
+
+import android.os.Bundle
+import android.text.TextUtils
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.view.WindowManager
+import android.widget.Button
+import android.widget.EditText
+import android.widget.ImageView
+import androidx.appcompat.app.AlertDialog
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.core.view.isVisible
+import androidx.fragment.app.DialogFragment
+import androidx.preference.PreferenceManager
+import mozilla.components.browser.icons.IconRequest
+import mozilla.components.service.glean.private.NoExtras
+import org.mozilla.focus.GleanMetrics.AddToHomeScreen
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.shortcut.HomeScreen
+import org.mozilla.focus.shortcut.IconGenerator
+
+/**
+ * Fragment displaying a dialog where a user can change the title for a homescreen shortcut
+ */
+class AddToHomescreenDialogFragment : DialogFragment() {
+
+ @Suppress("LongMethod")
+ override fun onCreateDialog(bundle: Bundle?): AlertDialog {
+ AddToHomeScreen.dialogDisplayed.record(NoExtras())
+ val url = requireArguments().getString(URL)!!
+ val title = requireArguments().getString(TITLE)
+ val blockingEnabled = requireArguments().getBoolean(BLOCKING_ENABLED)
+ val requestDesktop = requireArguments().getBoolean(REQUEST_DESKTOP)
+
+ val builder = AlertDialog.Builder(requireActivity(), R.style.DialogStyle)
+ builder.setCancelable(true)
+ val inflater = requireActivity().layoutInflater
+ val dialogView = inflater.inflate(R.layout.dialog_add_to_homescreen2, null)
+ builder.setView(dialogView)
+
+ val iconView = dialogView.findViewById<ImageView>(R.id.homescreen_icon)
+ requireContext().components.icons.loadIntoView(
+ iconView,
+ IconRequest(url, isPrivate = true),
+ )
+
+ val blockIcon = dialogView.findViewById<ImageView>(R.id.homescreen_dialog_block_icon)
+ blockIcon.setImageResource(R.drawable.mozac_ic_shield_slash_24)
+ val warning =
+ dialogView.findViewById<ConstraintLayout>(R.id.homescreen_dialog_warning_layout)
+ warning.isVisible = !blockingEnabled
+
+ val editableTitle = dialogView.findViewById<EditText>(R.id.edit_title)
+
+ if (!TextUtils.isEmpty(title)) {
+ editableTitle.setText(title)
+ }
+
+ setButtons(dialogView, editableTitle, url, blockingEnabled, requestDesktop, title)
+
+ return builder.create()
+ }
+
+ @Suppress("LongParameterList")
+ private fun setButtons(
+ parentView: View,
+ editableTitle: EditText,
+ iconUrl: String,
+ blockingEnabled: Boolean,
+ requestDesktop: Boolean,
+ initialTitle: String?,
+ ) {
+ val addToHomescreenDialogCancelButton =
+ parentView.findViewById<Button>(R.id.addtohomescreen_dialog_cancel)
+ val addToHomescreenDialogConfirmButton =
+ parentView.findViewById<Button>(R.id.addtohomescreen_dialog_add)
+
+ addToHomescreenDialogCancelButton.setOnClickListener {
+ AddToHomeScreen.cancelButtonTapped.record(NoExtras())
+
+ dismiss()
+ }
+
+ addToHomescreenDialogConfirmButton.setOnClickListener {
+ HomeScreen.installShortCut(
+ requireContext(),
+ IconGenerator.generateLauncherIcon(requireContext(), iconUrl),
+ iconUrl,
+ editableTitle.text.toString().trim { it <= ' ' },
+ blockingEnabled,
+ requestDesktop,
+ )
+
+ val hasEditedTitle = initialTitle != editableTitle.text.toString().trim { it <= ' ' }
+ AddToHomeScreen.addButtonTapped.record(
+ AddToHomeScreen.AddButtonTappedExtra(
+ hasEditedTitle = hasEditedTitle,
+ ),
+ )
+
+ PreferenceManager.getDefaultSharedPreferences(requireContext()).edit()
+ .putBoolean(
+ requireContext().getString(R.string.has_added_to_home_screen),
+ true,
+ ).apply()
+ dismiss()
+ }
+ }
+
+ override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+ dialog?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
+ return super.onCreateView(inflater, container, savedInstanceState)
+ }
+
+ companion object {
+ const val FRAGMENT_TAG = "add-to-homescreen-prompt-dialog"
+ private const val URL = "url"
+ private const val TITLE = "title"
+ private const val BLOCKING_ENABLED = "blocking_enabled"
+ private const val REQUEST_DESKTOP = "request_desktop"
+
+ fun newInstance(
+ url: String,
+ title: String,
+ blockingEnabled: Boolean,
+ requestDesktop: Boolean,
+ ): AddToHomescreenDialogFragment {
+ val frag = AddToHomescreenDialogFragment()
+ val args = Bundle()
+ args.putString(URL, url)
+ args.putString(TITLE, title)
+ args.putBoolean(BLOCKING_ENABLED, blockingEnabled)
+ args.putBoolean(REQUEST_DESKTOP, requestDesktop)
+ frag.arguments = args
+ return frag
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/BaseFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/BaseFragment.kt
new file mode 100644
index 0000000000..90e357f039
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/BaseFragment.kt
@@ -0,0 +1,57 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment
+
+import android.content.res.Resources
+import android.view.animation.Animation
+import android.view.animation.AnimationSet
+import android.view.animation.AnimationUtils
+import androidx.core.view.isInvisible
+import androidx.fragment.app.Fragment
+import org.mozilla.focus.ext.hideToolbar
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.state.Screen
+
+abstract class BaseFragment : Fragment() {
+ private var animationSet: AnimationSet? = null
+
+ override fun onResume() {
+ super.onResume()
+ hideToolbar()
+ view?.isInvisible = requireComponents.appStore.state.screen == Screen.Locked()
+ }
+
+ fun cancelAnimation() {
+ if (animationSet != null) {
+ animationSet!!.duration = 0
+ animationSet!!.cancel()
+ }
+ }
+
+ override fun onPause() {
+ super.onPause()
+ view?.isInvisible = requireComponents.appStore.state.screen == Screen.Locked()
+ }
+
+ @Suppress("SwallowedException")
+ override fun onCreateAnimation(transit: Int, enter: Boolean, nextAnim: Int): Animation? {
+ var animation = super.onCreateAnimation(transit, enter, nextAnim)
+ if (animation == null && nextAnim != 0) {
+ animation = try {
+ AnimationUtils.loadAnimation(activity, nextAnim)
+ } catch (e: Resources.NotFoundException) {
+ return null
+ }
+ }
+ return if (animation != null) {
+ val animSet = AnimationSet(true)
+ animSet.addAnimation(animation)
+ animationSet = animSet
+ animSet
+ } else {
+ null
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/BrowserFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/BrowserFragment.kt
new file mode 100644
index 0000000000..a25f26ef85
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/BrowserFragment.kt
@@ -0,0 +1,1072 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment
+
+import android.annotation.SuppressLint
+import android.content.ClipData
+import android.content.ClipboardManager
+import android.content.Context
+import android.content.Intent
+import android.content.pm.PackageManager
+import android.os.Bundle
+import android.view.Gravity
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.view.accessibility.AccessibilityManager
+import android.webkit.MimeTypeMap
+import android.widget.Toast
+import androidx.activity.result.ActivityResultLauncher
+import androidx.activity.result.contract.ActivityResultContracts
+import androidx.core.content.pm.ShortcutManagerCompat
+import androidx.core.net.toUri
+import androidx.core.view.isVisible
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.lifecycleScope
+import androidx.preference.PreferenceManager
+import com.google.android.material.snackbar.Snackbar
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.DelicateCoroutinesApi
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.cancel
+import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.mapNotNull
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.plus
+import mozilla.components.browser.state.selector.findTabOrCustomTab
+import mozilla.components.browser.state.selector.privateTabs
+import mozilla.components.browser.state.state.CustomTabConfig
+import mozilla.components.browser.state.state.SessionState
+import mozilla.components.browser.state.state.content.DownloadState
+import mozilla.components.browser.state.state.createTab
+import mozilla.components.concept.engine.HitResult
+import mozilla.components.feature.app.links.AppLinksFeature
+import mozilla.components.feature.contextmenu.ContextMenuFeature
+import mozilla.components.feature.downloads.AbstractFetchDownloadService
+import mozilla.components.feature.downloads.DownloadsFeature
+import mozilla.components.feature.downloads.manager.FetchDownloadManager
+import mozilla.components.feature.downloads.temporary.ShareDownloadFeature
+import mozilla.components.feature.media.fullscreen.MediaSessionFullscreenFeature
+import mozilla.components.feature.prompts.PromptFeature
+import mozilla.components.feature.session.PictureInPictureFeature
+import mozilla.components.feature.session.SessionFeature
+import mozilla.components.feature.sitepermissions.SitePermissionsFeature
+import mozilla.components.feature.tabs.WindowFeature
+import mozilla.components.feature.top.sites.TopSitesConfig
+import mozilla.components.feature.top.sites.TopSitesFeature
+import mozilla.components.lib.crash.Crash
+import mozilla.components.lib.state.ext.flowScoped
+import mozilla.components.service.glean.private.NoExtras
+import mozilla.components.support.base.feature.UserInteractionHandler
+import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
+import mozilla.components.support.ktx.android.view.exitImmersiveMode
+import mozilla.components.support.locale.ActivityContextWrapper
+import mozilla.components.support.utils.Browsers
+import mozilla.components.support.utils.StatusBarUtils
+import mozilla.components.support.utils.ext.requestInPlacePermissions
+import org.mozilla.focus.GleanMetrics.Browser
+import org.mozilla.focus.GleanMetrics.CookieBanner
+import org.mozilla.focus.GleanMetrics.Downloads
+import org.mozilla.focus.GleanMetrics.OpenWith
+import org.mozilla.focus.GleanMetrics.TabCount
+import org.mozilla.focus.GleanMetrics.TrackingProtection
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.InstallFirefoxActivity
+import org.mozilla.focus.activity.MainActivity
+import org.mozilla.focus.browser.integration.BrowserMenuController
+import org.mozilla.focus.browser.integration.BrowserToolbarIntegration
+import org.mozilla.focus.browser.integration.FindInPageIntegration
+import org.mozilla.focus.browser.integration.FullScreenIntegration
+import org.mozilla.focus.contextmenu.ContextMenuCandidates
+import org.mozilla.focus.cookiebannerreducer.CookieBannerReducerAction
+import org.mozilla.focus.cookiebannerreducer.CookieBannerReducerDetailsPanel
+import org.mozilla.focus.cookiebannerreducer.CookieBannerReducerMiddleware
+import org.mozilla.focus.cookiebannerreducer.CookieBannerReducerState
+import org.mozilla.focus.cookiebannerreducer.CookieBannerReducerStore
+import org.mozilla.focus.cookiebannerreducer.DefaultCookieBannerReducerInteractor
+import org.mozilla.focus.databinding.FragmentBrowserBinding
+import org.mozilla.focus.downloads.DownloadService
+import org.mozilla.focus.engine.EngineSharedPreferencesListener
+import org.mozilla.focus.ext.accessibilityManager
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.disableDynamicBehavior
+import org.mozilla.focus.ext.enableDynamicBehavior
+import org.mozilla.focus.ext.ifCustomTab
+import org.mozilla.focus.ext.isCustomTab
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.ext.showAsFixed
+import org.mozilla.focus.ext.titleOrDomain
+import org.mozilla.focus.menu.browser.DefaultBrowserMenu
+import org.mozilla.focus.open.OpenWithFragment
+import org.mozilla.focus.session.ui.TabsPopup
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermissionOptionsStorage
+import org.mozilla.focus.settings.privacy.ConnectionDetailsPanel
+import org.mozilla.focus.settings.privacy.TrackingProtectionPanel
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.topsites.DefaultTopSitesStorage.Companion.TOP_SITES_MAX_LIMIT
+import org.mozilla.focus.topsites.DefaultTopSitesView
+import org.mozilla.focus.utils.FocusSnackbar
+import org.mozilla.focus.utils.FocusSnackbarDelegate
+import org.mozilla.focus.utils.IntentUtils
+import org.mozilla.focus.utils.ViewUtils
+import java.net.URLEncoder
+
+/**
+ * Fragment for displaying the browser UI.
+ */
+@Suppress("LargeClass", "TooManyFunctions")
+class BrowserFragment :
+ BaseFragment(),
+ UserInteractionHandler,
+ AccessibilityManager.AccessibilityStateChangeListener {
+
+ private var _binding: FragmentBrowserBinding? = null
+ private val binding get() = _binding!!
+
+ private val findInPageIntegration = ViewBoundFeatureWrapper<FindInPageIntegration>()
+ private val fullScreenIntegration = ViewBoundFeatureWrapper<FullScreenIntegration>()
+ private var pictureInPictureFeature: PictureInPictureFeature? = null
+
+ internal val sessionFeature = ViewBoundFeatureWrapper<SessionFeature>()
+ private val promptFeature = ViewBoundFeatureWrapper<PromptFeature>()
+ private val contextMenuFeature = ViewBoundFeatureWrapper<ContextMenuFeature>()
+ private val downloadsFeature = ViewBoundFeatureWrapper<DownloadsFeature>()
+ private val shareDownloadFeature = ViewBoundFeatureWrapper<ShareDownloadFeature>()
+ private val windowFeature = ViewBoundFeatureWrapper<WindowFeature>()
+ private val appLinksFeature = ViewBoundFeatureWrapper<AppLinksFeature>()
+ private val topSitesFeature = ViewBoundFeatureWrapper<TopSitesFeature>()
+ private var sitePermissionsFeature = ViewBoundFeatureWrapper<SitePermissionsFeature>()
+ private var fullScreenMediaSessionFeature =
+ ViewBoundFeatureWrapper<MediaSessionFullscreenFeature>()
+
+ private val toolbarIntegration = ViewBoundFeatureWrapper<BrowserToolbarIntegration>()
+
+ private var trackingProtectionPanel: TrackingProtectionPanel? = null
+ private lateinit var requestPermissionLauncher: ActivityResultLauncher<Array<String>>
+ private lateinit var cookieBannerReducerStore: CookieBannerReducerStore
+ private lateinit var defaultCookieBannerInteractor: DefaultCookieBannerReducerInteractor
+ private var tabsPopup: TabsPopup? = null
+ private var siteNotSupportedSnackBarScope: CoroutineScope? = null
+
+ /**
+ * The ID of the tab associated with this fragment.
+ */
+ private val tabId: String
+ get() = requireArguments().getString(ARGUMENT_SESSION_UUID)
+ ?: throw IllegalAccessError("No session ID set on fragment")
+
+ /**
+ * The tab associated with this fragment.
+ */
+ val tab: SessionState
+ get() = requireComponents.store.state.findTabOrCustomTab(tabId)
+ // Workaround for tab not existing temporarily.
+ ?: createTab("about:blank")
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ requestPermissionLauncher =
+ registerForActivityResult(
+ ActivityResultContracts.RequestMultiplePermissions(),
+ ) { permissionsResult ->
+ val grandResults = ArrayList<Int>()
+ permissionsResult.entries.forEach {
+ val isGranted = it.value
+ if (isGranted) {
+ grandResults.add(PackageManager.PERMISSION_GRANTED)
+ } else {
+ grandResults.add(PackageManager.PERMISSION_DENIED)
+ }
+ }
+ val feature = sitePermissionsFeature.get()
+ feature?.onPermissionsResult(
+ permissionsResult.keys.toTypedArray(),
+ grandResults.toIntArray(),
+ )
+ }
+ }
+
+ /**
+ * Initialize CookieBannerStore ,Interactor and report site snackBar
+ * when tacking protection panel is shown.
+ */
+ fun initCookieBanner() {
+ cookieBannerReducerStore = CookieBannerReducerStore(
+ CookieBannerReducerState(),
+ listOf(
+ CookieBannerReducerMiddleware(
+ ioScope = this.lifecycleScope + Dispatchers.IO,
+ cookieBannersStorage = requireContext().components.cookieBannerStorage,
+ appContext = requireContext(),
+ currentTab = tab,
+ ),
+ ),
+ )
+ defaultCookieBannerInteractor = DefaultCookieBannerReducerInteractor(
+ store = cookieBannerReducerStore,
+ )
+ updateCookieBannerSiteToReportSnackBar()
+ }
+
+ private fun updateCookieBannerSiteToReportSnackBar() {
+ siteNotSupportedSnackBarScope = cookieBannerReducerStore.flowScoped { flow ->
+ flow.mapNotNull { state -> state.showSnackBarForSiteToReport }
+ .distinctUntilChanged()
+ .collect { showSnackBarForSiteToReport ->
+ if (showSnackBarForSiteToReport) {
+ ViewUtils.showBrandedSnackbar(
+ view,
+ R.string.cookie_banner_report_a_site_snackbar_label,
+ 0,
+ )
+ cookieBannerReducerStore.dispatch(
+ CookieBannerReducerAction.ShowSnackBarForSiteToReport(
+ false,
+ ),
+ )
+ }
+ }
+ }
+ }
+
+ @Suppress("LongMethod", "ComplexMethod")
+ override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
+ _binding = FragmentBrowserBinding.inflate(inflater, container, false)
+
+ requireContext().accessibilityManager.addAccessibilityStateChangeListener(this)
+
+ val originalContext = ActivityContextWrapper.getOriginalContext(requireActivity())
+ binding.engineView.setActivityContext(originalContext)
+
+ return binding.root
+ }
+
+ @SuppressLint("VisibleForTests")
+ @Suppress("ComplexCondition", "LongMethod")
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ val components = requireComponents
+
+ findInPageIntegration.set(
+ FindInPageIntegration(
+ components.store,
+ binding.findInPage,
+ binding.browserToolbar,
+ binding.engineView,
+ ),
+ this,
+ view,
+ )
+
+ fullScreenIntegration.set(
+ FullScreenIntegration(
+ requireActivity(),
+ components.store,
+ tab.id,
+ components.sessionUseCases,
+ requireContext().settings,
+ binding.browserToolbar,
+ binding.statusBarBackground,
+ binding.engineView,
+ parentFragmentManager,
+ ),
+ this,
+ view,
+ )
+
+ pictureInPictureFeature = PictureInPictureFeature(
+ store = components.store,
+ activity = requireActivity(),
+ crashReporting = components.crashReporter,
+ tabId = tabId,
+ )
+
+ contextMenuFeature.set(
+ ContextMenuFeature(
+ parentFragmentManager,
+ components.store,
+ ContextMenuCandidates.get(
+ requireContext(),
+ components.tabsUseCases,
+ components.contextMenuUseCases,
+ components.appLinksUseCases,
+ view,
+ FocusSnackbarDelegate(view),
+ tab.isCustomTab(),
+ ),
+ binding.engineView,
+ requireComponents.contextMenuUseCases,
+ tabId,
+ additionalNote = { hitResult -> getAdditionalNote(hitResult) },
+ ),
+ this,
+ view,
+ )
+
+ sessionFeature.set(
+ SessionFeature(
+ components.store,
+ components.sessionUseCases.goBack,
+ binding.engineView,
+ tab.id,
+ ),
+ this,
+ view,
+ )
+
+ promptFeature.set(
+ PromptFeature(
+ fragment = this,
+ store = components.store,
+ tabsUseCases = components.tabsUseCases,
+ customTabId = tryGetCustomTabId(),
+ fragmentManager = parentFragmentManager,
+ fileUploadsDirCleaner = requireComponents.fileUploadsDirCleaner,
+ onNeedToRequestPermissions = { permissions ->
+ requestInPlacePermissions(REQUEST_KEY_PROMPT_PERMISSIONS, permissions) { result ->
+ promptFeature.get()?.onPermissionsResult(
+ result.keys.toTypedArray(),
+ result.values.map {
+ when (it) {
+ true -> PackageManager.PERMISSION_GRANTED
+ false -> PackageManager.PERMISSION_DENIED
+ }
+ }.toIntArray(),
+ )
+ }
+ },
+ ),
+ this,
+ view,
+ )
+
+ downloadsFeature.set(
+ DownloadsFeature(
+ requireContext().applicationContext,
+ components.store,
+ components.downloadsUseCases,
+ fragmentManager = childFragmentManager,
+ tabId = tabId,
+ downloadManager = FetchDownloadManager(
+ requireContext().applicationContext,
+ components.store,
+ DownloadService::class,
+ notificationsDelegate = components.notificationsDelegate,
+ ),
+ onNeedToRequestPermissions = { permissions ->
+ requestInPlacePermissions(REQUEST_KEY_DOWNLOAD_PERMISSIONS, permissions) { result ->
+ downloadsFeature.get()?.onPermissionsResult(
+ result.keys.toTypedArray(),
+ result.values.map {
+ when (it) {
+ true -> PackageManager.PERMISSION_GRANTED
+ false -> PackageManager.PERMISSION_DENIED
+ }
+ }.toIntArray(),
+ )
+ }
+ },
+ onDownloadStopped = { state, _, status ->
+ handleDownloadStopped(state, status)
+ },
+ ),
+ this,
+ view,
+ )
+
+ shareDownloadFeature.set(
+ ShareDownloadFeature(
+ context = requireContext().applicationContext,
+ httpClient = components.client,
+ store = components.store,
+ tabId = tab.id,
+ ),
+ this,
+ view,
+ )
+
+ appLinksFeature.set(
+ feature = AppLinksFeature(
+ requireContext(),
+ store = components.store,
+ sessionId = tabId,
+ fragmentManager = parentFragmentManager,
+ launchInApp = { requireContext().settings.openLinksInExternalApp },
+ loadUrlUseCase = requireContext().components.sessionUseCases.loadUrl,
+ failedToLaunchAction = { fallbackUrl ->
+ fallbackUrl?.let {
+ val appLinksUseCases = components.appLinksUseCases
+ val getRedirect = appLinksUseCases.appLinkRedirect
+ val redirect = getRedirect.invoke(fallbackUrl)
+ redirect.appIntent?.flags = Intent.FLAG_ACTIVITY_NEW_TASK
+ appLinksUseCases.openAppLink.invoke(redirect.appIntent)
+ }
+ },
+ ),
+ owner = this,
+ view = view,
+ )
+
+ topSitesFeature.set(
+ feature = TopSitesFeature(
+ view = DefaultTopSitesView(requireComponents.appStore),
+ storage = requireComponents.topSitesStorage,
+ config = {
+ TopSitesConfig(
+ totalSites = TOP_SITES_MAX_LIMIT,
+ frecencyConfig = null,
+ providerConfig = null,
+ )
+ },
+ ),
+ owner = this,
+ view = view,
+ )
+
+ customizeToolbar()
+
+ val customTabConfig = tab.ifCustomTab()?.config
+ if (customTabConfig != null) {
+ initialiseCustomTabUi(customTabConfig)
+
+ // TODO Add custom tabs window feature support
+ // We to add support for Custom Tabs here, however in order to send the window request
+ // back to us through the intent system, we need to register a unique schema that we
+ // can handle. For example, Fenix Nighlyt does this today with `fenix-nightly://`.
+ } else {
+ initialiseNormalBrowserUi()
+
+ windowFeature.set(
+ feature = WindowFeature(
+ store = components.store,
+ tabsUseCases = components.tabsUseCases,
+ ),
+ owner = this,
+ view = view,
+ )
+ }
+
+ // Feature that handles MediaSession state changes
+ fullScreenMediaSessionFeature.set(
+ feature = MediaSessionFullscreenFeature(requireActivity(), requireComponents.store, tryGetCustomTabId()),
+ owner = this,
+ view = view,
+ )
+
+ setSitePermissions(view)
+ }
+
+ private fun setSitePermissions(rootView: View) {
+ sitePermissionsFeature.set(
+ feature = SitePermissionsFeature(
+ context = requireContext(),
+ fragmentManager = parentFragmentManager,
+ onNeedToRequestPermissions = { permissions ->
+ if (SitePermissionOptionsStorage(requireContext()).isSitePermissionNotBlocked(permissions)) {
+ requestPermissionLauncher.launch(permissions)
+ }
+ },
+ onShouldShowRequestPermissionRationale = {
+ // Since we don't request permissions this it will not be called
+ false
+ },
+ sitePermissionsRules = SitePermissionOptionsStorage(requireContext()).getSitePermissionsSettingsRules(),
+ sessionId = tabId,
+ store = requireComponents.store,
+ shouldShowDoNotAskAgainCheckBox = false,
+ ),
+ owner = this,
+ view = rootView,
+ )
+ if (requireComponents.appStore.state.sitePermissionOptionChange) {
+ requireComponents.sessionUseCases.reload(tabId)
+ requireComponents.appStore.dispatch(AppAction.SitePermissionOptionChange(false))
+ }
+ }
+
+ override fun onAccessibilityStateChanged(enabled: Boolean) {
+ when (enabled) {
+ // using _binding, because this might be called before onCreateView.
+ false -> _binding?.browserToolbar?.enableDynamicBehavior(
+ requireContext(),
+ binding.engineView,
+ )
+ true -> {
+ _binding?.browserToolbar?.let {
+ it.disableDynamicBehavior(binding.engineView)
+ it.showAsFixed(requireContext(), binding.engineView)
+ }
+ }
+ }
+ }
+
+ override fun onPictureInPictureModeChanged(enabled: Boolean) {
+ pictureInPictureFeature?.onPictureInPictureModeChanged(enabled)
+ if (lifecycle.currentState == Lifecycle.State.CREATED) {
+ onBackPressed()
+ }
+ }
+
+ private fun getAdditionalNote(hitResult: HitResult): String? {
+ return if ((hitResult is HitResult.IMAGE_SRC || hitResult is HitResult.IMAGE) &&
+ hitResult.src.isNotEmpty()
+ ) {
+ getString(R.string.contextmenu_erased_images_note2, getString(R.string.app_name))
+ } else {
+ null
+ }
+ }
+
+ private fun customizeToolbar() {
+ val controller = BrowserMenuController(
+ requireComponents.sessionUseCases,
+ requireComponents.appStore,
+ requireComponents.store,
+ requireComponents.topSitesUseCases,
+ tabId,
+ ::shareCurrentUrl,
+ ::setShouldRequestDesktop,
+ ::showAddToHomescreenDialog,
+ ::showFindInPageBar,
+ ::openSelectBrowser,
+ ::openInBrowser,
+ ::showShortcutAddedSnackBar,
+ )
+
+ if (tab.ifCustomTab()?.config == null) {
+ val browserMenu = DefaultBrowserMenu(
+ context = requireContext(),
+ appStore = requireComponents.appStore,
+ store = requireComponents.store,
+ isPinningSupported = ShortcutManagerCompat.isRequestPinShortcutSupported(
+ requireContext(),
+ ),
+ onItemTapped = { controller.handleMenuInteraction(it) },
+ )
+ binding.browserToolbar.display.menuBuilder = browserMenu.menuBuilder
+ }
+
+ toolbarIntegration.set(
+ BrowserToolbarIntegration(
+ requireComponents.store,
+ toolbar = binding.browserToolbar,
+ fragment = this,
+ controller = controller,
+ customTabId = tryGetCustomTabId(),
+ customTabsUseCases = requireComponents.customTabsUseCases,
+ sessionUseCases = requireComponents.sessionUseCases,
+ onUrlLongClicked = ::onUrlLongClicked,
+ eraseActionListener = { erase(shouldEraseAllTabs = true) },
+ tabCounterListener = ::tabCounterListener,
+ ),
+ owner = this,
+ view = binding.browserToolbar,
+ )
+ }
+
+ private fun showShortcutAddedSnackBar() {
+ FocusSnackbar.make(requireView())
+ .setText(requireContext().getString(R.string.snackbar_added_to_shortcuts))
+ .show()
+ }
+
+ private fun initialiseNormalBrowserUi() {
+ if (!requireContext().settings.isAccessibilityEnabled()) {
+ binding.browserToolbar.enableDynamicBehavior(requireContext(), binding.engineView)
+ } else {
+ binding.browserToolbar.showAsFixed(requireContext(), binding.engineView)
+ }
+ }
+
+ private fun initialiseCustomTabUi(customTabConfig: CustomTabConfig) {
+ if (customTabConfig.enableUrlbarHiding && !requireContext().settings.isAccessibilityEnabled()) {
+ binding.browserToolbar.enableDynamicBehavior(requireContext(), binding.engineView)
+ } else {
+ binding.browserToolbar.showAsFixed(requireContext(), binding.engineView)
+ }
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+
+ requireContext().accessibilityManager.removeAccessibilityStateChangeListener(this)
+ binding.engineView.setActivityContext(null)
+
+ _binding = null
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+
+ // This fragment might get destroyed before the user left immersive mode (e.g. by opening another URL from an
+ // app). In this case let's leave immersive mode now when the fragment gets destroyed.
+ requireActivity().exitImmersiveMode()
+ }
+
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+ promptFeature.withFeature { it.onActivityResult(requestCode, data, resultCode) }
+ }
+
+ @OptIn(DelicateCoroutinesApi::class)
+ private fun showCrashReporter(crash: Crash) {
+ val fragmentManager = requireActivity().supportFragmentManager
+
+ if (crashReporterIsVisible()) {
+ // We are already displaying the crash reporter
+ // No need to show another one.
+ return
+ }
+
+ val crashReporterFragment = CrashReporterFragment.create()
+
+ crashReporterFragment.onCloseTabPressed = { sendCrashReport ->
+ if (sendCrashReport) {
+ val crashReporter = requireComponents.crashReporter
+
+ GlobalScope.launch(Dispatchers.IO) { crashReporter.submitReport(crash) }
+ }
+
+ requireComponents.sessionUseCases.crashRecovery.invoke()
+ erase()
+ hideCrashReporter()
+ }
+
+ fragmentManager
+ .beginTransaction()
+ .addToBackStack(null)
+ .add(R.id.crash_container, crashReporterFragment, CrashReporterFragment.FRAGMENT_TAG)
+ .commit()
+
+ binding.crashContainer.isVisible = true
+ }
+
+ private fun hideCrashReporter() {
+ val fragmentManager = requireActivity().supportFragmentManager
+ val fragment = fragmentManager.findFragmentByTag(CrashReporterFragment.FRAGMENT_TAG)
+ ?: return
+
+ fragmentManager
+ .beginTransaction()
+ .remove(fragment)
+ .commit()
+
+ binding.crashContainer.isVisible = false
+ }
+
+ fun crashReporterIsVisible(): Boolean = requireActivity().supportFragmentManager.let {
+ it.findFragmentByTag(CrashReporterFragment.FRAGMENT_TAG)?.isVisible ?: false
+ }
+
+ private fun handleDownloadStopped(
+ state: DownloadState,
+ status: DownloadState.Status,
+ ) {
+ val extension =
+ MimeTypeMap.getFileExtensionFromUrl(URLEncoder.encode(state.filePath, "utf-8"))
+
+ when (status) {
+ DownloadState.Status.FAILED -> {
+ Downloads.downloadFailed.record(Downloads.DownloadFailedExtra(extension))
+ }
+
+ DownloadState.Status.PAUSED -> {
+ Downloads.downloadPaused.record(NoExtras())
+ }
+
+ DownloadState.Status.COMPLETED -> {
+ Downloads.downloadCompleted.record(NoExtras())
+
+ showDownloadCompletedSnackbar(state, extension)
+ }
+
+ else -> {
+ }
+ }
+ }
+
+ override fun onPause() {
+ super.onPause()
+ // Custom tab content should always be visible, even if the app is locked.
+ if (tab.isCustomTab()) {
+ view?.isVisible = true
+ }
+ }
+ private fun showDownloadCompletedSnackbar(
+ state: DownloadState,
+ extension: String?,
+ ) {
+ val snackbar = FocusSnackbar.make(
+ requireView(),
+ Snackbar.LENGTH_LONG,
+ )
+
+ snackbar.setText(
+ String.format(
+ requireContext().getString(R.string.download_snackbar_finished),
+ state.fileName,
+ ),
+ )
+
+ snackbar.setAction(getString(R.string.download_snackbar_open)) { context ->
+ val opened = AbstractFetchDownloadService.openFile(
+ applicationContext = context.applicationContext,
+ download = state,
+ )
+
+ if (!opened) {
+ Toast.makeText(
+ context,
+ getString(
+ mozilla.components.feature.downloads.R.string.mozac_feature_downloads_open_not_supported1,
+ extension,
+ ),
+ Toast.LENGTH_LONG,
+ ).show()
+ }
+
+ Downloads.openButtonTapped.record(
+ Downloads.OpenButtonTappedExtra(fileExtension = extension, openSuccessful = opened),
+ )
+ }
+
+ snackbar.show()
+ }
+
+ private fun showAddToHomescreenDialog() {
+ val fragmentManager = childFragmentManager
+
+ if (fragmentManager.findFragmentByTag(AddToHomescreenDialogFragment.FRAGMENT_TAG) != null) {
+ // We are already displaying a homescreen dialog fragment (Probably a restored fragment).
+ // No need to show another one.
+ return
+ }
+
+ val requestDesktop = tab.content.desktopMode
+
+ val addToHomescreenDialogFragment = AddToHomescreenDialogFragment.newInstance(
+ url = tab.content.url,
+ title = tab.content.titleOrDomain,
+ blockingEnabled = !tab.trackingProtection.ignoredOnTrackingProtection,
+ requestDesktop = requestDesktop,
+ )
+
+ try {
+ addToHomescreenDialogFragment.show(
+ fragmentManager,
+ AddToHomescreenDialogFragment.FRAGMENT_TAG,
+ )
+ } catch (e: IllegalStateException) {
+ // It can happen that at this point in time the activity is already in the background
+ // and onSaveInstanceState() has already been called. Fragment transactions are not
+ // allowed after that anymore. It's probably safe to guess that the user might not
+ // be interested in adding to homescreen now.
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+
+ updateEngineColorScheme()
+
+ // Hide status bar background if the parent activity can be casted to MainActivity
+ (requireActivity() as? MainActivity)?.hideStatusBarBackground()
+ StatusBarUtils.getStatusBarHeight(binding.statusBarBackground) { statusBarHeight ->
+ binding.statusBarBackground.layoutParams.height = statusBarHeight
+ }
+
+ // Custom tab content should always be visible, even if the app is locked.
+ if (tab.isCustomTab()) {
+ view?.isVisible = true
+ }
+
+ context?.settings?.openLinksInExternalApp?.let { openLinksInExternalApp ->
+ val isCustomTab = tab.isCustomTab()
+ components?.appLinksInterceptor?.updateLaunchInApp {
+ openLinksInExternalApp || isCustomTab
+ }
+ }
+ }
+
+ private fun updateEngineColorScheme() {
+ val preferredColorScheme = requireComponents.settings.getPreferredColorScheme()
+ if (requireComponents.engine.settings.preferredColorScheme != preferredColorScheme) {
+ requireComponents.engine.settings.preferredColorScheme = preferredColorScheme
+ requireComponents.sessionUseCases.reload()
+ }
+ }
+
+ override fun onStop() {
+ super.onStop()
+ tabsPopup?.dismiss()
+ trackingProtectionPanel?.hide()
+ siteNotSupportedSnackBarScope?.cancel()
+ }
+
+ override fun onHomePressed() = pictureInPictureFeature?.onHomePressed() ?: false
+
+ @Suppress("ComplexMethod", "ReturnCount")
+ override fun onBackPressed(): Boolean {
+ if (findInPageIntegration.onBackPressed()) {
+ return true
+ } else if (fullScreenIntegration.onBackPressed()) {
+ return true
+ } else if (sessionFeature.get()?.onBackPressed() == true) {
+ return true
+ } else if (tab.source is SessionState.Source.Internal.TextSelection) {
+ erase()
+ return true
+ } else {
+ if (tab.source is SessionState.Source.External || tab.isCustomTab()) {
+ Browser.backButtonPressed.record(
+ Browser.BackButtonPressedExtra("erase_to_external_app"),
+ )
+
+ // This session has been started from a VIEW intent. Go back to the previous app
+ // immediately and erase the current browsing session.
+ erase()
+
+ // If there are no other sessions then we remove the whole task because otherwise
+ // the old session might still be partially visible in the app switcher.
+ if (requireComponents.store.state.privateTabs.isEmpty()) {
+ requireActivity().finishAndRemoveTask()
+ } else {
+ requireActivity().finish()
+ }
+ // We can't show a snackbar outside of the app. So let's show a toast instead.
+ Toast.makeText(context, R.string.feedback_erase_custom_tab, Toast.LENGTH_SHORT).show()
+ } else {
+ // Just go back to the home screen.
+ Browser.backButtonPressed.record(
+ Browser.BackButtonPressedExtra("erase_to_home"),
+ )
+
+ erase()
+ }
+ }
+
+ return true
+ }
+
+ fun erase(shouldEraseAllTabs: Boolean = false) {
+ if (shouldEraseAllTabs) {
+ requireComponents.appStore.dispatch(AppAction.NavigateUp(null))
+ requireComponents.tabsUseCases.removeAllTabs()
+ } else {
+ requireComponents.tabsUseCases.removeTab(tab.id)
+ requireComponents.appStore.dispatch(AppAction.NavigateUp(requireComponents.store.state.selectedTabId))
+ }
+ }
+
+ private fun shareCurrentUrl() {
+ val shareIntent = Intent(Intent.ACTION_SEND)
+ shareIntent.type = "text/plain"
+ shareIntent.putExtra(Intent.EXTRA_TEXT, tab.content.url)
+
+ val title = tab.content.title
+ if (title.isNotEmpty()) {
+ shareIntent.putExtra(Intent.EXTRA_SUBJECT, title)
+ }
+ startActivity(
+ IntentUtils.getIntentChooser(
+ context = requireContext(),
+ intent = shareIntent,
+ chooserTitle = getString(R.string.share_dialog_title),
+ ),
+ )
+ }
+
+ private fun openInBrowser() {
+ // Release the session from this view so that it can immediately be rendered by a different view
+ sessionFeature.get()?.release()
+
+ requireComponents.customTabsUseCases.migrate(tab.id)
+
+ val intent = Intent(context, MainActivity::class.java)
+ intent.action = Intent.ACTION_MAIN
+ intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP
+ startActivity(intent)
+
+ // Close this activity (and the task) since it is no longer displaying any session
+ val activity = activity
+ activity?.finishAndRemoveTask()
+ }
+
+ internal fun edit() {
+ requireComponents.appStore.dispatch(
+ AppAction.EditAction(tab.id),
+ )
+ }
+
+ private fun tabCounterListener() {
+ val openedTabs = requireComponents.store.state.tabs.size
+
+ tabsPopup = TabsPopup(binding.browserToolbar, requireComponents).also { currentTabsPopup ->
+ currentTabsPopup.showAsDropDown(
+ binding.browserToolbar,
+ 0,
+ 0,
+ Gravity.END,
+ )
+ }
+
+ TabCount.sessionButtonTapped.record(TabCount.SessionButtonTappedExtra(openedTabs))
+ }
+
+ private fun showFindInPageBar() {
+ findInPageIntegration.get()?.show(tab)
+ }
+
+ private fun openSelectBrowser() {
+ val browsers = Browsers.forUrl(requireContext(), tab.content.url)
+
+ val apps = browsers.installedBrowsers.filterNot { it.packageName == requireContext().packageName }
+ val store = if (browsers.hasFirefoxBrandedBrowserInstalled) {
+ null
+ } else {
+ InstallFirefoxActivity.resolveAppStore(requireContext())
+ }
+
+ val fragment = OpenWithFragment.newInstance(
+ apps.toTypedArray(),
+ tab.content.url,
+ store,
+ )
+ @Suppress("DEPRECATION")
+ fragment.show(requireFragmentManager(), OpenWithFragment.FRAGMENT_TAG)
+
+ OpenWith.listDisplayed.record(OpenWith.ListDisplayedExtra(apps.size))
+ }
+
+ internal fun closeCustomTab() {
+ requireComponents.customTabsUseCases.remove(tab.id)
+ requireActivity().finish()
+ }
+
+ private fun setShouldRequestDesktop(enabled: Boolean) {
+ if (enabled) {
+ PreferenceManager.getDefaultSharedPreferences(requireContext()).edit()
+ .putBoolean(
+ requireContext().getString(R.string.has_requested_desktop),
+ true,
+ ).apply()
+ }
+ requireComponents.sessionUseCases.requestDesktopSite(enabled, tab.id)
+ }
+
+ fun showTrackingProtectionPanel() {
+ trackingProtectionPanel = TrackingProtectionPanel(
+ context = requireContext(),
+ lifecycleOwner = this,
+ cookieBannerReducerStore = cookieBannerReducerStore,
+ tabUrl = tab.content.url,
+ isTrackingProtectionOn = tab.trackingProtection.ignoredOnTrackingProtection.not(),
+ isConnectionSecure = tab.content.securityInfo.secure,
+ blockedTrackersCount = requireContext().settings
+ .getTotalBlockedTrackersCount(),
+ toggleTrackingProtection = ::toggleTrackingProtection,
+ updateTrackingProtectionPolicy = { tracker, isEnabled ->
+ EngineSharedPreferencesListener(requireContext())
+ .updateTrackingProtectionPolicy(
+ source = EngineSharedPreferencesListener.ChangeSource.PANEL.source,
+ tracker = tracker,
+ isEnabled = isEnabled,
+ )
+ reloadCurrentTab()
+ },
+ showConnectionInfo = ::showConnectionInfo,
+ showCookieBannerExceptionsDetailsPanel = ::showCookieBannerExceptionDetailsPanel,
+ ).also { currentEtp -> context?.let { currentEtp.show() } }
+ }
+
+ private fun reloadCurrentTab() {
+ requireComponents.sessionUseCases.reload(tab.id)
+ }
+
+ private fun showCookieBannerExceptionDetailsPanel() {
+ val cookieBannerExceptionDetailsPanel = CookieBannerReducerDetailsPanel(
+ context = requireContext(),
+ cookieBannerReducerStore = cookieBannerReducerStore,
+ ioScope = viewLifecycleOwner.lifecycleScope + Dispatchers.IO,
+ tabUrl = tab.content.url,
+ goBack = { trackingProtectionPanel?.show() },
+ defaultCookieBannerInteractor = defaultCookieBannerInteractor,
+ )
+ trackingProtectionPanel?.hide()
+ cookieBannerExceptionDetailsPanel.show()
+ CookieBanner.visitedPanel.record(NoExtras())
+ }
+
+ private fun showConnectionInfo() {
+ val connectionInfoPanel = ConnectionDetailsPanel(
+ context = requireContext(),
+ tabTitle = tab.content.title,
+ tabUrl = tab.content.url,
+ isConnectionSecure = tab.content.securityInfo.secure,
+ goBack = { trackingProtectionPanel?.show() },
+ )
+ trackingProtectionPanel?.hide()
+ connectionInfoPanel.show()
+ }
+
+ private fun toggleTrackingProtection(enable: Boolean) {
+ with(requireComponents) {
+ if (enable) {
+ trackingProtectionUseCases.removeException(tab.id)
+ } else {
+ trackingProtectionUseCases.addException(tab.id, persistInPrivateMode = true)
+ }
+ }
+
+ reloadCurrentTab()
+
+ TrackingProtection.hasEverChangedEtp.set(true)
+ TrackingProtection.trackingProtectionChanged.record(
+ TrackingProtection.TrackingProtectionChangedExtra(
+ isEnabled = enable,
+ ),
+ )
+ }
+
+ private fun onUrlLongClicked(): Boolean {
+ val context = activity ?: return false
+
+ return if (tab.isCustomTab()) {
+ val clipBoard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
+ val uri = tab.content.url.toUri()
+ clipBoard.setPrimaryClip(ClipData.newRawUri("Uri", uri))
+ Toast.makeText(context, getString(R.string.custom_tab_copy_url_action), Toast.LENGTH_SHORT).show()
+ true
+ } else {
+ false
+ }
+ }
+
+ private fun tryGetCustomTabId() = if (tab.isCustomTab()) {
+ tab.id
+ } else {
+ null
+ }
+
+ fun handleTabCrash(crash: Crash) {
+ showCrashReporter(crash)
+ }
+
+ companion object {
+ const val FRAGMENT_TAG = "browser"
+
+ private const val ARGUMENT_SESSION_UUID = "sessionUUID"
+
+ private const val REQUEST_KEY_DOWNLOAD_PERMISSIONS = "downloadFeature"
+ private const val REQUEST_KEY_PROMPT_PERMISSIONS = "promptFeature"
+ fun createForTab(tabId: String): BrowserFragment {
+ val fragment = BrowserFragment()
+ fragment.arguments = Bundle().apply {
+ putString(ARGUMENT_SESSION_UUID, tabId)
+ }
+ return fragment
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/CrashReporterFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/CrashReporterFragment.kt
new file mode 100644
index 0000000000..5969ab5fe3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/CrashReporterFragment.kt
@@ -0,0 +1,40 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment
+
+import android.os.Bundle
+import android.view.View
+import androidx.appcompat.content.res.AppCompatResources
+import androidx.fragment.app.Fragment
+import mozilla.components.service.glean.private.NoExtras
+import org.mozilla.focus.GleanMetrics.CrashReporter
+import org.mozilla.focus.R
+import org.mozilla.focus.databinding.FragmentCrashReporterBinding
+
+class CrashReporterFragment : Fragment(R.layout.fragment_crash_reporter) {
+ var onCloseTabPressed: ((sendCrashReport: Boolean) -> Unit)? = null
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ val binding = FragmentCrashReporterBinding.bind(view)
+ binding.background.background =
+ AppCompatResources.getDrawable(requireContext(), R.drawable.ic_error_session_crashed)
+
+ CrashReporter.displayed.record(NoExtras())
+
+ binding.closeTabButton.setOnClickListener {
+ val wantsSubmitCrashReport = binding.sendCrashCheckbox.isChecked
+ CrashReporter.closeReport.record(CrashReporter.CloseReportExtra(wantsSubmitCrashReport))
+
+ onCloseTabPressed?.invoke(wantsSubmitCrashReport)
+ }
+ }
+
+ companion object {
+ val FRAGMENT_TAG = "crash-reporter"
+
+ fun create() = CrashReporterFragment()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/FirstrunFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/FirstrunFragment.kt
new file mode 100644
index 0000000000..25cdb1f74c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/FirstrunFragment.kt
@@ -0,0 +1,150 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment
+
+import android.content.Context
+import android.os.Bundle
+import android.transition.TransitionInflater
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.viewpager.widget.ViewPager
+import mozilla.components.support.utils.StatusBarUtils
+import org.mozilla.focus.GleanMetrics.Onboarding
+import org.mozilla.focus.R
+import org.mozilla.focus.databinding.FragmentFirstrunBinding
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.firstrun.FirstrunPagerAdapter
+import org.mozilla.focus.state.AppAction
+import kotlin.math.abs
+
+class FirstrunFragment : Fragment(), View.OnClickListener {
+
+ private var _binding: FragmentFirstrunBinding? = null
+ private val binding get() = _binding!!
+
+ override fun onAttach(context: Context) {
+ super.onAttach(context)
+
+ val transition =
+ TransitionInflater.from(context).inflateTransition(R.transition.firstrun_exit)
+
+ exitTransition = transition
+
+ // We will send a telemetry event whenever a new firstrun page is shown. However this page
+ // listener won't fire for the initial page we are showing. So we are going to firing here.
+ Onboarding.pageDisplayed.record(Onboarding.PageDisplayedExtra(0))
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?,
+ ): View {
+ _binding = FragmentFirstrunBinding.inflate(inflater, container, false)
+
+ setupPager()
+
+ binding.tabs.setupWithViewPager(binding.pager, true)
+
+ binding.skip.setOnClickListener(this)
+
+ return binding.root
+ }
+
+ override fun onClick(view: View) {
+ val currentItem = binding.pager.currentItem
+ when (view.id) {
+ R.id.next -> {
+ binding.pager.currentItem = binding.pager.currentItem + 1
+ Onboarding.nextButtonTapped.record(Onboarding.NextButtonTappedExtra(currentItem))
+ }
+
+ R.id.skip -> {
+ finishFirstrun()
+ Onboarding.skipButtonTapped.record(Onboarding.SkipButtonTappedExtra(currentItem))
+ }
+
+ R.id.finish -> {
+ finishFirstrun()
+ Onboarding.finishButtonTapped.record(Onboarding.FinishButtonTappedExtra(currentItem))
+ }
+
+ else -> throw IllegalArgumentException("Unknown view")
+ }
+ }
+
+ @Suppress("MagicNumber")
+ private fun setupPager() {
+ val firstRunPagerAdapter = FirstrunPagerAdapter(requireContext(), this)
+ binding.pager.apply {
+ contentDescription = firstRunPagerAdapter.getPageAccessibilityDescription(0)
+ isFocusable = true
+
+ setPageTransformer(true) { page, position ->
+ page.alpha = 1 - 0.5f * abs(position)
+ }
+
+ clipToPadding = false
+ adapter = firstRunPagerAdapter
+ addOnPageChangeListener(
+ object : ViewPager.OnPageChangeListener {
+ override fun onPageSelected(position: Int) {
+ Onboarding.pageDisplayed.record(Onboarding.PageDisplayedExtra(0))
+
+ contentDescription =
+ firstRunPagerAdapter.getPageAccessibilityDescription(position)
+ }
+
+ override fun onPageScrolled(
+ position: Int,
+ positionOffset: Float,
+ positionOffsetPixels: Int,
+ ) {}
+
+ override fun onPageScrollStateChanged(state: Int) {}
+ },
+ )
+ }
+ }
+
+ private fun finishFirstrun() {
+ requireContext().settings.isFirstRun = false
+ val selectedTabId = requireComponents.store.state.selectedTabId
+ requireComponents.appStore.dispatch(AppAction.FinishFirstRun(selectedTabId))
+ }
+
+ override fun onResume() {
+ super.onResume()
+ StatusBarUtils.getStatusBarHeight(binding.background) { statusBarHeight ->
+ binding.background.setPadding(
+ 0,
+ statusBarHeight,
+ 0,
+ 0,
+ )
+ }
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+
+ companion object {
+ const val FRAGMENT_TAG = "firstrun"
+
+ fun create(): FirstrunFragment {
+ val arguments = Bundle()
+
+ val fragment = FirstrunFragment()
+ fragment.arguments = arguments
+
+ return fragment
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/UrlInputFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/UrlInputFragment.kt
new file mode 100644
index 0000000000..9614ab02d7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/UrlInputFragment.kt
@@ -0,0 +1,632 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment
+
+import android.animation.Animator
+import android.animation.AnimatorListenerAdapter
+import android.content.res.Configuration
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.FrameLayout
+import androidx.appcompat.content.res.AppCompatResources
+import androidx.core.view.isVisible
+import androidx.fragment.app.activityViewModels
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.Job
+import mozilla.components.browser.domains.autocomplete.CustomDomainsProvider
+import mozilla.components.browser.domains.autocomplete.ShippedDomainsProvider
+import mozilla.components.browser.state.selector.findTab
+import mozilla.components.browser.state.state.SessionState
+import mozilla.components.browser.state.state.TabSessionState
+import mozilla.components.feature.top.sites.TopSitesConfig
+import mozilla.components.feature.top.sites.TopSitesFeature
+import mozilla.components.service.glean.private.NoExtras
+import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
+import mozilla.components.support.ktx.android.view.hideKeyboard
+import mozilla.components.support.ktx.util.URLStringUtils
+import mozilla.components.support.utils.StatusBarUtils
+import mozilla.components.support.utils.ThreadUtils
+import org.mozilla.focus.GleanMetrics.BrowserSearch
+import org.mozilla.focus.GleanMetrics.SearchBar
+import org.mozilla.focus.GleanMetrics.SearchWidget
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.MainActivity
+import org.mozilla.focus.databinding.FragmentUrlinputBinding
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.defaultSearchEngineName
+import org.mozilla.focus.ext.hasSearchTerms
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.input.InputToolbarIntegration
+import org.mozilla.focus.menu.home.HomeMenu
+import org.mozilla.focus.menu.home.HomeMenuItem
+import org.mozilla.focus.searchsuggestions.SearchSuggestionsViewModel
+import org.mozilla.focus.searchsuggestions.ui.SearchSuggestionsFragment
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+import org.mozilla.focus.topsites.DefaultTopSitesStorage.Companion.TOP_SITES_MAX_LIMIT
+import org.mozilla.focus.topsites.DefaultTopSitesView
+import org.mozilla.focus.topsites.TopSitesOverlay
+import org.mozilla.focus.ui.theme.FocusTheme
+import org.mozilla.focus.utils.OneShotOnPreDrawListener
+import org.mozilla.focus.utils.SupportUtils
+import org.mozilla.focus.utils.ViewUtils
+import kotlin.coroutines.CoroutineContext
+
+class FocusCrashException : Exception()
+
+/**
+ * Fragment for displaying the URL input controls.
+ */
+// Refactoring the size and function count of this fragment is non-trivial at this point.
+// Therefore we ignore those violations for now.
+@Suppress("LargeClass", "TooManyFunctions")
+class UrlInputFragment :
+ BaseFragment(),
+ View.OnClickListener,
+ CoroutineScope {
+ companion object {
+ const val FRAGMENT_TAG = "url_input"
+
+ private const val ARGUMENT_ANIMATION = "animation"
+ private const val ARGUMENT_SESSION_UUID = "sesssion_uuid"
+
+ private const val ANIMATION_BROWSER_SCREEN = "browser_screen"
+
+ private const val ANIMATION_DURATION = 200
+
+ @JvmStatic
+ fun createWithoutSession(): UrlInputFragment {
+ val arguments = Bundle()
+
+ val fragment = UrlInputFragment()
+ fragment.arguments = arguments
+
+ return fragment
+ }
+
+ @JvmStatic
+ fun createWithTab(
+ tabId: String,
+ ): UrlInputFragment {
+ val arguments = Bundle()
+
+ arguments.putString(ARGUMENT_SESSION_UUID, tabId)
+ arguments.putString(ARGUMENT_ANIMATION, ANIMATION_BROWSER_SCREEN)
+
+ val fragment = UrlInputFragment()
+ fragment.arguments = arguments
+
+ return fragment
+ }
+ }
+
+ private var job = Job()
+ override val coroutineContext: CoroutineContext
+ get() = job + Dispatchers.Main
+ private val shippedDomainsProvider = ShippedDomainsProvider()
+ private val customDomainsProvider = CustomDomainsProvider()
+ private var _binding: FragmentUrlinputBinding? = null
+ private val binding get() = _binding!!
+
+ private val searchSuggestionsViewModel: SearchSuggestionsViewModel by activityViewModels()
+
+ @Volatile
+ private var isAnimating: Boolean = false
+
+ var tab: TabSessionState? = null
+ private set
+
+ private val isOverlay: Boolean
+ get() = tab != null
+
+ private var isInitialized = false
+
+ private val toolbarIntegration = ViewBoundFeatureWrapper<InputToolbarIntegration>()
+ private val topSitesFeature = ViewBoundFeatureWrapper<TopSitesFeature>()
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ // Get session from session manager if there's a session UUID in the fragment's arguments
+ arguments?.getString(ARGUMENT_SESSION_UUID)?.let { id ->
+ tab = requireComponents.store.state.findTab(id)
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+
+ if (job.isCancelled) {
+ job = Job()
+ }
+
+ activity?.let {
+ shippedDomainsProvider.initialize(it.applicationContext)
+ customDomainsProvider.initialize(it.applicationContext)
+ }
+
+ // Hide status bar background if the parent activity can be casted to MainActivity
+ (requireActivity() as? MainActivity)?.hideStatusBarBackground()
+ StatusBarUtils.getStatusBarHeight(binding.landingLayout) {
+ adjustViewToStatusBarHeight(it)
+ }
+
+ if (!isInitialized) {
+ // Explicitly switching to "edit mode" here in order to focus the toolbar and select
+ // all text in it. We only want to do this once per fragment.
+ binding.browserToolbar.editMode()
+ isInitialized = true
+ }
+
+ if (
+ requireComponents.settings.searchWidgetInstalled &&
+ requireComponents.appStore.state.showSearchWidgetSnackbar
+ ) {
+ ViewUtils.showBrandedSnackbar(view, R.string.promote_search_widget_snackbar_message, 0)
+ SearchWidget.widgetWasAdded.record(mozilla.telemetry.glean.private.NoExtras())
+ requireComponents.appStore.dispatch(AppAction.ShowSearchWidgetSnackBar(false))
+ }
+ }
+
+ override fun onPause() {
+ job.cancel()
+ super.onPause()
+ view?.hideKeyboard()
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+
+ private fun adjustViewToStatusBarHeight(statusBarHeight: Int) {
+ val inputHeight = resources.getDimension(R.dimen.urlinput_height)
+
+ binding.urlInputLayout.layoutParams.height = (inputHeight + statusBarHeight).toInt()
+
+ val topMargin = (inputHeight + statusBarHeight).toInt()
+
+ if (binding.searchViewContainer.layoutParams is ViewGroup.MarginLayoutParams) {
+ val marginParams =
+ binding.searchViewContainer.layoutParams as ViewGroup.MarginLayoutParams
+ marginParams.topMargin = topMargin
+ }
+
+ if (binding.landingLayout.layoutParams is ViewGroup.MarginLayoutParams) {
+ val marginParams = binding.landingLayout.layoutParams as ViewGroup.MarginLayoutParams
+ marginParams.topMargin = topMargin
+ }
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?,
+ ): View {
+ _binding = FragmentUrlinputBinding.inflate(inflater, container, false)
+
+ binding.topSites.setContent {
+ FocusTheme {
+ TopSitesOverlay()
+ }
+ }
+ return binding.root
+ }
+
+ @Suppress("LongMethod")
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ childFragmentManager.beginTransaction()
+ .replace(binding.searchViewContainer.id, SearchSuggestionsFragment.create())
+ .commit()
+
+ searchSuggestionsViewModel.selectedSearchSuggestion.observe(
+ viewLifecycleOwner,
+ ) {
+ val isSuggestion = searchSuggestionsViewModel.searchQuery.value != it
+ it?.let {
+ if (searchSuggestionsViewModel.alwaysSearch) {
+ onSearch(it, isSuggestion = false, alwaysSearch = true)
+ } else {
+ onSearch(it, isSuggestion)
+ }
+ searchSuggestionsViewModel.clearSearchSuggestion()
+ }
+ }
+
+ searchSuggestionsViewModel.autocompleteSuggestion.observe(viewLifecycleOwner) { text ->
+ if (text != null) {
+ searchSuggestionsViewModel.clearAutocompleteSuggestion()
+ binding.browserToolbar.setSearchTerms(text)
+ }
+ }
+
+ binding.browserToolbar.private = true
+
+ toolbarIntegration.set(
+ InputToolbarIntegration(
+ binding.browserToolbar,
+ fragment = this,
+ shippedDomainsProvider = shippedDomainsProvider,
+ customDomainsProvider = customDomainsProvider,
+ ),
+ owner = this,
+ view = binding.browserToolbar,
+ )
+
+ topSitesFeature.set(
+ feature = TopSitesFeature(
+ view = DefaultTopSitesView(requireComponents.appStore),
+ storage = requireComponents.topSitesStorage,
+ config = {
+ TopSitesConfig(
+ totalSites = TOP_SITES_MAX_LIMIT,
+ frecencyConfig = null,
+ providerConfig = null,
+ )
+ },
+ ),
+ owner = this,
+ view = view,
+ )
+
+ binding.dismissView.setOnClickListener(this)
+
+ OneShotOnPreDrawListener(binding.urlInputContainerView) {
+ animateFirstDraw()
+ true
+ }
+
+ if (isOverlay) {
+ binding.landingLayout.isVisible = false
+ } else {
+ binding.backgroundView.background = AppCompatResources.getDrawable(
+ requireContext(),
+ R.drawable.home_background,
+ )
+
+ binding.dismissView.isVisible = false
+
+ binding.menuView.isVisible = true
+ }
+
+ tab?.let { tab ->
+ binding.browserToolbar.url = if (tab.content.hasSearchTerms) {
+ tab.content.searchTerms
+ } else {
+ tab.content.url
+ }
+
+ binding.searchViewContainer.isVisible = false
+ binding.menuView.isVisible = false
+ }
+
+ binding.browserToolbar.editMode()
+ setHomeMenu()
+ }
+
+ private fun setHomeMenu() {
+ binding.menuView.menuBuilder = HomeMenu(requireContext()) { menuItem ->
+ when (menuItem) {
+ is HomeMenuItem.Help -> openHelpPage()
+ is HomeMenuItem.Settings -> openSettingsPage()
+ }
+ }.getMenuBuilder()
+ }
+
+ private fun openHelpPage() {
+ requireComponents.tabsUseCases.addTab(
+ SupportUtils.HELP_URL,
+ source = SessionState.Source.Internal.Menu,
+ private = true,
+ )
+ }
+
+ private fun openSettingsPage() {
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(page = Screen.Settings.Page.Start),
+ )
+ }
+
+ fun onBackPressed(): Boolean {
+ if (isOverlay) {
+ animateAndDismiss()
+ return true
+ }
+
+ return false
+ }
+
+ override fun onStart() {
+ super.onStart()
+
+ activity?.let {
+ if (requireContext().settings.isFirstRun) return@onStart
+ }
+ }
+
+ override fun onConfigurationChanged(newConfig: Configuration) {
+ super.onConfigurationChanged(newConfig)
+
+ if (newConfig.orientation != Configuration.ORIENTATION_UNDEFINED) {
+ // Make sure we update the background for landscape / portrait orientations.
+ binding.backgroundView.background = AppCompatResources.getDrawable(
+ requireContext(),
+ R.drawable.home_background,
+ )
+ }
+ }
+
+ // This method triggers the complexity warning. However it's actually not that hard to understand.
+ @Suppress("ComplexMethod")
+ override fun onClick(view: View) {
+ if (view.id == R.id.dismissView) {
+ handleDismiss()
+ } else {
+ throw IllegalStateException("Unhandled view in onClick()")
+ }
+ }
+
+ private fun handleDismiss() {
+ if (isOverlay) {
+ animateAndDismiss()
+ } else {
+ // This is a bit hacky, but emulates what the legacy toolbar did before we replaced
+ // it with `browser-toolbar`. First we clear the text and then we invoke the "text
+ // changed" callback manually for this change.
+ binding.browserToolbar.edit.updateUrl("", false)
+ onTextChange("")
+ }
+ }
+
+ private fun animateFirstDraw() {
+ if (ANIMATION_BROWSER_SCREEN == arguments?.getString(ARGUMENT_ANIMATION)) {
+ playVisibilityAnimation(false)
+ }
+ }
+
+ private fun animateAndDismiss() {
+ ThreadUtils.assertOnUiThread()
+
+ if (isAnimating) {
+ // We are already animating some state change. Ignore all other requests.
+ return
+ }
+
+ // Don't allow any more clicks: dismissView is still visible until the animation ends,
+ // but we don't want to restart animations and/or trigger hiding again (which could potentially
+ // cause crashes since we don't know what state we're in). Ignoring further clicks is the simplest
+ // solution, since dismissView is about to disappear anyway.
+ binding.dismissView.isClickable = false
+
+ if (ANIMATION_BROWSER_SCREEN == arguments?.getString(ARGUMENT_ANIMATION)) {
+ playVisibilityAnimation(true)
+ } else {
+ dismiss()
+ }
+ }
+
+ /**
+ * This animation is quite complex. The 'reverse' flag controls whether we want to show the UI
+ * (false) or whether we are going to hide it (true). Additionally the animation is slightly
+ * different depending on whether this fragment is shown as an overlay on top of other fragments
+ * or if it draws its own background.
+ */
+ // This method correctly triggers a complexity warning. This method is indeed very and too complex.
+ // However refactoring it is not trivial at this point so we ignore the warning for now.
+ @Suppress("ComplexMethod")
+ private fun playVisibilityAnimation(reverse: Boolean) {
+ if (isAnimating) {
+ // We are already animating, let's ignore another request.
+ return
+ }
+
+ isAnimating = true
+
+ val xyOffset = (
+ if (isOverlay) {
+ (binding.urlInputContainerView.layoutParams as FrameLayout.LayoutParams).bottomMargin
+ } else {
+ 0
+ }
+ ).toFloat()
+
+ val width = binding.urlInputBackgroundView.width.toFloat()
+ val height = binding.urlInputBackgroundView.height.toFloat()
+
+ val widthScale = if (isOverlay) {
+ (width + 2 * xyOffset) / width
+ } else {
+ 1f
+ }
+
+ val heightScale = if (isOverlay) {
+ (height + 2 * xyOffset) / height
+ } else {
+ 1f
+ }
+
+ if (!reverse) {
+ binding.urlInputBackgroundView.apply {
+ pivotX = 0f
+ pivotY = 0f
+ scaleX = widthScale
+ scaleY = heightScale
+ translationX = -xyOffset
+ translationY = -xyOffset
+ }
+ }
+
+ // Let the URL input use the full width/height and then shrink to the actual size
+ binding.urlInputBackgroundView.animate()
+ .setDuration(ANIMATION_DURATION.toLong())
+ .scaleX(if (reverse) widthScale else 1f)
+ .scaleY(if (reverse) heightScale else 1f)
+ .alpha((if (reverse && isOverlay) 0 else 1).toFloat())
+ .translationX(if (reverse) -xyOffset else 0f)
+ .translationY(if (reverse) -xyOffset else 0f)
+ .setListener(
+ object : AnimatorListenerAdapter() {
+ override fun onAnimationEnd(animation: Animator) {
+ if (reverse) {
+ if (isOverlay) {
+ dismiss()
+ }
+ }
+
+ isAnimating = false
+ }
+ },
+ )
+
+ if (reverse) {
+ binding.toolbarBottomBorder.isVisible = true
+
+ if (!isOverlay) {
+ binding.dismissView.isVisible = false
+ binding.menuView.isVisible = true
+ }
+ } else {
+ binding.toolbarBottomBorder.isVisible = false
+ }
+ }
+
+ private fun dismiss() {
+ // This method is called from animation callbacks. In the short time frame between the animation
+ // starting and ending the activity can be paused. In this case this code can throw an
+ // IllegalStateException because we already saved the state (of the activity / fragment) before
+ // this transaction is committed. To avoid this we commit while allowing a state loss here.
+ // We do not save any state in this fragment (It's getting destroyed) so this should not be a problem.
+
+ context?.components?.appStore?.dispatch(AppAction.FinishEdit(tab!!.id))
+ }
+
+ internal fun onCommit(input: String) {
+ if (input.trim { it <= ' ' }.isNotEmpty()) {
+ handleCrashTrigger(input)
+
+ ViewUtils.hideKeyboard(binding.browserToolbar)
+
+ val isUrl = URLStringUtils.isURLLike(input)
+ if (isUrl) {
+ openUrl(URLStringUtils.toNormalizedURL(input))
+ } else {
+ search(input)
+ }
+
+ if (isUrl) {
+ SearchBar.enteredUrl.record(NoExtras())
+ } else {
+ val defaultSearchEngineName =
+ requireComponents.store.defaultSearchEngineName().lowercase()
+ SearchBar.performedSearch.record(
+ SearchBar.PerformedSearchExtra(defaultSearchEngineName),
+ )
+ BrowserSearch.searchCount["$defaultSearchEngineName.action"].add()
+ }
+ }
+ }
+
+ private fun handleCrashTrigger(input: String) {
+ if (input == "focus:crash") {
+ throw FocusCrashException()
+ }
+ }
+
+ private fun onSearch(
+ query: String,
+ @Suppress("UNUSED_PARAMETER") isSuggestion: Boolean = false,
+ alwaysSearch: Boolean = false,
+ ) {
+ if (alwaysSearch) {
+ search(query)
+ } else {
+ if (URLStringUtils.isURLLike(query)) {
+ openUrl(URLStringUtils.toNormalizedURL(query))
+ } else {
+ search(query)
+ }
+ }
+
+ val defaultSearchEngineName = requireComponents.store.defaultSearchEngineName().lowercase()
+ BrowserSearch.searchCount["$defaultSearchEngineName.suggestion"].add()
+ }
+
+ private fun search(searchTerms: String) {
+ val tab = tab
+ if (tab != null) {
+ requireComponents.searchUseCases.defaultSearch.invoke(searchTerms, tab.id)
+ requireComponents.appStore.dispatch(AppAction.FinishEdit(tab.id))
+ } else {
+ requireComponents.searchUseCases.newPrivateTabSearch.invoke(
+ searchTerms = searchTerms,
+ source = SessionState.Source.Internal.UserEntered,
+ )
+ }
+
+ searchSuggestionsViewModel.setSearchQuery("")
+ }
+
+ private fun openUrl(url: String) {
+ when (url) {
+ "focus:about" -> {
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(Screen.Settings.Page.About),
+ )
+ return
+ }
+ }
+
+ val tab = tab
+ if (tab != null) {
+ requireComponents.sessionUseCases.loadUrl(url, tab.id)
+
+ requireComponents.appStore.dispatch(AppAction.FinishEdit(tab.id))
+ } else {
+ requireComponents.tabsUseCases.addTab(
+ url,
+ source = SessionState.Source.Internal.UserEntered,
+ selectTab = true,
+ private = true,
+ )
+ }
+
+ searchSuggestionsViewModel.setSearchQuery("")
+ }
+
+ internal fun onStartEditing() {
+ if (tab != null) {
+ binding.searchViewContainer.isVisible = true
+ }
+ }
+
+ internal fun onCancelEditing() {
+ handleDismiss()
+ }
+
+ internal fun onTextChange(text: String) {
+ searchSuggestionsViewModel.setSearchQuery(text)
+
+ if (text.trim { it <= ' ' }.isEmpty()) {
+ binding.searchViewContainer.isVisible = false
+
+ if (!isOverlay) {
+ playVisibilityAnimation(true)
+ }
+ } else {
+ binding.menuView.isVisible = false
+
+ if (!isOverlay && binding.dismissView.isVisible != true) {
+ playVisibilityAnimation(false)
+ binding.dismissView.isVisible = true
+ }
+
+ binding.searchViewContainer.isVisible = true
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/about/AboutFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/about/AboutFragment.kt
new file mode 100644
index 0000000000..cf9a80bd06
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/about/AboutFragment.kt
@@ -0,0 +1,209 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment.about
+
+import android.os.Build
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.ColumnScope
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.rememberScrollState
+import androidx.compose.foundation.verticalScroll
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Alignment.Companion.Start
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.text.style.TextDirection
+import androidx.compose.ui.unit.dp
+import androidx.core.content.pm.PackageInfoCompat
+import kotlinx.coroutines.Job
+import mozilla.components.browser.state.state.SessionState
+import mozilla.components.support.utils.ext.getPackageInfoCompat
+import org.mozilla.focus.BuildConfig
+import org.mozilla.focus.R
+import org.mozilla.focus.databinding.FragmentAboutBinding
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.settings.BaseSettingsLikeFragment
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.ui.theme.FocusTheme
+import org.mozilla.focus.ui.theme.focusColors
+import org.mozilla.focus.ui.theme.focusTypography
+import org.mozilla.focus.utils.SupportUtils.manifestoURL
+import org.mozilla.geckoview.BuildConfig as GeckoViewBuildConfig
+
+class AboutFragment : BaseSettingsLikeFragment() {
+
+ private lateinit var secretSettingsUnlocker: SecretSettingsUnlocker
+
+ private val openLearnMore = {
+ val tabId = requireContext().components.tabsUseCases.addTab(
+ url = manifestoURL,
+ source = SessionState.Source.Internal.Menu,
+ selectTab = true,
+ private = true,
+ )
+ requireContext().components.appStore.dispatch(AppAction.OpenTab(tabId))
+ }
+
+ override fun onResume() {
+ super.onResume()
+ showToolbar(getString(R.string.menu_about))
+ secretSettingsUnlocker.resetCounter()
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?,
+ ): View {
+ val binding = FragmentAboutBinding.inflate(inflater, container, false)
+
+ val appName = requireContext().resources.getString(R.string.app_name)
+ val aboutContent =
+ requireContext().getString(R.string.about_content, appName, "")
+
+ val learnMore = aboutContent
+ .substringAfter("<a href=>")
+ .substringBefore("</a></p>")
+
+ val content =
+ aboutContent
+ .replace("<li>", "\u2022 \u0009 ")
+ .replace("</li>", "\n")
+ .replace("<ul>", "\n \n")
+ .replace("</ul>", "")
+ .replace("<p>", "\n")
+ .replace("</p>", "")
+ .replaceAfter("<br/>", "")
+ .replace("<br/>", "")
+
+ secretSettingsUnlocker = SecretSettingsUnlocker(requireContext())
+
+ binding.aboutPageContent.setContent {
+ AboutPageContent(
+ getAboutHeader(),
+ content,
+ learnMore,
+ secretSettingsUnlocker,
+ openLearnMore,
+ )
+ }
+ return binding.root
+ }
+
+ private fun getAboutHeader(): String {
+ val gecko = if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) " \uD83E\uDD8E " else " GV: "
+ val engineIndicator = gecko + GeckoViewBuildConfig.MOZ_APP_VERSION + "-" + GeckoViewBuildConfig.MOZ_APP_BUILDID
+ val servicesAbbreviation = getString(R.string.services_abbreviation)
+ val servicesIndicator = mozilla.components.Build.applicationServicesVersion
+ val packageInfo = requireContext().packageManager.getPackageInfoCompat(requireContext().packageName, 0)
+ val versionCode = PackageInfoCompat.getLongVersionCode(packageInfo).toString()
+ val vcsHash = if (BuildConfig.VCS_HASH.isNotBlank()) ", ${BuildConfig.VCS_HASH}" else ""
+
+ @Suppress("ImplicitDefaultLocale") // We want LTR in all cases as the version is not translatable.
+ return String.format(
+ "%s (Build #%s)%s\n%s: %s",
+ packageInfo.versionName,
+ versionCode + engineIndicator,
+ vcsHash,
+ servicesAbbreviation,
+ servicesIndicator,
+ )
+ }
+}
+
+@Composable
+private fun AboutPageContent(
+ aboutVersion: String,
+ content: String,
+ learnMore: String,
+ secretSettingsUnlocker: SecretSettingsUnlocker,
+ openLearnMore: () -> Job,
+) {
+ FocusTheme {
+ Column(
+ modifier = Modifier
+ .padding(8.dp)
+ .fillMaxSize()
+ .verticalScroll(rememberScrollState()),
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally,
+
+ ) {
+ LogoIcon(secretSettingsUnlocker)
+ VersionInfo(aboutVersion)
+ AboutContent(content)
+ LearnMoreLink(learnMore, openLearnMore)
+ }
+ }
+}
+
+@Composable
+private fun LogoIcon(secretSettingsUnlocker: SecretSettingsUnlocker) {
+ Image(
+ painter = painterResource(R.drawable.wordmark2),
+ contentDescription = null,
+ modifier = Modifier
+ .padding(4.dp)
+ .clickable {
+ secretSettingsUnlocker.increment()
+ },
+ )
+}
+
+@Composable
+private fun VersionInfo(aboutVersion: String) {
+ Text(
+ text = aboutVersion,
+ color = focusColors.aboutPageText,
+ style = focusTypography.body1.copy(
+ // Use LTR in all cases since the version is not translatable.
+ textDirection = TextDirection.Ltr,
+ ),
+ modifier = Modifier
+ .padding(10.dp),
+ )
+}
+
+@Composable
+private fun AboutContent(content: String) {
+ Text(
+ text = content,
+ color = focusColors.aboutPageText,
+ style = focusTypography.body1,
+ modifier = Modifier
+ .padding(10.dp),
+ )
+}
+
+@Composable
+fun ColumnScope.LearnMoreLink(
+ learnMore: String,
+ openLearnMore: () -> Job,
+) {
+ Text(
+ text = learnMore,
+ color = focusColors.aboutPageLink,
+ style = focusTypography.links,
+ modifier = Modifier
+ .padding(10.dp)
+ .fillMaxWidth()
+ .align(Start)
+ .clickable {
+ openLearnMore()
+ },
+ )
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/about/SecretSettingsUnlocker.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/about/SecretSettingsUnlocker.kt
new file mode 100644
index 0000000000..4f02d1abf2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/about/SecretSettingsUnlocker.kt
@@ -0,0 +1,59 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment.about
+
+import android.content.Context
+import android.widget.Toast
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.state.AppAction
+
+/**
+ * Triggers the "secret" debug menu when logoView is tapped 5 times.
+ */
+class SecretSettingsUnlocker(private val context: Context) {
+
+ private var secretSettingsClicks = 0
+ private var lastDebugMenuToast: Toast? = null
+
+ /**
+ * Reset the [secretSettingsClicks] counter.
+ */
+ fun resetCounter() {
+ secretSettingsClicks = 0
+ }
+
+ fun increment() {
+ // Because the user will mostly likely tap the logo in rapid succession,
+ // we ensure only 1 toast is shown at any given time.
+ lastDebugMenuToast?.cancel()
+ secretSettingsClicks += 1
+ when (secretSettingsClicks) {
+ in 2 until SECRET_DEBUG_MENU_CLICKS -> {
+ val clicksLeft = SECRET_DEBUG_MENU_CLICKS - secretSettingsClicks
+ val toast = Toast.makeText(
+ context,
+ context.getString(R.string.about_debug_menu_toast_progress, clicksLeft),
+ Toast.LENGTH_SHORT,
+ )
+ toast.show()
+ lastDebugMenuToast = toast
+ }
+ SECRET_DEBUG_MENU_CLICKS -> {
+ Toast.makeText(
+ context,
+ R.string.about_debug_menu_toast_done,
+ Toast.LENGTH_LONG,
+ ).show()
+ context.components.appStore.dispatch(AppAction.SecretSettingsStateChange(true))
+ }
+ }
+ }
+
+ companion object {
+ // Number of clicks on the app logo to enable the "secret" debug menu.
+ private const val SECRET_DEBUG_MENU_CLICKS = 5
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingController.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingController.kt
new file mode 100644
index 0000000000..434bcac643
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingController.kt
@@ -0,0 +1,100 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment.onboarding
+
+import android.app.Activity
+import android.app.role.RoleManager
+import android.content.ActivityNotFoundException
+import android.content.Context
+import android.content.Intent
+import android.os.Build
+import androidx.activity.result.ActivityResult
+import androidx.activity.result.ActivityResultLauncher
+import mozilla.components.support.base.log.logger.Logger
+import mozilla.components.support.utils.Browsers
+import mozilla.components.support.utils.ext.navigateToDefaultBrowserAppsSettings
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.AppStore
+
+interface OnboardingController {
+ fun handleFinishOnBoarding()
+ fun handleGetStartedButtonClicked()
+ fun handleMakeFocusDefaultBrowserButtonClicked(activityResultLauncher: ActivityResultLauncher<Intent>)
+ fun handleActivityResultImplementation(activityResult: ActivityResult)
+}
+
+class DefaultOnboardingController(
+ private val onboardingStorage: OnboardingStorage,
+ val appStore: AppStore,
+ val context: Context,
+ val selectedTabId: String?,
+) : OnboardingController {
+
+ override fun handleFinishOnBoarding() {
+ context.settings.isFirstRun = false
+ appStore.dispatch(AppAction.FinishFirstRun(selectedTabId))
+ }
+
+ override fun handleGetStartedButtonClicked() {
+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M || Browsers.all(context).isDefaultBrowser) {
+ handleFinishOnBoarding()
+ } else {
+ navigateToOnBoardingSecondScreen()
+ }
+ }
+
+ override fun handleMakeFocusDefaultBrowserButtonClicked(activityResultLauncher: ActivityResultLauncher<Intent>) {
+ val isDefault = Browsers.all(context).isDefaultBrowser
+ if (isDefault) {
+ handleFinishOnBoarding()
+ } else {
+ makeFocusDefaultBrowser(activityResultLauncher)
+ }
+ }
+
+ override fun handleActivityResultImplementation(activityResult: ActivityResult) {
+ if (activityResult.resultCode == Activity.RESULT_OK && Browsers.all(context).isDefaultBrowser) {
+ handleFinishOnBoarding()
+ }
+ }
+
+ private fun navigateToOnBoardingSecondScreen() {
+ onboardingStorage.saveCurrentOnboardingStepInSharePref(OnboardingStep.ON_BOARDING_SECOND_SCREEN)
+ appStore.dispatch(AppAction.ShowOnboardingSecondScreen)
+ }
+
+ private fun makeFocusDefaultBrowser(activityResultLauncher: ActivityResultLauncher<Intent>) {
+ when {
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q -> {
+ context.getSystemService(RoleManager::class.java).also {
+ if (
+ it.isRoleAvailable(RoleManager.ROLE_BROWSER) &&
+ !it.isRoleHeld(RoleManager.ROLE_BROWSER)
+ ) {
+ try {
+ activityResultLauncher.launch(it.createRequestRoleIntent(RoleManager.ROLE_BROWSER))
+ } catch (e: ActivityNotFoundException) {
+ Logger(TAG).error(
+ "ActivityNotFoundException " +
+ e.message.toString(),
+ )
+ handleFinishOnBoarding()
+ }
+ } else {
+ context.navigateToDefaultBrowserAppsSettings()
+ }
+ }
+ }
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.N -> {
+ context.navigateToDefaultBrowserAppsSettings()
+ }
+ }
+ }
+
+ companion object {
+ const val TAG = "OnboardingController"
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingFirstFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingFirstFragment.kt
new file mode 100644
index 0000000000..4e38b38693
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingFirstFragment.kt
@@ -0,0 +1,62 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment.onboarding
+
+import android.content.Context
+import android.os.Bundle
+import android.transition.TransitionInflater
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.compose.ui.platform.ComposeView
+import androidx.fragment.app.Fragment
+import mozilla.telemetry.glean.private.NoExtras
+import org.mozilla.focus.GleanMetrics.Onboarding
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ui.theme.FocusTheme
+
+class OnboardingFirstFragment : Fragment() {
+ private lateinit var onboardingInteractor: OnboardingInteractor
+
+ override fun onAttach(context: Context) {
+ super.onAttach(context)
+ val transition =
+ TransitionInflater.from(context).inflateTransition(R.transition.firstrun_exit)
+ exitTransition = transition
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?,
+ ): View {
+ onboardingInteractor = DefaultOnboardingInteractor(
+ DefaultOnboardingController(
+ onboardingStorage = OnboardingStorage(requireContext()),
+ appStore = requireComponents.appStore,
+ context = requireActivity(),
+ selectedTabId = requireComponents.store.state.selectedTabId,
+ ),
+ )
+ return ComposeView(requireContext()).apply {
+ setContent {
+ FocusTheme {
+ OnBoardingFirstScreenCompose(
+ onGetStartedButtonClicked = {
+ Onboarding.getStartedButton.record(NoExtras())
+ onboardingInteractor.onGetStartedButtonClicked()
+ },
+ onCloseButtonClick = {
+ Onboarding.firstScreenCloseButton.record(NoExtras())
+ onboardingInteractor.onFinishOnBoarding()
+ },
+ )
+ }
+ }
+ isTransitionGroup = true
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingFirstScreenCompose.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingFirstScreenCompose.kt
new file mode 100644
index 0000000000..fb705e1ed0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingFirstScreenCompose.kt
@@ -0,0 +1,165 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment.onboarding
+
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.rememberScrollState
+import androidx.compose.foundation.shape.CircleShape
+import androidx.compose.foundation.verticalScroll
+import androidx.compose.material.Button
+import androidx.compose.material.ButtonDefaults
+import androidx.compose.material.Icon
+import androidx.compose.material.IconButton
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.geometry.Offset
+import androidx.compose.ui.graphics.Brush
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.AnnotatedString
+import androidx.compose.ui.text.style.TextAlign
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import mozilla.components.ui.colors.PhotonColors
+import org.mozilla.focus.R
+import org.mozilla.focus.ui.theme.FocusTheme
+import org.mozilla.focus.ui.theme.focusColors
+import org.mozilla.focus.ui.theme.focusTypography
+
+@Composable
+@Preview
+private fun OnBoardingFirstScreenComposePreview() {
+ FocusTheme {
+ OnBoardingFirstScreenCompose({}, {})
+ }
+}
+
+/**
+ * Displays the first onBoarding screen
+ *
+ * @param onGetStartedButtonClicked Will be called when the user clicks on get started button.
+ * @param onCloseButtonClick The lambda to be invoked when close button icon is pressed.
+ */
+@Composable
+fun OnBoardingFirstScreenCompose(
+ onGetStartedButtonClicked: () -> Unit,
+ onCloseButtonClick: () -> Unit,
+) {
+ Column(
+ modifier = Modifier
+ .fillMaxSize()
+ .background(
+ brush = Brush.linearGradient(
+ colors = listOf(
+ colorResource(R.color.home_screen_modal_gradient_one),
+ colorResource(R.color.home_screen_modal_gradient_two),
+ colorResource(R.color.home_screen_modal_gradient_three),
+ colorResource(R.color.home_screen_modal_gradient_four),
+ colorResource(R.color.home_screen_modal_gradient_five),
+ colorResource(R.color.home_screen_modal_gradient_six),
+ ),
+ end = Offset(0f, Float.POSITIVE_INFINITY),
+ start = Offset(Float.POSITIVE_INFINITY, 0f),
+ ),
+ ),
+ ) {
+ Column(
+ modifier = Modifier
+ .fillMaxWidth()
+ .padding(top = 60.dp, end = 20.dp),
+ horizontalAlignment = Alignment.End,
+ ) {
+ CloseButton(onCloseButtonClick)
+ }
+ Column(
+ modifier = Modifier
+ .fillMaxSize()
+ .verticalScroll(rememberScrollState()),
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally,
+ ) {
+ Image(
+ painter = painterResource(R.drawable.onboarding_logo),
+ contentDescription = LocalContext.current.getString(R.string.app_name),
+ modifier = Modifier
+ .size(150.dp, 150.dp),
+ )
+ Text(
+ text = stringResource(
+ R.string.onboarding_first_screen_title,
+ stringResource(R.string.app_name),
+ ),
+ modifier = Modifier
+ .padding(top = 32.dp, start = 16.dp, end = 16.dp),
+ textAlign = TextAlign.Center,
+ style = focusTypography.onboardingTitle,
+ )
+ Text(
+ text = stringResource(
+ R.string.onboarding_first_screen_subtitle,
+ ),
+ modifier = Modifier
+ .padding(top = 16.dp, start = 16.dp, end = 16.dp),
+ textAlign = TextAlign.Center,
+ style = focusTypography.onboardingSubtitle,
+ )
+ ComponentGoToOnBoardingSecondScreen {
+ onGetStartedButtonClicked()
+ }
+ }
+ }
+}
+
+@Composable
+private fun CloseButton(onCloseButtonClick: () -> Unit) {
+ IconButton(
+ modifier = Modifier
+ .size(48.dp)
+ .background(
+ colorResource(R.color.onboardingCloseButtonColor),
+ shape = CircleShape,
+ ),
+ onClick = onCloseButtonClick,
+ ) {
+ Icon(
+ painter = painterResource(R.drawable.mozac_ic_cross_24),
+ contentDescription = stringResource(R.string.onboarding_close_button_content_description),
+ tint = focusColors.closeIcon,
+ )
+ }
+}
+
+@Composable
+private fun ComponentGoToOnBoardingSecondScreen(goToOnBoardingSecondScreen: () -> Unit) {
+ Button(
+ onClick = goToOnBoardingSecondScreen,
+ modifier = Modifier
+ .padding(top = 40.dp, start = 16.dp, end = 16.dp)
+ .fillMaxWidth(),
+ colors = ButtonDefaults.textButtonColors(
+ backgroundColor = colorResource(R.color.onboardingButtonOneColor),
+ ),
+ ) {
+ Text(
+ text = AnnotatedString(
+ LocalContext.current.resources.getString(
+ R.string.onboarding_first_screen_button_text,
+ ),
+ ),
+ color = PhotonColors.White,
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingInteractor.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingInteractor.kt
new file mode 100644
index 0000000000..b60c4c2fa3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingInteractor.kt
@@ -0,0 +1,34 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment.onboarding
+
+import android.content.Intent
+import androidx.activity.result.ActivityResult
+import androidx.activity.result.ActivityResultLauncher
+
+interface OnboardingInteractor {
+ fun onFinishOnBoarding()
+ fun onGetStartedButtonClicked()
+ fun onMakeFocusDefaultBrowserButtonClicked(activityResultLauncher: ActivityResultLauncher<Intent>)
+ fun onActivityResultImplementation(activityResult: ActivityResult)
+}
+
+class DefaultOnboardingInteractor(private val controller: OnboardingController) : OnboardingInteractor {
+ override fun onFinishOnBoarding() {
+ controller.handleFinishOnBoarding()
+ }
+
+ override fun onGetStartedButtonClicked() {
+ controller.handleGetStartedButtonClicked()
+ }
+
+ override fun onMakeFocusDefaultBrowserButtonClicked(activityResultLauncher: ActivityResultLauncher<Intent>) {
+ controller.handleMakeFocusDefaultBrowserButtonClicked(activityResultLauncher)
+ }
+
+ override fun onActivityResultImplementation(activityResult: ActivityResult) {
+ controller.handleActivityResultImplementation(activityResult)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingSecondFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingSecondFragment.kt
new file mode 100644
index 0000000000..72bfa8ffb2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingSecondFragment.kt
@@ -0,0 +1,88 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment.onboarding
+
+import android.content.Context
+import android.content.Intent
+import android.os.Build
+import android.os.Bundle
+import android.transition.TransitionInflater
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.activity.result.ActivityResultLauncher
+import androidx.activity.result.contract.ActivityResultContracts
+import androidx.compose.ui.platform.ComposeView
+import androidx.fragment.app.Fragment
+import mozilla.components.support.utils.Browsers
+import mozilla.telemetry.glean.private.NoExtras
+import org.mozilla.focus.GleanMetrics.Onboarding
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ui.theme.FocusTheme
+
+class OnboardingSecondFragment : Fragment() {
+ private lateinit var onboardingInteractor: OnboardingInteractor
+
+ private var activityResultLauncher: ActivityResultLauncher<Intent> = registerForActivityResult(
+ ActivityResultContracts.StartActivityForResult(),
+ ) {
+ onboardingInteractor.onActivityResultImplementation(it)
+ }
+
+ override fun onAttach(context: Context) {
+ super.onAttach(context)
+ val transition =
+ TransitionInflater.from(context).inflateTransition(R.transition.firstrun_exit)
+ exitTransition = transition
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?,
+ ): View {
+ onboardingInteractor = DefaultOnboardingInteractor(
+ DefaultOnboardingController(
+ onboardingStorage = OnboardingStorage(requireContext()),
+ appStore = requireComponents.appStore,
+ context = requireActivity(),
+ selectedTabId = requireComponents.store.state.selectedTabId,
+ ),
+ )
+ return ComposeView(requireContext()).apply {
+ setContent {
+ FocusTheme {
+ OnBoardingSecondScreenCompose(
+ setAsDefaultBrowser = {
+ Onboarding.defaultBrowserButton.record(NoExtras())
+ onboardingInteractor.onMakeFocusDefaultBrowserButtonClicked(activityResultLauncher)
+ },
+ skipScreen = {
+ Onboarding.skipButton.record(NoExtras())
+ onboardingInteractor.onFinishOnBoarding()
+ },
+ onCloseButtonClick = {
+ Onboarding.secondScreenCloseButton.record(NoExtras())
+ onboardingInteractor.onFinishOnBoarding()
+ },
+ )
+ }
+ }
+ isTransitionGroup = true
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ // check if the default browser was changed from OS settings for devices with Android 7,8 and 9.
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N &&
+ Build.VERSION.SDK_INT < Build.VERSION_CODES.Q &&
+ Browsers.all(requireContext()).isDefaultBrowser
+ ) {
+ onboardingInteractor.onFinishOnBoarding()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingSecondScreenCompose.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingSecondScreenCompose.kt
new file mode 100644
index 0000000000..67323f34b0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingSecondScreenCompose.kt
@@ -0,0 +1,194 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment.onboarding
+
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.rememberScrollState
+import androidx.compose.foundation.shape.CircleShape
+import androidx.compose.foundation.verticalScroll
+import androidx.compose.material.Button
+import androidx.compose.material.ButtonDefaults
+import androidx.compose.material.Icon
+import androidx.compose.material.IconButton
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.geometry.Offset
+import androidx.compose.ui.graphics.Brush
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.AnnotatedString
+import androidx.compose.ui.text.style.TextAlign
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import mozilla.components.ui.colors.PhotonColors
+import org.mozilla.focus.R
+import org.mozilla.focus.ui.theme.FocusTheme
+import org.mozilla.focus.ui.theme.focusColors
+import org.mozilla.focus.ui.theme.focusTypography
+
+@Composable
+@Preview
+private fun OnBoardingSecondScreenComposePreview() {
+ FocusTheme {
+ OnBoardingSecondScreenCompose({}, {}, {})
+ }
+}
+
+/**
+ * Displays the second onBoarding screen
+ *
+ * @param setAsDefaultBrowser Will be called when the user clicks on SetDefaultBrowser button.
+ * @param skipScreen Will be called when the user clicks on Skip button.
+ * @param onCloseButtonClick The lambda to be invoked when close button icon is pressed.
+ */
+@Composable
+@Suppress("LongMethod")
+fun OnBoardingSecondScreenCompose(
+ setAsDefaultBrowser: () -> Unit,
+ skipScreen: () -> Unit,
+ onCloseButtonClick: () -> Unit,
+) {
+ Column(
+ modifier = Modifier
+ .fillMaxSize()
+ .background(
+ brush = Brush.linearGradient(
+ colors = listOf(
+ colorResource(R.color.home_screen_modal_gradient_one),
+ colorResource(R.color.home_screen_modal_gradient_two),
+ colorResource(R.color.home_screen_modal_gradient_three),
+ colorResource(R.color.home_screen_modal_gradient_four),
+ colorResource(R.color.home_screen_modal_gradient_five),
+ colorResource(R.color.home_screen_modal_gradient_six),
+ ),
+ end = Offset(0f, Float.POSITIVE_INFINITY),
+ start = Offset(Float.POSITIVE_INFINITY, 0f),
+ ),
+ ),
+ ) {
+ Column(
+ modifier = Modifier
+ .fillMaxWidth()
+ .padding(top = 60.dp, end = 20.dp),
+ horizontalAlignment = Alignment.End,
+ ) {
+ CloseButton(onCloseButtonClick)
+ }
+ Column(
+ modifier = Modifier
+ .fillMaxSize()
+ .verticalScroll(rememberScrollState()),
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally,
+ ) {
+ Image(
+ painter = painterResource(R.drawable.onboarding_second_screen_icon),
+ contentDescription = LocalContext.current.getString(R.string.app_name),
+ modifier = Modifier
+ .size(200.dp, 300.dp),
+ )
+ Text(
+ text = stringResource(
+ R.string.onboarding_second_screen_title,
+ stringResource(R.string.onboarding_short_app_name),
+ ),
+ modifier = Modifier
+ .padding(top = 32.dp, start = 16.dp, end = 16.dp),
+ textAlign = TextAlign.Center,
+ style = focusTypography.onboardingTitle,
+ )
+ Text(
+ text = stringResource(
+ R.string.onboarding_second_screen_subtitle_one,
+ ),
+ modifier = Modifier
+ .padding(top = 16.dp, start = 16.dp, end = 16.dp),
+ textAlign = TextAlign.Center,
+ style = focusTypography.onboardingSubtitle,
+ )
+ Text(
+ text = stringResource(
+ R.string.onboarding_second_screen_subtitle_two,
+ stringResource(R.string.onboarding_short_app_name),
+ ),
+ modifier = Modifier
+ .padding(top = 16.dp, start = 16.dp, end = 16.dp),
+ textAlign = TextAlign.Center,
+ style = focusTypography.onboardingSubtitle,
+ )
+ ComponentOnBoardingSecondScreenButtons(setAsDefaultBrowser, skipScreen)
+ }
+ }
+}
+
+@Composable
+private fun CloseButton(onCloseButtonClick: () -> Unit) {
+ IconButton(
+ modifier = Modifier
+ .size(48.dp)
+ .background(
+ colorResource(id = R.color.onboardingCloseButtonColor),
+ shape = CircleShape,
+ ),
+ onClick = onCloseButtonClick,
+ ) {
+ Icon(
+ painter = painterResource(R.drawable.mozac_ic_cross_24),
+ contentDescription = stringResource(R.string.onboarding_close_button_content_description),
+ tint = focusColors.closeIcon,
+ )
+ }
+}
+
+@Composable
+private fun ComponentOnBoardingSecondScreenButtons(setAsDefaultBrowser: () -> Unit, skipScreen: () -> Unit) {
+ Button(
+ onClick = setAsDefaultBrowser,
+ modifier = Modifier
+ .padding(top = 33.dp, start = 16.dp, end = 16.dp)
+ .fillMaxWidth(),
+ colors = ButtonDefaults.textButtonColors(
+ backgroundColor = colorResource(R.color.onboardingButtonOneColor),
+ ),
+ ) {
+ Text(
+ text = AnnotatedString(
+ LocalContext.current.resources.getString(
+ R.string.onboarding_second_screen_default_browser_button_text,
+ ),
+ ),
+ color = PhotonColors.White,
+ )
+ }
+ Button(
+ onClick = skipScreen,
+ modifier = Modifier
+ .padding(top = 8.dp, start = 16.dp, end = 16.dp)
+ .fillMaxWidth(),
+ colors = ButtonDefaults.textButtonColors(
+ backgroundColor = colorResource(R.color.onboardingButtonTwoColor),
+ ),
+ ) {
+ Text(
+ text = AnnotatedString(
+ LocalContext.current.resources.getString(
+ R.string.onboarding_second_screen_skip_button_text,
+ ),
+ ),
+ color = PhotonColors.Black,
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingStep.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingStep.kt
new file mode 100644
index 0000000000..c53c0f3f62
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingStep.kt
@@ -0,0 +1,12 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment.onboarding
+
+import org.mozilla.focus.R
+
+enum class OnboardingStep(val prefId: Int) {
+ ON_BOARDING_FIRST_SCREEN(R.string.pref_key_first_screen),
+ ON_BOARDING_SECOND_SCREEN(R.string.pref_key_second_screen),
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingStorage.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingStorage.kt
new file mode 100644
index 0000000000..e2912080cf
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/fragment/onboarding/OnboardingStorage.kt
@@ -0,0 +1,49 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.fragment.onboarding
+
+import android.content.Context
+import androidx.annotation.VisibleForTesting
+import androidx.preference.PreferenceManager
+import org.mozilla.focus.R
+
+class OnboardingStorage(val context: Context) {
+
+ /**
+ * Saves the step of the onBoarding flow.
+ * If the user closes the app at step two he should start again from step two
+ * when he enters again in the app.
+ *
+ * @param onBoardingStep current onBoarding step
+ */
+ internal fun saveCurrentOnboardingStepInSharePref(
+ onBoardingStep: OnboardingStep,
+ ) {
+ val sharedPref = PreferenceManager.getDefaultSharedPreferences(context)
+ with(sharedPref.edit()) {
+ putString(
+ context.getString(R.string.pref_key_onboarding_step),
+ context.getString(onBoardingStep.prefId),
+ )
+ apply()
+ }
+ }
+
+ @VisibleForTesting
+ internal fun getCurrentOnboardingStepFromSharedPref(): String {
+ val sharedPref = PreferenceManager.getDefaultSharedPreferences(context)
+ return sharedPref.getString(context.getString(R.string.pref_key_onboarding_step), "")
+ ?: ""
+ }
+
+ internal fun getCurrentOnboardingStep() =
+ when (getCurrentOnboardingStepFromSharedPref()) {
+ context.getString(R.string.pref_key_first_screen) -> OnboardingStep.ON_BOARDING_FIRST_SCREEN
+ context.getString(R.string.pref_key_second_screen) -> OnboardingStep.ON_BOARDING_SECOND_SCREEN
+ else -> {
+ OnboardingStep.ON_BOARDING_FIRST_SCREEN
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/input/InputToolbarIntegration.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/input/InputToolbarIntegration.kt
new file mode 100644
index 0000000000..a360f68131
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/input/InputToolbarIntegration.kt
@@ -0,0 +1,186 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.input
+
+import androidx.annotation.VisibleForTesting
+import androidx.appcompat.widget.AppCompatEditText
+import androidx.compose.material.Text
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.unit.dp
+import androidx.core.content.ContextCompat
+import androidx.core.content.res.ResourcesCompat
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.cancel
+import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.mapNotNull
+import mozilla.components.browser.domains.autocomplete.CustomDomainsProvider
+import mozilla.components.browser.domains.autocomplete.ShippedDomainsProvider
+import mozilla.components.browser.toolbar.BrowserToolbar
+import mozilla.components.compose.cfr.CFRPopup
+import mozilla.components.compose.cfr.CFRPopupProperties
+import mozilla.components.concept.toolbar.AutocompleteResult
+import mozilla.components.concept.toolbar.Toolbar
+import mozilla.components.lib.state.ext.flowScoped
+import mozilla.components.support.base.feature.LifecycleAwareFeature
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.fragment.UrlInputFragment
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.ui.theme.focusTypography
+
+class InputToolbarIntegration(
+ private val toolbar: BrowserToolbar,
+ private val fragment: UrlInputFragment,
+ shippedDomainsProvider: ShippedDomainsProvider,
+ customDomainsProvider: CustomDomainsProvider,
+) : LifecycleAwareFeature {
+ private val settings = toolbar.context.settings
+
+ private var useShippedDomainProvider: Boolean = false
+ private var useCustomDomainProvider: Boolean = false
+
+ @VisibleForTesting
+ internal var startBrowsingCfrScope: CoroutineScope? = null
+
+ init {
+ with(toolbar.display) {
+ indicators = emptyList()
+ hint = fragment.resources.getString(R.string.urlbar_hint)
+ colors = toolbar.display.colors.copy(
+ hint = ContextCompat.getColor(toolbar.context, R.color.urlBarHintText),
+ text = ContextCompat.getColor(toolbar.context, R.color.primaryText),
+ )
+ }
+ toolbar.edit.hint = fragment.resources.getString(R.string.urlbar_hint)
+ toolbar.private = true
+ toolbar.edit.colors = toolbar.edit.colors.copy(
+ hint = ContextCompat.getColor(toolbar.context, R.color.urlBarHintText),
+ text = ContextCompat.getColor(toolbar.context, R.color.primaryText),
+ clear = ContextCompat.getColor(toolbar.context, R.color.primaryText),
+ suggestionBackground = ContextCompat.getColor(toolbar.context, R.color.autocompleteBackgroundColor),
+ )
+
+ toolbar.setOnEditListener(
+ object : Toolbar.OnEditListener {
+ override fun onStartEditing() {
+ fragment.onStartEditing()
+ }
+
+ override fun onCancelEditing(): Boolean {
+ fragment.onCancelEditing()
+ return true
+ }
+
+ override fun onTextChanged(text: String) {
+ fragment.onTextChange(text)
+ }
+ },
+ )
+
+ toolbar.setOnUrlCommitListener { url ->
+ fragment.onCommit(url)
+ false
+ }
+
+ toolbar.setAutocompleteListener { text, delegate ->
+ var result: AutocompleteResult? = null
+ if (useCustomDomainProvider) {
+ result = customDomainsProvider.getAutocompleteSuggestion(text)
+ }
+
+ if (useShippedDomainProvider && result == null) {
+ result = shippedDomainsProvider.getAutocompleteSuggestion(text)
+ }
+
+ if (result != null) {
+ delegate.applyAutocompleteResult(
+ AutocompleteResult(
+ result.input,
+ result.text,
+ result.url,
+ result.source,
+ result.totalItems,
+ ),
+ )
+ } else {
+ delegate.noAutocompleteResult(text)
+ }
+ }
+
+ // Use the same background for display/edit modes.
+ val urlBackground = ResourcesCompat.getDrawable(
+ fragment.resources,
+ R.drawable.toolbar_url_background,
+ fragment.context?.theme,
+ )
+
+ toolbar.display.setUrlBackground(urlBackground)
+ toolbar.edit.setUrlBackground(urlBackground)
+ }
+
+ override fun start() {
+ useCustomDomainProvider = settings.shouldAutocompleteFromCustomDomainList()
+ useShippedDomainProvider = settings.shouldAutocompleteFromShippedDomainList()
+ if (fragment.components?.appStore?.state?.showStartBrowsingTabsCfr == true) {
+ observeStartBrowserCfrVisibility()
+ }
+ }
+
+ @VisibleForTesting
+ internal fun observeStartBrowserCfrVisibility() {
+ startBrowsingCfrScope = fragment.components?.appStore?.flowScoped { flow ->
+ flow.mapNotNull { state -> state.showStartBrowsingTabsCfr }
+ .distinctUntilChanged()
+ .collect { showStartBrowsingCfr ->
+ if (showStartBrowsingCfr) {
+ CFRPopup(
+ anchor = toolbar.findViewById<AppCompatEditText>(R.id.mozac_browser_toolbar_background),
+ properties = CFRPopupProperties(
+ popupWidth = 256.dp,
+ popupAlignment = CFRPopup.PopupAlignment.BODY_TO_ANCHOR_START,
+ popupBodyColors = listOf(
+ ContextCompat.getColor(
+ fragment.requireContext(),
+ R.color.cfr_pop_up_shape_end_color,
+ ),
+ ContextCompat.getColor(
+ fragment.requireContext(),
+ R.color.cfr_pop_up_shape_start_color,
+ ),
+ ),
+ dismissButtonColor = ContextCompat.getColor(
+ fragment.requireContext(),
+ R.color.cardview_light_background,
+ ),
+ popupVerticalOffset = 0.dp,
+ ),
+ onDismiss = {
+ onDismissStartBrowsingCfr()
+ },
+ text = {
+ Text(
+ style = focusTypography.cfrTextStyle,
+ text = fragment.resources.getString(R.string.cfr_for_start_browsing),
+ color = colorResource(R.color.cfr_text_color),
+ )
+ },
+ ).apply {
+ show()
+ }
+ }
+ }
+ }
+ }
+
+ private fun onDismissStartBrowsingCfr() {
+ fragment.components?.appStore?.dispatch(AppAction.ShowStartBrowsingCfrChange(false))
+ fragment.requireContext().settings.shouldShowStartBrowsingCfr = false
+ }
+
+ override fun stop() {
+ startBrowsingCfrScope?.cancel()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/LocaleManager.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/LocaleManager.kt
new file mode 100644
index 0000000000..eb435b5f76
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/LocaleManager.kt
@@ -0,0 +1,80 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.locale
+
+import android.content.Context
+import android.content.SharedPreferences
+import androidx.preference.PreferenceManager
+import org.mozilla.focus.R
+import org.mozilla.focus.generated.LocalesList
+import java.util.Locale
+import java.util.concurrent.atomic.AtomicReference
+
+/**
+ * This class manages persistence, application, and otherwise handling of
+ * user-specified locales.
+ *
+ * Of note:
+ *
+ * * It's a singleton, because its scope extends to that of the application,
+ * and definitionally all changes to the locale of the app must go through
+ * this.
+ * * It's lazy.
+ * * It relies on using the SharedPreferences file owned by the app for performance.
+ */
+class LocaleManager {
+ // These are volatile because we don't impose restrictions over which thread calls our methods.
+ @Volatile
+ private var currentLocale: Locale? = null
+
+ private fun getSharedPreferences(context: Context): SharedPreferences {
+ if (PREF_LOCALE == null) {
+ PREF_LOCALE = context.resources.getString(R.string.pref_key_locale)
+ }
+
+ return PreferenceManager.getDefaultSharedPreferences(context)
+ }
+
+ /**
+ * @return the persisted locale in Java format: "en_US".
+ */
+ private fun getPersistedLocale(context: Context): String? {
+ val settings: SharedPreferences = getSharedPreferences(context)
+ return settings.getString(PREF_LOCALE, null)
+ }
+
+ /**
+ * @return the current locale in Java format: "en_US".
+ */
+ fun getCurrentLocale(context: Context): Locale? {
+ if (currentLocale != null) {
+ return currentLocale
+ }
+
+ val current = getPersistedLocale(context) ?: return null
+ return Locales.parseLocaleCode(current).also { currentLocale = it }
+ }
+
+ companion object {
+ private var PREF_LOCALE: String? = null
+ val instance = AtomicReference<LocaleManager?>()
+ get() {
+ var localeManager = field.get()
+ if (localeManager != null) {
+ return field
+ }
+ localeManager = LocaleManager()
+ return if (field.compareAndSet(null, localeManager)) {
+ AtomicReference(localeManager)
+ } else {
+ field
+ }
+ }
+
+ /**
+ * Returns a list of supported locale codes
+ */
+ val packagedLocaleTags: Collection<String> = LocalesList.BUNDLED_LOCALES
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/Locales.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/Locales.kt
new file mode 100644
index 0000000000..4691b6886d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/Locales.kt
@@ -0,0 +1,107 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.locale
+
+import android.content.Context
+import android.content.res.Configuration
+import android.content.res.Resources
+import mozilla.components.support.ktx.android.content.res.locale
+import org.mozilla.focus.locale.LocaleManager.Companion.instance
+import java.util.Locale
+
+/**
+ * This is a helper class to do typical locale switching operations without
+ * hitting StrictMode errors or adding boilerplate to common activity
+ * subclasses.
+ *
+ * Inherit from `LocaleAwareFragmentActivity` or `LocaleAwareActivity`.
+ */
+object Locales {
+ /**
+ * Sometimes we want just the language for a locale, not the entire language
+ * tag. But Java's .getLanguage method is wrong.
+ *
+ * This method is equivalent to the first part of
+ * [Locales.getLanguageTag].
+ *
+ * @return a language string, such as "he" for the Hebrew locales.
+ */
+ fun getLanguage(locale: Locale): String {
+ // Modernize certain language codes.
+ return when (val language = locale.language) {
+ "iw" -> {
+ "he"
+ }
+
+ "in" -> {
+ "id"
+ }
+
+ "ji" -> {
+ "yi"
+ }
+
+ else -> language
+ }
+ }
+
+ /**
+ * Gecko uses locale codes like "es-ES", whereas a Java [Locale]
+ * stringifies as "es_ES".
+ *
+ * This method approximates the Java 7 method
+ * `Locale#toLanguageTag()`.
+ *
+ * @return a locale string suitable for passing to Gecko.
+ */
+ @JvmStatic
+ fun getLanguageTag(locale: Locale): String {
+ val language = getLanguage(locale)
+ val country = locale.country
+
+ return if (country.isEmpty()) {
+ language
+ } else {
+ "$language-$country"
+ }
+ }
+
+ /**
+ * Parses a locale code [String] and returns the corresponding [Locale].
+ */
+ fun parseLocaleCode(localeCode: String): Locale {
+ var index: Int
+
+ if (localeCode.indexOf('-').also { index = it } != -1 ||
+ localeCode.indexOf('_').also { index = it } != -1
+ ) {
+ val langCode = localeCode.substring(0, index)
+ val countryCode = localeCode.substring(index + 1)
+ return Locale(langCode, countryCode)
+ }
+
+ return Locale(localeCode)
+ }
+
+ /**
+ * Get a Resources instance with the currently selected locale applied.
+ */
+ fun getLocalizedResources(context: Context): Resources {
+ val currentResources = context.resources
+ val currentLocale: Locale? = instance.get()?.getCurrentLocale(context)
+ val viewLocale = currentResources.locale
+
+ if (currentLocale == null) {
+ return currentResources
+ }
+
+ if (currentLocale.toLanguageTag() == viewLocale.toLanguageTag()) {
+ return currentResources
+ }
+
+ val configuration = Configuration(currentResources.configuration)
+ configuration.setLocale(currentLocale)
+ return context.createConfigurationContext(configuration).resources
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/DefaultLanguageScreenInteractor.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/DefaultLanguageScreenInteractor.kt
new file mode 100644
index 0000000000..0d0bd76248
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/DefaultLanguageScreenInteractor.kt
@@ -0,0 +1,17 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.locale.screen
+
+class DefaultLanguageScreenInteractor(
+ private val languageScreenStore: LanguageScreenStore,
+) {
+
+ fun handleLanguageSelected(language: Language) {
+ if (languageScreenStore.state.selectedLanguage == language) {
+ return
+ }
+ languageScreenStore.dispatch(LanguageScreenAction.Select(selectedLanguage = language))
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/Language.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/Language.kt
new file mode 100644
index 0000000000..dd72f42fc1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/Language.kt
@@ -0,0 +1,15 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.locale.screen
+
+/**
+ * Data class for Language that comes from the LanguageStorage
+ *
+ * @param displayName of the Language the will be shown in the GUI
+ * @param tag of the Language that will be saved in SharePref if the element is selected
+ * @param index of the Language in the list .It is used for auto-scrolling to the current selected
+ * Language
+ */
+data class Language(var displayName: String?, val tag: String, val index: Int)
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageFragment.kt
new file mode 100644
index 0000000000..98ff11113b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageFragment.kt
@@ -0,0 +1,115 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.locale.screen
+
+import android.os.Bundle
+import androidx.compose.foundation.lazy.rememberLazyListState
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.MutableState
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.rememberCoroutineScope
+import kotlinx.coroutines.launch
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.lib.state.ext.observeAsComposableState
+import mozilla.components.support.locale.LocaleUseCases
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.settings.BaseComposeFragment
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+
+class LanguageFragment : BaseComposeFragment() {
+ private lateinit var browserStore: BrowserStore
+ private lateinit var localeUseCases: LocaleUseCases
+ private lateinit var languageScreenStore: LanguageScreenStore
+ private lateinit var defaultLanguageScreenInteractor: DefaultLanguageScreenInteractor
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ browserStore = requireContext().components.store
+ localeUseCases = LocaleUseCases(browserStore)
+ languageScreenStore = LanguageScreenStore(
+ LanguageScreenState(),
+ listOf(
+ LanguageMiddleware(
+ activity = requireActivity(),
+ localeUseCase = localeUseCases,
+ ),
+ ),
+ )
+ defaultLanguageScreenInteractor = DefaultLanguageScreenInteractor(
+ languageScreenStore = languageScreenStore,
+ )
+ }
+
+ override val titleRes: Int
+ get() = R.string.preference_language
+
+ override fun onNavigateUp(): () -> Unit {
+ return {
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(Screen.Settings.Page.General),
+ )
+ }
+ }
+
+ @Composable
+ override fun Content() {
+ val languagesList = languageScreenStore
+ .observeAsComposableState { state -> state.languageList }.value
+ val languageSelected = languageScreenStore.observeAsComposableState { state ->
+ state.selectedLanguage
+ }.value
+ if (languageSelected != null && languagesList != null) {
+ Languages(languageSelected = languageSelected, languages = languagesList)
+ }
+ }
+
+ private fun createLanguageListItem(
+ languages: List<Language>,
+ state: MutableState<String>,
+ ): List<LanguageListItem> {
+ val languageListItems = ArrayList<LanguageListItem>()
+ languages.forEach { language ->
+ if (language.tag == LanguageStorage.LOCALE_SYSTEM_DEFAULT) {
+ language.displayName = context?.getString(R.string.preference_language_systemdefault)
+ }
+ val languageListItem = LanguageListItem(
+ language = language,
+ onClick = {
+ state.value = language.tag
+ defaultLanguageScreenInteractor.handleLanguageSelected(language)
+ },
+ )
+ languageListItems.add(languageListItem)
+ }
+ return languageListItems
+ }
+
+ @Composable
+ private fun Languages(languageSelected: Language, languages: List<Language>) {
+ val listState = rememberLazyListState()
+ val coroutineScope = rememberCoroutineScope()
+ LaunchedEffect(languageSelected.index) {
+ coroutineScope.launch {
+ languageSelected.let { listState.scrollToItem(it.index) }
+ }
+ }
+ val state = remember {
+ mutableStateOf(languageSelected.tag)
+ }
+ LanguagesList(
+ languageListItems = createLanguageListItem(
+ languages = languages,
+ state = state,
+ ),
+ state = state,
+ listState = listState,
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageListItem.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageListItem.kt
new file mode 100644
index 0000000000..e5708ffe6c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageListItem.kt
@@ -0,0 +1,16 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.locale.screen
+
+/**
+ * Data class for the LanguageListItem that goes to the compose ListView
+ *
+ * @param language item to be display in ListView
+ * @param onClick Callback when the user taps on Language Item
+ */
+data class LanguageListItem(
+ val language: Language,
+ val onClick: (String) -> Unit,
+)
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageMiddleware.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageMiddleware.kt
new file mode 100644
index 0000000000..89043c17b5
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageMiddleware.kt
@@ -0,0 +1,69 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.locale.screen
+
+import android.app.Activity
+import mozilla.components.lib.state.Middleware
+import mozilla.components.lib.state.MiddlewareContext
+import mozilla.components.support.locale.LocaleManager
+import mozilla.components.support.locale.LocaleUseCases
+import org.mozilla.focus.locale.Locales
+import org.mozilla.focus.settings.InstalledSearchEnginesSettingsFragment
+import org.mozilla.gecko.util.ThreadUtils.runOnUiThread
+import java.util.Locale
+
+class LanguageMiddleware(val activity: Activity, private val localeUseCase: LocaleUseCases) :
+ Middleware<LanguageScreenState, LanguageScreenAction> {
+
+ private val storage by lazy {
+ LanguageStorage(context = activity)
+ }
+
+ override fun invoke(
+ context: MiddlewareContext<LanguageScreenState, LanguageScreenAction>,
+ next: (LanguageScreenAction) -> Unit,
+ action: LanguageScreenAction,
+ ) {
+ when (action) {
+ is LanguageScreenAction.Select -> {
+ storage.saveCurrentLanguageInSharePref(action.selectedLanguage.tag)
+ setCurrentLanguage(action.selectedLanguage.tag)
+ next(action)
+ }
+ is LanguageScreenAction.InitLanguages -> {
+ /**
+ * The initial LanguageScreenState when the user enters first in the screen
+ */
+ context.dispatch(
+ LanguageScreenAction.UpdateLanguages(
+ storage.getLanguages(),
+ storage.getSelectedLanguageTag(),
+ ),
+ )
+ }
+ else -> {
+ next(action)
+ }
+ }
+ }
+
+ /**
+ * It changes the system defined locale to the indicated Language .
+ * It recreates the current activity for changes to take effect.
+ *
+ * @param languageTag selected Language Tag that comes from Language object
+ */
+ private fun setCurrentLanguage(languageTag: String) {
+ InstalledSearchEnginesSettingsFragment.languageChanged = true
+ val locale: Locale?
+ if (languageTag == LanguageStorage.LOCALE_SYSTEM_DEFAULT) {
+ LocaleManager.resetToSystemDefault(activity, localeUseCase)
+ } else {
+ locale = Locales.parseLocaleCode(languageTag)
+ LocaleManager.setNewLocale(activity, localeUseCase, locale)
+ }
+ runOnUiThread { activity.recreate() }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageScreenStore.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageScreenStore.kt
new file mode 100644
index 0000000000..ce43e7897e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageScreenStore.kt
@@ -0,0 +1,70 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.locale.screen
+
+import mozilla.components.lib.state.Action
+import mozilla.components.lib.state.Middleware
+import mozilla.components.lib.state.State
+import mozilla.components.lib.state.Store
+
+class LanguageScreenStore(
+ initialState: LanguageScreenState,
+ middlewares: List<Middleware<LanguageScreenState, LanguageScreenAction>> = emptyList(),
+) : Store<LanguageScreenState, LanguageScreenAction>(
+ initialState,
+ ::languagesScreenStateReducer,
+ middlewares,
+) {
+ init {
+ dispatch(LanguageScreenAction.InitLanguages)
+ }
+}
+
+/**
+ * The state of the language selection screen
+ *
+ * @property languageList The full list of languages available
+ * @property selectedLanguage The current selected language
+ */
+data class LanguageScreenState(
+ val languageList: List<Language> = emptyList(),
+ val selectedLanguage: Language? = null,
+) : State
+
+/**
+ * Action to dispatch through the `LanguageScreenStore` to modify `LanguageScreenState` through the reducer.
+ */
+sealed class LanguageScreenAction : Action {
+ object InitLanguages : LanguageScreenAction()
+ data class Select(val selectedLanguage: Language) : LanguageScreenAction()
+ data class UpdateLanguages(
+ val languageList: List<Language>,
+ val selectedLanguage: Language,
+ ) : LanguageScreenAction()
+}
+
+/**
+ * Reduces the language state from the current state and an action performed on it.
+ *
+ * @param state the current locale state
+ * @param action the action to perform
+ * @return the new locale state
+ */
+private fun languagesScreenStateReducer(
+ state: LanguageScreenState,
+ action: LanguageScreenAction,
+): LanguageScreenState {
+ return when (action) {
+ is LanguageScreenAction.Select -> {
+ state.copy(selectedLanguage = action.selectedLanguage)
+ }
+ is LanguageScreenAction.UpdateLanguages -> {
+ state.copy(languageList = action.languageList, selectedLanguage = action.selectedLanguage)
+ }
+ LanguageScreenAction.InitLanguages -> {
+ throw IllegalStateException("You need to add LanguageMiddleware to your LanguageScreenStore. ($action)")
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageStorage.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageStorage.kt
new file mode 100644
index 0000000000..5788dedf0c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LanguageStorage.kt
@@ -0,0 +1,90 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.locale.screen
+
+import android.content.Context
+import android.content.SharedPreferences
+import androidx.preference.PreferenceManager
+import mozilla.components.support.base.log.logger.Logger
+import org.mozilla.focus.R
+import org.mozilla.focus.locale.LocaleManager
+import java.util.Arrays
+
+class LanguageStorage(private val context: Context) {
+
+ /**
+ * Returns the current selected Language object or System default Language if nothing is selected
+ */
+ fun getSelectedLanguageTag(): Language {
+ val sharedConfig: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
+ val languageTag = sharedConfig.getString(
+ context.resources.getString(R.string.pref_key_locale),
+ LOCALE_SYSTEM_DEFAULT,
+ ) ?: LOCALE_SYSTEM_DEFAULT
+ for (language in getLanguages()) {
+ if (languageTag == language.tag) {
+ return language
+ }
+ }
+ return Language(context.getString(R.string.preference_language_systemdefault), LOCALE_SYSTEM_DEFAULT, 0)
+ }
+
+ /**
+ * Returns The full list of languages available.System default Language will be the first item in the list .
+ */
+ fun getLanguages(): List<Language> {
+ val listLocaleNameAndTag = ArrayList<Language>()
+ val descriptors = getUsableLocales()
+ listLocaleNameAndTag.add(
+ Language(
+ context.getString(
+ R.string.preference_language_systemdefault,
+ ),
+ LOCALE_SYSTEM_DEFAULT,
+ 0,
+ ),
+ )
+ descriptors.indices.forEach { i ->
+ val displayName = descriptors[i]!!.getNativeName()
+ val tag = descriptors[i]!!.getTag()
+ Logger.info("$displayName => $tag ")
+ listLocaleNameAndTag.add(Language(displayName = displayName, tag = tag, index = i + 1))
+ }
+ return listLocaleNameAndTag
+ }
+
+ /**
+ * Saves the current selected language tag
+ *
+ * @property languageTag the tag of the language
+ */
+ fun saveCurrentLanguageInSharePref(languageTag: String) {
+ val sharedPref = PreferenceManager.getDefaultSharedPreferences(context)
+ with(sharedPref.edit()) {
+ putString(context.getString(R.string.pref_key_locale), languageTag)
+ apply()
+ }
+ }
+
+ /**
+ * This method generates the descriptor array.
+ */
+ private fun getUsableLocales(): Array<LocaleDescriptor?> {
+ val shippingLocales = LocaleManager.packagedLocaleTags
+ val initialCount: Int = shippingLocales.size
+ val locales: MutableSet<LocaleDescriptor> = HashSet(initialCount)
+ for (tag in shippingLocales) {
+ locales.add(LocaleDescriptor(tag))
+ }
+ val usableCount = locales.size
+ val descriptors: Array<LocaleDescriptor?> = locales.toTypedArray()
+ Arrays.sort(descriptors, 0, usableCount)
+ return descriptors
+ }
+
+ companion object {
+ const val LOCALE_SYSTEM_DEFAULT = "LOCALE_SYSTEM_DEFAULT"
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LocaleDescriptor.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LocaleDescriptor.kt
new file mode 100644
index 0000000000..34c2fdb8e7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LocaleDescriptor.kt
@@ -0,0 +1,125 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.locale.screen
+
+import android.text.TextUtils
+import mozilla.components.support.base.log.logger.Logger
+import org.mozilla.focus.locale.Locales
+import java.text.Collator
+import java.util.Locale
+
+class LocaleDescriptor(private val localeTag: String) : Comparable<LocaleDescriptor> {
+
+ private val languageCodeAndNameMap: HashMap<String, String> = HashMap()
+ private var nativeName: String? = null
+
+ init {
+ fillLanguageCodeAndNameMap()
+ setupLocaleDescriptor()
+ }
+
+ private fun fillLanguageCodeAndNameMap() {
+ // Only ICU 57 actually contains the Asturian name for Asturian, even Android 7.1 is still
+ // shipping with ICU 56, so we need to override the Asturian name (otherwise displayName will
+ // be the current locales version of Asturian, see:
+ // https://github.com/mozilla-mobile/focus-android/issues/634#issuecomment-303886118
+ languageCodeAndNameMap["ast"] = "Asturianu"
+ // On an Android 8.0 device those languages are not known and we need to add the names
+ // manually. Loading the resources at runtime works without problems though.
+ languageCodeAndNameMap["ace"] = "Acehnese"
+ languageCodeAndNameMap["an"] = "Aragonés"
+ languageCodeAndNameMap["anp"] = "अंगिका"
+ languageCodeAndNameMap["ay"] = "Aimara"
+ languageCodeAndNameMap["cak"] = "Kaqchikel"
+ languageCodeAndNameMap["co"] = "Corsu"
+ languageCodeAndNameMap["hus"] = "Tének"
+ languageCodeAndNameMap["ia"] = "Interlingua"
+ languageCodeAndNameMap["ixl"] = "Ixil"
+ languageCodeAndNameMap["jv"] = "Basa Jawa"
+ languageCodeAndNameMap["meh"] = "Tu´un savi ñuu Yasi'í Yuku Iti"
+ languageCodeAndNameMap["mix"] = "Tu'un savi"
+ languageCodeAndNameMap["nv"] = "Navajo"
+ languageCodeAndNameMap["oc"] = "occitan"
+ languageCodeAndNameMap["pai"] = "Paa ipai"
+ languageCodeAndNameMap["ppl"] = "Náhuat Pipil"
+ languageCodeAndNameMap["quc"] = "K'iche'"
+ languageCodeAndNameMap["quy"] = "Chanka Qhichwa"
+ languageCodeAndNameMap["skr"] = "سرائیکی"
+ languageCodeAndNameMap["sn"] = "ChiShona"
+ languageCodeAndNameMap["su"] = "Basa Sunda"
+ languageCodeAndNameMap["trs"] = "Triqui"
+ languageCodeAndNameMap["tsz"] = "P'urhepecha"
+ languageCodeAndNameMap["tt"] = "татарча"
+ languageCodeAndNameMap["wo"] = "Wolof"
+ languageCodeAndNameMap["zam"] = "DíɁztè"
+ languageCodeAndNameMap["zh-CN"] = "中文 (中国大陆)"
+ }
+
+ private fun setupLocaleDescriptor() {
+ val locale = Locales.parseLocaleCode(localeTag)
+ val displayName: String? = getDisplayName(locale)
+
+ if (TextUtils.isEmpty(displayName)) {
+ // There's nothing sane we can do.
+ Logger.error("Display name is empty. Using $locale")
+ nativeName = locale.toString()
+ return
+ }
+
+ val directionality = Character.getDirectionality(displayName!![0])
+ if (directionality == Character.DIRECTIONALITY_LEFT_TO_RIGHT) {
+ var firstLetter = displayName.substring(0, 1)
+
+ // Android OS creates an instance of Transliterator to convert the first letter
+ // of the Greek locale. See CaseMapper.toUpperCase(Locale locale, String s, int count)
+ // Since it's already in upper case, we don't need it
+ if (!Character.isUpperCase(firstLetter[0])) {
+ firstLetter = firstLetter.uppercase(locale)
+ }
+ nativeName = firstLetter + displayName.substring(1)
+ return
+ }
+ nativeName = displayName
+ }
+
+ private fun getDisplayName(locale: Locale): String? {
+ return when {
+ languageCodeAndNameMap.containsKey(locale.language) -> {
+ languageCodeAndNameMap[locale.language]
+ }
+ languageCodeAndNameMap.containsKey(locale.toLanguageTag()) -> {
+ languageCodeAndNameMap[locale.toLanguageTag()]
+ }
+ else -> {
+ locale.getDisplayName(locale)
+ }
+ }
+ }
+
+ fun getTag(): String {
+ return localeTag
+ }
+
+ fun getNativeName(): String? {
+ return nativeName
+ }
+
+ override fun hashCode(): Int {
+ return localeTag.hashCode()
+ }
+
+ override fun equals(other: Any?): Boolean {
+ return other is LocaleDescriptor && compareTo(other) == 0
+ }
+
+ override operator fun compareTo(other: LocaleDescriptor): Int {
+ // We sort by name, so we use Collator.
+ return COLLATOR.compare(nativeName, other.nativeName)
+ }
+
+ companion object {
+ private val COLLATOR = Collator.getInstance(Locale.US)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LocaleFragmentCompose.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LocaleFragmentCompose.kt
new file mode 100644
index 0000000000..2d6089718b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/locale/screen/LocaleFragmentCompose.kt
@@ -0,0 +1,175 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.locale.screen
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.PaddingValues
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.layout.wrapContentHeight
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.lazy.LazyListState
+import androidx.compose.foundation.lazy.items
+import androidx.compose.foundation.lazy.rememberLazyListState
+import androidx.compose.material.RadioButton
+import androidx.compose.material.RadioButtonDefaults
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.MutableState
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.rememberCoroutineScope
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.RectangleShape
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.text.AnnotatedString
+import androidx.compose.ui.text.TextStyle
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import kotlinx.coroutines.launch
+import org.mozilla.focus.R
+import org.mozilla.focus.ui.theme.FocusTheme
+import org.mozilla.focus.ui.theme.focusColors
+
+private fun getFakeLanguages(): List<LanguageListItem> {
+ return mutableListOf<LanguageListItem>().apply {
+ var index = 0
+ add(LanguageListItem(Language("Română", "ro", index++), onClick = {}))
+ add(LanguageListItem(Language("Slovenčina", "sk", index++), onClick = {}))
+ add(LanguageListItem(Language("Português (Brasil)", "pt-BR", index++), onClick = {}))
+ add(LanguageListItem(Language("Nederlands", "nl", index++), onClick = {}))
+ add(LanguageListItem(Language("Magyar", "hu", index++), onClick = {}))
+ add(LanguageListItem(Language("Lietuvių", "lt", ++index), onClick = {}))
+ }
+}
+
+@Composable
+@Preview
+private fun LanguagesListComposablePreview() {
+ FocusTheme {
+ val listState = rememberLazyListState()
+ val coroutineScope = rememberCoroutineScope()
+ LaunchedEffect(0) {
+ coroutineScope.launch {
+ listState.scrollToItem(0)
+ }
+ }
+ val state = remember {
+ mutableStateOf("ro")
+ }
+ LanguagesList(
+ languageListItems = getFakeLanguages(),
+ state = state,
+ listState = listState,
+ )
+ }
+}
+
+/**
+ * Displays a list of Languages in a listView
+ *
+ * @param languageListItems The list of Languages items to be displayed.
+ * @param state the current Selected Language
+ * @param listState scrolls to the current selected Language
+ */
+@Composable
+fun LanguagesList(
+ languageListItems: List<LanguageListItem>,
+ state: MutableState<String>,
+ listState: LazyListState,
+) {
+ FocusTheme {
+ LazyColumn(
+ modifier = Modifier.background(colorResource(R.color.settings_background), shape = RectangleShape),
+ state = listState,
+ contentPadding = PaddingValues(horizontal = 12.dp),
+ ) {
+ items(languageListItems) { item ->
+ LanguageNameAndTagItem(
+ language = item.language,
+ isSelected = state.value == item.language.tag,
+ onClick = item.onClick,
+ )
+ }
+ }
+ }
+}
+
+@Composable
+fun LanguageNameAndTagItem(
+ language: Language,
+ isSelected: Boolean,
+ onClick: (String) -> Unit,
+) {
+ Row(
+ Modifier
+ .fillMaxWidth()
+ .wrapContentHeight(),
+ horizontalArrangement = Arrangement.Start,
+ verticalAlignment = Alignment.CenterVertically,
+ ) {
+ LanguageRadioButton(
+ language = language,
+ isSelected = isSelected,
+ onClick = onClick,
+ )
+ Spacer(modifier = Modifier.width(18.dp))
+ language.displayName?.let {
+ LanguageDisplayName(
+ language = language,
+ onClick = onClick,
+ )
+ }
+ }
+}
+
+/**
+ * Displays a single language radiobutton
+ *
+ * @param language of the item
+ * @param isSelected check or uncheck the radioButton if the language is selected or not
+ * @param onClick Callback when the user taps on Language
+ */
+@Composable
+private fun LanguageRadioButton(
+ language: Language,
+ isSelected: Boolean,
+ onClick: (String) -> Unit,
+) {
+ RadioButton(
+ selected = isSelected,
+ colors = RadioButtonDefaults.colors(selectedColor = focusColors.radioButtonSelected),
+ onClick = {
+ onClick(language.tag)
+ },
+ )
+}
+
+/**
+ * Displays a single language Text
+ *
+ * @param language of the item to be display in the textView
+ * @param onClick Callback when the user taps on Language text , the same like on the radioButton
+ */
+@Composable
+private fun LanguageDisplayName(language: Language, onClick: (String) -> Unit) {
+ Text(
+ text = AnnotatedString(language.displayName!!),
+ style = TextStyle(
+ fontSize = 20.sp,
+ ),
+ modifier = Modifier
+ .padding(10.dp)
+ .clickable { onClick(language.tag) },
+ )
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/media/MediaSessionService.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/media/MediaSessionService.kt
new file mode 100644
index 0000000000..e966596dba
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/media/MediaSessionService.kt
@@ -0,0 +1,20 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.media
+
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.concept.base.crash.CrashReporting
+import mozilla.components.feature.media.service.AbstractMediaSessionService
+import mozilla.components.support.base.android.NotificationsDelegate
+import org.mozilla.focus.ext.components
+
+/**
+ * [AbstractMediaSessionService] implementation for injecting [BrowserStore] singleton.
+ */
+class MediaSessionService : AbstractMediaSessionService() {
+ override val crashReporter: CrashReporting? by lazy { components.crashReporter }
+ override val store: BrowserStore by lazy { components.store }
+ override val notificationsDelegate: NotificationsDelegate by lazy { components.notificationsDelegate }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/ToolbarMenu.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/ToolbarMenu.kt
new file mode 100644
index 0000000000..4f9690b12a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/ToolbarMenu.kt
@@ -0,0 +1,40 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.menu
+
+import mozilla.components.browser.menu.BrowserMenuBuilder
+import mozilla.components.browser.menu.item.BrowserMenuItemToolbar
+
+interface ToolbarMenu {
+
+ sealed class Item {
+ data class RequestDesktop(val isChecked: Boolean) : Item()
+ object Reload : Item()
+ object Back : Item()
+ object Forward : Item()
+ object Share : Item()
+ object AddToShortcuts : Item()
+ object RemoveFromShortcuts : Item()
+ object FindInPage : Item()
+ object AddToHomeScreen : Item()
+ object OpenInApp : Item()
+ object Settings : Item()
+ object Stop : Item()
+ }
+
+ sealed class CustomTabItem {
+ data class RequestDesktop(val isChecked: Boolean) : Item()
+ object Reload : Item()
+ object Stop : Item()
+ object Back : Item()
+ object Forward : Item()
+ object FindInPage : Item()
+ object AddToHomeScreen : Item()
+ object OpenInBrowser : Item()
+ object OpenInApp : Item()
+ }
+
+ val menuBuilder: BrowserMenuBuilder
+ val menuToolbar: BrowserMenuItemToolbar
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/browser/CustomTabMenu.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/browser/CustomTabMenu.kt
new file mode 100644
index 0000000000..c6f79f6468
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/browser/CustomTabMenu.kt
@@ -0,0 +1,160 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.menu.browser
+
+import android.content.Context
+import android.graphics.Typeface
+import mozilla.components.browser.menu.WebExtensionBrowserMenuBuilder
+import mozilla.components.browser.menu.item.BrowserMenuCategory
+import mozilla.components.browser.menu.item.BrowserMenuDivider
+import mozilla.components.browser.menu.item.BrowserMenuImageSwitch
+import mozilla.components.browser.menu.item.BrowserMenuImageText
+import mozilla.components.browser.menu.item.BrowserMenuItemToolbar
+import mozilla.components.browser.menu.item.SimpleBrowserMenuItem
+import mozilla.components.browser.menu.item.WebExtensionPlaceholderMenuItem
+import mozilla.components.browser.state.selector.findCustomTab
+import mozilla.components.browser.state.state.CustomTabSessionState
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.feature.webcompat.reporter.WebCompatReporterFeature
+import org.mozilla.focus.R
+import org.mozilla.focus.menu.ToolbarMenu
+import org.mozilla.focus.theme.resolveAttribute
+
+class CustomTabMenu(
+ private val context: Context,
+ private val store: BrowserStore,
+ private val currentTabId: String,
+ private val onItemTapped: (ToolbarMenu.Item) -> Unit = {},
+) : ToolbarMenu {
+
+ private val selectedSession: CustomTabSessionState?
+ get() = store.state.findCustomTab(currentTabId)
+
+ override val menuBuilder by lazy {
+ WebExtensionBrowserMenuBuilder(
+ items = menuItems,
+ store = store,
+ )
+ }
+
+ override val menuToolbar by lazy {
+ val back = BrowserMenuItemToolbar.TwoStateButton(
+ primaryImageResource = R.drawable.mozac_ic_back_24,
+ primaryContentDescription = context.getString(R.string.content_description_back),
+ primaryImageTintResource = context.theme.resolveAttribute(R.attr.primaryText),
+ isInPrimaryState = {
+ selectedSession?.content?.canGoBack ?: false
+ },
+ secondaryImageTintResource = context.theme.resolveAttribute(R.attr.disabled),
+ disableInSecondaryState = true,
+ longClickListener = { onItemTapped.invoke(ToolbarMenu.CustomTabItem.Back) },
+ ) {
+ onItemTapped.invoke(ToolbarMenu.CustomTabItem.Back)
+ }
+
+ val forward = BrowserMenuItemToolbar.TwoStateButton(
+ primaryImageResource = R.drawable.mozac_ic_forward_24,
+ primaryContentDescription = context.getString(R.string.content_description_forward),
+ primaryImageTintResource = context.theme.resolveAttribute(R.attr.primaryText),
+ isInPrimaryState = {
+ selectedSession?.content?.canGoForward ?: true
+ },
+ secondaryImageTintResource = context.theme.resolveAttribute(R.attr.disabled),
+ disableInSecondaryState = true,
+ longClickListener = { onItemTapped.invoke(ToolbarMenu.CustomTabItem.Forward) },
+ ) {
+ onItemTapped.invoke(ToolbarMenu.CustomTabItem.Forward)
+ }
+
+ val refresh = BrowserMenuItemToolbar.TwoStateButton(
+ primaryImageResource = R.drawable.mozac_ic_arrow_clockwise_24,
+ primaryContentDescription = context.getString(R.string.content_description_reload),
+ primaryImageTintResource = context.theme.resolveAttribute(R.attr.primaryText),
+ isInPrimaryState = {
+ selectedSession?.content?.loading == false
+ },
+ secondaryImageResource = R.drawable.mozac_ic_stop,
+ secondaryContentDescription = context.getString(R.string.content_description_stop),
+ secondaryImageTintResource = context.theme.resolveAttribute(R.attr.primaryText),
+ disableInSecondaryState = false,
+ longClickListener = { onItemTapped.invoke(ToolbarMenu.CustomTabItem.Reload) },
+ ) {
+ if (selectedSession?.content?.loading == true) {
+ onItemTapped.invoke(ToolbarMenu.CustomTabItem.Stop)
+ } else {
+ onItemTapped.invoke(ToolbarMenu.CustomTabItem.Reload)
+ }
+ }
+ BrowserMenuItemToolbar(listOf(back, forward, refresh))
+ }
+
+ private val menuItems by lazy {
+ val findInPage = BrowserMenuImageText(
+ label = context.getString(R.string.find_in_page),
+ imageResource = R.drawable.mozac_ic_search_24,
+ ) {
+ onItemTapped.invoke(ToolbarMenu.CustomTabItem.FindInPage)
+ }
+
+ val desktopMode = BrowserMenuImageSwitch(
+ imageResource = R.drawable.mozac_ic_device_desktop_24,
+ label = context.getString(R.string.preference_performance_request_desktop_site2),
+ initialState = {
+ selectedSession?.content?.desktopMode ?: true
+ },
+ ) { checked ->
+ onItemTapped.invoke(ToolbarMenu.CustomTabItem.RequestDesktop(checked))
+ }
+
+ val reportSiteIssue = WebExtensionPlaceholderMenuItem(
+ id = WebCompatReporterFeature.WEBCOMPAT_REPORTER_EXTENSION_ID,
+ iconTintColorResource = context.theme.resolveAttribute(R.attr.primaryText),
+ )
+
+ val addToHomescreen = BrowserMenuImageText(
+ label = context.getString(R.string.menu_add_to_home_screen),
+ imageResource = R.drawable.mozac_ic_add_to_homescreen_24,
+ ) {
+ onItemTapped.invoke(ToolbarMenu.CustomTabItem.AddToHomeScreen)
+ }
+
+ val appName = context.getString(R.string.app_name)
+ val openInFocus = SimpleBrowserMenuItem(
+ label = context.getString(R.string.menu_open_with_default_browser2, appName),
+ ) {
+ onItemTapped.invoke(ToolbarMenu.CustomTabItem.OpenInBrowser)
+ }
+
+ val openInApp = SimpleBrowserMenuItem(
+ label = context.getString(R.string.menu_open_with_a_browser2),
+ ) {
+ onItemTapped.invoke(ToolbarMenu.CustomTabItem.OpenInApp)
+ }
+
+ val poweredBy = BrowserMenuCategory(
+ label = context.getString(R.string.menu_custom_tab_branding, context.getString(R.string.app_name)),
+ textSize = CAPTION_TEXT_SIZE,
+ textColorResource = context.theme.resolveAttribute(R.attr.secondaryText),
+ backgroundColorResource = context.theme.resolveAttribute(R.attr.colorPrimary),
+ textStyle = Typeface.NORMAL,
+ )
+
+ listOfNotNull(
+ menuToolbar,
+ BrowserMenuDivider(),
+ findInPage,
+ desktopMode,
+ reportSiteIssue,
+ BrowserMenuDivider(),
+ addToHomescreen,
+ openInFocus,
+ openInApp,
+ poweredBy,
+ )
+ }
+
+ companion object {
+ private const val CAPTION_TEXT_SIZE = 12f
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/browser/DefaultBrowserMenu.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/browser/DefaultBrowserMenu.kt
new file mode 100644
index 0000000000..f78f44ab7c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/browser/DefaultBrowserMenu.kt
@@ -0,0 +1,193 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.menu.browser
+
+import android.content.Context
+import androidx.annotation.VisibleForTesting
+import mozilla.components.browser.menu.WebExtensionBrowserMenuBuilder
+import mozilla.components.browser.menu.item.BrowserMenuDivider
+import mozilla.components.browser.menu.item.BrowserMenuImageSwitch
+import mozilla.components.browser.menu.item.BrowserMenuImageText
+import mozilla.components.browser.menu.item.BrowserMenuItemToolbar
+import mozilla.components.browser.menu.item.TwoStateBrowserMenuImageText
+import mozilla.components.browser.menu.item.WebExtensionPlaceholderMenuItem
+import mozilla.components.browser.state.selector.selectedTab
+import mozilla.components.browser.state.state.TabSessionState
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.feature.webcompat.reporter.WebCompatReporterFeature
+import org.mozilla.focus.R
+import org.mozilla.focus.menu.ToolbarMenu
+import org.mozilla.focus.state.AppStore
+import org.mozilla.focus.theme.resolveAttribute
+import org.mozilla.focus.topsites.DefaultTopSitesStorage.Companion.TOP_SITES_MAX_LIMIT
+
+/**
+ * The overflow menu shown in the BrowserFragment containing page actions like "Refresh", "Share" etc.
+ */
+class DefaultBrowserMenu(
+ private val context: Context,
+ private val appStore: AppStore,
+ private val store: BrowserStore,
+ private val isPinningSupported: Boolean,
+ private val onItemTapped: (ToolbarMenu.Item) -> Unit = {},
+) : ToolbarMenu {
+
+ private val selectedSession: TabSessionState?
+ get() = store.state.selectedTab
+
+ override val menuBuilder by lazy {
+ WebExtensionBrowserMenuBuilder(
+ items = mvpMenuItems,
+ store = store,
+ showAddonsInMenu = false,
+ )
+ }
+
+ override val menuToolbar by lazy {
+ val back = BrowserMenuItemToolbar.TwoStateButton(
+ primaryImageResource = R.drawable.mozac_ic_back_24,
+ primaryContentDescription = context.getString(R.string.content_description_back),
+ primaryImageTintResource = context.theme.resolveAttribute(R.attr.primaryText),
+ isInPrimaryState = {
+ selectedSession?.content?.canGoBack ?: true
+ },
+ secondaryImageTintResource = context.theme.resolveAttribute(R.attr.disabled),
+ disableInSecondaryState = true,
+ longClickListener = { onItemTapped.invoke(ToolbarMenu.Item.Back) },
+ ) {
+ onItemTapped.invoke(ToolbarMenu.Item.Back)
+ }
+
+ val forward = BrowserMenuItemToolbar.TwoStateButton(
+ primaryImageResource = R.drawable.mozac_ic_forward_24,
+ primaryContentDescription = context.getString(R.string.content_description_forward),
+ primaryImageTintResource = context.theme.resolveAttribute(R.attr.primaryText),
+ isInPrimaryState = {
+ selectedSession?.content?.canGoForward ?: true
+ },
+ secondaryImageTintResource = context.theme.resolveAttribute(R.attr.disabled),
+ disableInSecondaryState = true,
+ longClickListener = { onItemTapped.invoke(ToolbarMenu.Item.Forward) },
+ ) {
+ onItemTapped.invoke(ToolbarMenu.Item.Forward)
+ }
+
+ val refresh = BrowserMenuItemToolbar.TwoStateButton(
+ primaryImageResource = R.drawable.mozac_ic_arrow_clockwise_24,
+ primaryContentDescription = context.getString(R.string.content_description_reload),
+ primaryImageTintResource = context.theme.resolveAttribute(R.attr.primaryText),
+ isInPrimaryState = {
+ selectedSession?.content?.loading == false
+ },
+ secondaryImageResource = R.drawable.mozac_ic_stop,
+ secondaryContentDescription = context.getString(R.string.content_description_stop),
+ secondaryImageTintResource = context.theme.resolveAttribute(R.attr.primaryText),
+ disableInSecondaryState = false,
+ longClickListener = { onItemTapped.invoke(ToolbarMenu.Item.Reload) },
+ ) {
+ if (selectedSession?.content?.loading == true) {
+ onItemTapped.invoke(ToolbarMenu.Item.Stop)
+ } else {
+ onItemTapped.invoke(ToolbarMenu.Item.Reload)
+ }
+ }
+ val share = BrowserMenuItemToolbar.Button(
+ imageResource = R.drawable.mozac_ic_share_android_24,
+ contentDescription = context.getString(R.string.menu_share),
+ iconTintColorResource = context.theme.resolveAttribute(R.attr.primaryText),
+ listener = {
+ onItemTapped.invoke(ToolbarMenu.Item.Share)
+ },
+ )
+ BrowserMenuItemToolbar(listOf(back, forward, share, refresh))
+ }
+
+ private val mvpMenuItems by lazy {
+
+ val shortcuts = TwoStateBrowserMenuImageText(
+ primaryLabel = context.getString(R.string.menu_add_to_shortcuts),
+ primaryStateIconResource = R.drawable.mozac_ic_pin_24,
+ secondaryLabel = context.getString(R.string.menu_remove_from_shortcuts),
+ secondaryStateIconResource = R.drawable.mozac_ic_pin_slash_24,
+ isInPrimaryState = {
+ appStore.state.topSites.find { it.url == selectedSession?.content?.url } == null &&
+ selectedSession?.content?.url != null && appStore.state.topSites.size < TOP_SITES_MAX_LIMIT
+ },
+ isInSecondaryState = {
+ appStore.state.topSites.find { it.url == selectedSession?.content?.url } != null
+ },
+ primaryStateAction = { onItemTapped.invoke(ToolbarMenu.Item.AddToShortcuts) },
+ secondaryStateAction = { onItemTapped.invoke(ToolbarMenu.Item.RemoveFromShortcuts) },
+ )
+
+ val shortcutsDivider = BrowserMenuDivider().apply {
+ visible = shortcuts.visible
+ }
+
+ val findInPage = BrowserMenuImageText(
+ label = context.getString(R.string.find_in_page),
+ imageResource = R.drawable.mozac_ic_search_24,
+ ) {
+ onItemTapped.invoke(ToolbarMenu.Item.FindInPage)
+ }
+
+ val desktopMode = BrowserMenuImageSwitch(
+ imageResource = R.drawable.mozac_ic_device_desktop_24,
+ label = context.getString(R.string.preference_performance_request_desktop_site2),
+ initialState = {
+ selectedSession?.content?.desktopMode ?: false
+ },
+ ) { checked ->
+ onItemTapped.invoke(ToolbarMenu.Item.RequestDesktop(checked))
+ }
+
+ val reportSiteIssuePlaceholder = WebExtensionPlaceholderMenuItem(
+ id = WebCompatReporterFeature.WEBCOMPAT_REPORTER_EXTENSION_ID,
+ iconTintColorResource = context.theme.resolveAttribute(R.attr.primaryText),
+ )
+
+ @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+ fun canAddToHomescreen(): Boolean =
+ selectedSession != null && isPinningSupported
+
+ val addToHomescreen = BrowserMenuImageText(
+ label = context.getString(R.string.menu_add_to_home_screen),
+ imageResource = R.drawable.mozac_ic_add_to_homescreen_24,
+ ) {
+ onItemTapped.invoke(ToolbarMenu.Item.AddToHomeScreen)
+ }
+
+ val openInApp = BrowserMenuImageText(
+ label = context.getString(R.string.menu_open_with_a_browser2),
+ imageResource = R.drawable.mozac_ic_open_in,
+ textColorResource = context.theme.resolveAttribute(R.attr.primaryText),
+ ) {
+ onItemTapped.invoke(ToolbarMenu.Item.OpenInApp)
+ }
+
+ val settings = BrowserMenuImageText(
+ label = context.getString(R.string.menu_settings),
+ imageResource = R.drawable.mozac_ic_settings_24,
+ textColorResource = context.theme.resolveAttribute(R.attr.primaryText),
+ ) {
+ onItemTapped.invoke(ToolbarMenu.Item.Settings)
+ }
+
+ listOfNotNull(
+ menuToolbar,
+ BrowserMenuDivider(),
+ shortcuts,
+ shortcutsDivider,
+ findInPage,
+ desktopMode,
+ reportSiteIssuePlaceholder,
+ BrowserMenuDivider(),
+ addToHomescreen.apply { visible = ::canAddToHomescreen },
+ openInApp,
+ BrowserMenuDivider(),
+ settings,
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/home/HomeMenu.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/home/HomeMenu.kt
new file mode 100644
index 0000000000..dd343352b0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/home/HomeMenu.kt
@@ -0,0 +1,35 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.menu.home
+
+import android.content.Context
+import mozilla.components.browser.menu.BrowserMenuBuilder
+import mozilla.components.browser.menu.item.BrowserMenuImageText
+import org.mozilla.focus.R
+
+/**
+ * The overflow menu shown on the start/home screen.
+ */
+class HomeMenu(
+ private val context: Context,
+ private val onItemTapped: ((HomeMenuItem) -> Unit),
+) {
+ fun getMenuBuilder(): BrowserMenuBuilder {
+ val help = BrowserMenuImageText(
+ label = context.getString(R.string.menu_help),
+ imageResource = R.drawable.mozac_ic_help_circle_24,
+ ) {
+ onItemTapped.invoke(HomeMenuItem.Help)
+ }
+
+ val settings = BrowserMenuImageText(
+ label = context.getString(R.string.menu_settings),
+ imageResource = R.drawable.mozac_ic_settings_24,
+ ) {
+ onItemTapped.invoke(HomeMenuItem.Settings)
+ }
+ return BrowserMenuBuilder(items = listOf(help, settings))
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/home/HomeMenuItem.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/home/HomeMenuItem.kt
new file mode 100644
index 0000000000..7ab78d1770
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/menu/home/HomeMenuItem.kt
@@ -0,0 +1,10 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.menu.home
+
+sealed class HomeMenuItem {
+ object Help : HomeMenuItem()
+ object Settings : HomeMenuItem()
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/navigation/MainActivityNavigation.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/navigation/MainActivityNavigation.kt
new file mode 100644
index 0000000000..b2f50932a1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/navigation/MainActivityNavigation.kt
@@ -0,0 +1,315 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.navigation
+
+import android.os.Build
+import android.os.Bundle
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.MainActivity
+import org.mozilla.focus.autocomplete.AutocompleteAddFragment
+import org.mozilla.focus.autocomplete.AutocompleteListFragment
+import org.mozilla.focus.autocomplete.AutocompleteRemoveFragment
+import org.mozilla.focus.autocomplete.AutocompleteSettingsFragment
+import org.mozilla.focus.biometrics.BiometricAuthenticationFragment
+import org.mozilla.focus.cookiebanner.CookieBannerFragment
+import org.mozilla.focus.exceptions.ExceptionsListFragment
+import org.mozilla.focus.exceptions.ExceptionsRemoveFragment
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.fragment.BrowserFragment
+import org.mozilla.focus.fragment.FirstrunFragment
+import org.mozilla.focus.fragment.UrlInputFragment
+import org.mozilla.focus.fragment.about.AboutFragment
+import org.mozilla.focus.fragment.onboarding.OnboardingFirstFragment
+import org.mozilla.focus.fragment.onboarding.OnboardingSecondFragment
+import org.mozilla.focus.fragment.onboarding.OnboardingStep
+import org.mozilla.focus.fragment.onboarding.OnboardingStorage
+import org.mozilla.focus.locale.screen.LanguageFragment
+import org.mozilla.focus.nimbus.FocusNimbus
+import org.mozilla.focus.nimbus.Onboarding
+import org.mozilla.focus.searchwidget.SearchWidgetUtils
+import org.mozilla.focus.settings.AboutLibrariesFragment
+import org.mozilla.focus.settings.GeneralSettingsFragment
+import org.mozilla.focus.settings.InstalledSearchEnginesSettingsFragment
+import org.mozilla.focus.settings.ManualAddSearchEngineSettingsFragment
+import org.mozilla.focus.settings.MozillaSettingsFragment
+import org.mozilla.focus.settings.RemoveSearchEnginesSettingsFragment
+import org.mozilla.focus.settings.SearchSettingsFragment
+import org.mozilla.focus.settings.SettingsFragment
+import org.mozilla.focus.settings.advanced.AdvancedSettingsFragment
+import org.mozilla.focus.settings.advanced.SecretSettingsFragment
+import org.mozilla.focus.settings.permissions.SitePermissionsFragment
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermission
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermissionOptionsFragment
+import org.mozilla.focus.settings.privacy.PrivacySecuritySettingsFragment
+import org.mozilla.focus.settings.privacy.studies.StudiesFragment
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+import org.mozilla.focus.utils.ViewUtils
+import kotlin.collections.forEach as withEach
+
+/**
+ * Class performing the actual navigation in [MainActivity] by performing fragment transactions if
+ * needed.
+ */
+@Suppress("TooManyFunctions")
+class MainActivityNavigation(
+ private val activity: MainActivity,
+) {
+ /**
+ * Home screen.
+ */
+ fun home() {
+ val fragmentManager = activity.supportFragmentManager
+ val browserFragment = fragmentManager.findFragmentByTag(BrowserFragment.FRAGMENT_TAG) as BrowserFragment?
+
+ val isShowingBrowser = browserFragment != null
+ val crashReporterIsVisible = browserFragment?.crashReporterIsVisible() ?: false
+
+ if (isShowingBrowser && !crashReporterIsVisible) {
+ showPromoteSearchWidgetDialogOrBrandedSnackbar()
+ }
+
+ // We add the url input fragment to the layout if it doesn't exist yet.
+ val transaction = fragmentManager
+ .beginTransaction()
+
+ // We only want to play the animation if a browser fragment is added and resumed.
+ // If it is not resumed then the application is currently in the process of resuming
+ // and the session was removed while the app was in the background (e.g. via the
+ // notification). In this case we do not want to show the content and remove the
+ // browser fragment immediately.
+ val shouldAnimate = isShowingBrowser && browserFragment!!.isResumed
+
+ if (shouldAnimate) {
+ transaction.setCustomAnimations(0, R.anim.erase_animation)
+ }
+
+ showStartBrowsingCfr()
+ // Currently this callback can get invoked while the app is in the background. Therefore we are using
+ // commitAllowingStateLoss() here because we can't do a fragment transaction while the app is in the
+ // background - like we already do in showBrowserScreenForCurrentSession().
+ // Ideally we'd make it possible to pause observers while the app is in the background:
+ // https://github.com/mozilla-mobile/android-components/issues/876
+ transaction
+ .replace(
+ R.id.container,
+ UrlInputFragment.createWithoutSession(),
+ UrlInputFragment.FRAGMENT_TAG,
+ )
+ .commitAllowingStateLoss()
+ }
+
+ private fun showStartBrowsingCfr() {
+ val onboardingConfig = FocusNimbus.features.onboarding.value()
+ if (
+ onboardingConfig.isCfrEnabled &&
+ !activity.settings.isFirstRun &&
+ activity.settings.shouldShowStartBrowsingCfr
+ ) {
+ FocusNimbus.features.onboarding.recordExposure()
+ activity.components.appStore.dispatch(AppAction.ShowStartBrowsingCfrChange(true))
+ }
+ }
+
+ /**
+ * Display the widget promo at first data clearing action and if it wasn't added after 5th Focus session
+ * or display branded snackbar when widget promo is not shown.
+ */
+ @Suppress("MagicNumber")
+ private fun showPromoteSearchWidgetDialogOrBrandedSnackbar() {
+ val onboardingFeature = FocusNimbus.features.onboarding
+ val onboardingConfig = onboardingFeature.value()
+
+ val clearBrowsingSessions = activity.components.settings.getClearBrowsingSessions()
+ activity.components.settings.addClearBrowsingSessions(1)
+
+ if (shouldShowPromoteSearchWidgetDialog(onboardingConfig) &&
+ (
+ clearBrowsingSessions == 0 || clearBrowsingSessions == 4
+ )
+ ) {
+ onboardingFeature.recordExposure()
+ SearchWidgetUtils.showPromoteSearchWidgetDialog(activity)
+ } else {
+ ViewUtils.showBrandedSnackbar(
+ activity.findViewById(android.R.id.content),
+ R.string.feedback_erase2,
+ activity.resources.getInteger(R.integer.erase_snackbar_delay),
+ )
+ }
+ }
+
+ private fun shouldShowPromoteSearchWidgetDialog(onboadingConfig: Onboarding): Boolean {
+ return (
+ onboadingConfig.isPromoteSearchWidgetDialogEnabled &&
+ !activity.components.settings.searchWidgetInstalled
+ )
+ }
+
+ /**
+ * Show browser for tab with the given [tabId].
+ */
+ fun browser(tabId: String) {
+ val fragmentManager = activity.supportFragmentManager
+
+ val urlInputFragment = fragmentManager.findFragmentByTag(UrlInputFragment.FRAGMENT_TAG) as UrlInputFragment?
+ if (urlInputFragment != null) {
+ fragmentManager
+ .beginTransaction()
+ .remove(urlInputFragment)
+ .commitAllowingStateLoss()
+ }
+
+ val browserFragment = fragmentManager.findFragmentByTag(BrowserFragment.FRAGMENT_TAG) as BrowserFragment?
+ if (browserFragment == null || browserFragment.tab.id != tabId) {
+ fragmentManager
+ .beginTransaction()
+ .replace(R.id.container, BrowserFragment.createForTab(tabId), BrowserFragment.FRAGMENT_TAG)
+ .commitAllowingStateLoss()
+ }
+ }
+
+ /**
+ * Edit URL of tab with the given [tabId].
+ */
+ fun edit(
+ tabId: String,
+ ) {
+ val fragmentManager = activity.supportFragmentManager
+
+ val urlInputFragment = fragmentManager.findFragmentByTag(UrlInputFragment.FRAGMENT_TAG) as UrlInputFragment?
+ if (urlInputFragment != null && urlInputFragment.tab?.id == tabId) {
+ // There's already an UrlInputFragment for this tab.
+ return
+ }
+
+ val urlFragment = UrlInputFragment.createWithTab(tabId)
+
+ fragmentManager
+ .beginTransaction()
+ .add(R.id.container, urlFragment, UrlInputFragment.FRAGMENT_TAG)
+ .commit()
+ }
+
+ /**
+ * Show first run onBoarding.
+ */
+ fun firstRun() {
+ val onboardingFragment = if (activity.settings.isNewOnboardingEnable) {
+ FocusNimbus.features.onboarding.recordExposure()
+ val onBoardingStorage = OnboardingStorage(activity)
+ when (onBoardingStorage.getCurrentOnboardingStep()) {
+ OnboardingStep.ON_BOARDING_FIRST_SCREEN -> {
+ OnboardingFirstFragment()
+ }
+ OnboardingStep.ON_BOARDING_SECOND_SCREEN -> {
+ OnboardingSecondFragment()
+ }
+ }
+ } else {
+ FirstrunFragment.create()
+ }
+
+ activity.supportFragmentManager
+ .beginTransaction()
+ .replace(R.id.container, onboardingFragment, onboardingFragment::class.java.simpleName)
+ .commit()
+ }
+
+ fun showOnBoardingSecondScreen() {
+ activity.supportFragmentManager
+ .beginTransaction()
+ .replace(R.id.container, OnboardingSecondFragment(), OnboardingSecondFragment::class.java.simpleName)
+ .commit()
+ }
+
+ /**
+ * Lock app.
+ *
+ * @param bundle it is used for app navigation. If the user can unlock with success he should
+ * be redirected to a certain screen. It comes from the external intent.
+ */
+ fun lock(bundle: Bundle? = null) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
+ throw IllegalStateException("Trying to lock unsupported device")
+ }
+
+ val fragmentManager = activity.supportFragmentManager
+ if (fragmentManager.findFragmentByTag(BiometricAuthenticationFragment.FRAGMENT_TAG) != null) {
+ return
+ }
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && activity.isInPictureInPictureMode) {
+ return
+ }
+
+ val transaction = fragmentManager
+ .beginTransaction()
+
+ fragmentManager.fragments.withEach { fragment ->
+ transaction.remove(fragment)
+ }
+
+ fragmentManager
+ .beginTransaction()
+ .replace(
+ R.id.container,
+ BiometricAuthenticationFragment.createWithDestinationData(bundle),
+ BiometricAuthenticationFragment.FRAGMENT_TAG,
+ )
+ .commit()
+ }
+
+ @Suppress("ComplexMethod")
+ fun settings(page: Screen.Settings.Page) {
+ val fragment = when (page) {
+ Screen.Settings.Page.Start -> SettingsFragment()
+ Screen.Settings.Page.General -> GeneralSettingsFragment()
+ Screen.Settings.Page.Privacy -> PrivacySecuritySettingsFragment()
+ Screen.Settings.Page.Search -> SearchSettingsFragment()
+ Screen.Settings.Page.Advanced -> AdvancedSettingsFragment()
+ Screen.Settings.Page.Mozilla -> MozillaSettingsFragment()
+ Screen.Settings.Page.PrivacyExceptions -> ExceptionsListFragment()
+ Screen.Settings.Page.PrivacyExceptionsRemove -> ExceptionsRemoveFragment()
+ Screen.Settings.Page.SitePermissions -> SitePermissionsFragment()
+ Screen.Settings.Page.Studies -> StudiesFragment()
+ Screen.Settings.Page.SecretSettings -> SecretSettingsFragment()
+ Screen.Settings.Page.SearchList -> InstalledSearchEnginesSettingsFragment()
+ Screen.Settings.Page.SearchRemove -> RemoveSearchEnginesSettingsFragment()
+ Screen.Settings.Page.SearchAdd -> ManualAddSearchEngineSettingsFragment()
+ Screen.Settings.Page.SearchAutocomplete -> AutocompleteSettingsFragment()
+ Screen.Settings.Page.SearchAutocompleteList -> AutocompleteListFragment()
+ Screen.Settings.Page.SearchAutocompleteAdd -> AutocompleteAddFragment()
+ Screen.Settings.Page.SearchAutocompleteRemove -> AutocompleteRemoveFragment()
+ Screen.Settings.Page.About -> AboutFragment()
+ Screen.Settings.Page.Licenses -> AboutLibrariesFragment()
+ Screen.Settings.Page.Locale -> LanguageFragment()
+ Screen.Settings.Page.CookieBanner -> CookieBannerFragment()
+ }
+
+ val tag = "settings_" + fragment::class.java.simpleName
+
+ val fragmentManager = activity.supportFragmentManager
+ if (fragmentManager.findFragmentByTag(tag) != null) {
+ return
+ }
+
+ fragmentManager.beginTransaction()
+ .replace(R.id.container, fragment, tag)
+ .commit()
+ }
+
+ fun sitePermissionOptionsFragment(sitePermission: SitePermission) {
+ val fragmentManager = activity.supportFragmentManager
+ fragmentManager.beginTransaction()
+ .replace(
+ R.id.container,
+ SitePermissionOptionsFragment.addSitePermission(sitePermission = sitePermission),
+ SitePermissionOptionsFragment.FRAGMENT_TAG,
+ )
+ .commit()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/navigation/Navigator.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/navigation/Navigator.kt
new file mode 100644
index 0000000000..146ec6e88c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/navigation/Navigator.kt
@@ -0,0 +1,56 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.navigation
+
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.cancel
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.distinctUntilChangedBy
+import kotlinx.coroutines.flow.map
+import mozilla.components.lib.state.ext.flowScoped
+import mozilla.components.support.base.feature.LifecycleAwareFeature
+import org.mozilla.focus.state.AppState
+import org.mozilla.focus.state.AppStore
+import org.mozilla.focus.state.Screen
+
+/**
+ * The [Navigator] subscribes to the [AppStore] and initiates a navigation with the help of the
+ * provided [MainActivityNavigation] if the [Screen] in the [AppState] changes.
+ */
+class Navigator(
+ val store: AppStore,
+ val navigation: MainActivityNavigation,
+) : LifecycleAwareFeature {
+ private var scope: CoroutineScope? = null
+
+ override fun start() {
+ scope = store.flowScoped { flow -> subscribe(flow) }
+ }
+
+ override fun stop() {
+ scope?.cancel()
+ }
+
+ private suspend fun subscribe(flow: Flow<AppState>) {
+ flow.map { state -> state.screen }
+ .distinctUntilChangedBy { screen -> screen.id }
+ .collect { screen -> navigateTo(screen) }
+ }
+
+ private fun navigateTo(screen: Screen) {
+ when (screen) {
+ is Screen.Home -> navigation.home()
+ is Screen.Browser -> navigation.browser(screen.tabId)
+ is Screen.EditUrl -> navigation.edit(
+ screen.tabId,
+ )
+ is Screen.FirstRun -> navigation.firstRun()
+ is Screen.Locked -> navigation.lock(screen.bundle)
+ is Screen.Settings -> navigation.settings(screen.page)
+ is Screen.SitePermissionOptionsScreen -> navigation.sitePermissionOptionsFragment(screen.sitePermission)
+ is Screen.OnboardingSecondScreen -> navigation.showOnBoardingSecondScreen()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/navigation/StoreLink.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/navigation/StoreLink.kt
new file mode 100644
index 0000000000..db93070c6e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/navigation/StoreLink.kt
@@ -0,0 +1,50 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.navigation
+
+import kotlinx.coroutines.MainScope
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.filter
+import kotlinx.coroutines.flow.filterNotNull
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.launch
+import mozilla.components.browser.state.selector.privateTabs
+import mozilla.components.browser.state.state.BrowserState
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.lib.state.ext.flow
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.AppStore
+
+/**
+ * Helper for subscribing to the [BrowserStore] and updating the [AppStore] for certain state changes.
+ */
+class StoreLink(
+ private val appStore: AppStore,
+ private val browserStore: BrowserStore,
+) {
+ fun start() {
+ MainScope().also { scope ->
+ scope.launch { observeSelectionChanges(browserStore.flow()) }
+ scope.launch { observeTabsClosed(browserStore.flow()) }
+ }
+ }
+
+ private suspend fun observeSelectionChanges(flow: Flow<BrowserState>) {
+ flow.map { state -> state.selectedTabId }
+ .distinctUntilChanged()
+ .filterNotNull()
+ .collect { tabId -> appStore.dispatch(AppAction.SelectionChanged(tabId)) }
+ }
+
+ private suspend fun observeTabsClosed(flow: Flow<BrowserState>) {
+ flow.map { state -> state.privateTabs.isEmpty() }
+ .distinctUntilChanged()
+ .filter { isEmpty -> isEmpty }
+ .collect {
+ appStore.dispatch(AppAction.NoTabs)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/AppAdapter.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/AppAdapter.kt
new file mode 100644
index 0000000000..670982cac6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/AppAdapter.kt
@@ -0,0 +1,114 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.open
+
+import android.content.Context
+import android.content.pm.ActivityInfo
+import android.graphics.drawable.Drawable
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+
+/**
+ * An adapter for displaying app items in the [OpenWithFragment] dialog.
+ * This will display browser apps and an item that can be used for installing Firefox,
+ * if it is not already installed on the device.
+ *
+ * @param infoArray List of browser apps.
+ * @param store Store app for installing Firefox.
+ */
+class AppAdapter(context: Context, infoArray: Array<ActivityInfo>, store: ActivityInfo?) :
+ RecyclerView.Adapter<RecyclerView.ViewHolder>() {
+ /**
+ * Class for an app installed on the device.
+ */
+ class App(private val context: Context, private val info: ActivityInfo) {
+ val label: String = info.loadLabel(context.packageManager).toString()
+
+ /**
+ * Retrieve the current graphical icon associated with the app.
+ */
+ fun loadIcon(): Drawable {
+ return info.loadIcon(context.packageManager)
+ }
+
+ val packageName: String
+ get() = info.packageName
+ val activityName: String
+ get() = info.name
+ }
+
+ /**
+ * Interface for setting a listener for an [App] item.
+ */
+ interface OnAppSelectedListener {
+ /**
+ * Action to be performed on an item from [AppAdapter] list being clicked.
+ */
+ fun onAppSelected(app: App)
+ }
+
+ private val apps: List<App>
+ private val store: App?
+ private var listener: OnAppSelectedListener? = null
+
+ init {
+ this.apps = infoArray.map { App(context, it) }
+ .sortedWith { app1, app2 -> app1.label.compareTo(app2.label) }
+ this.store = if (store != null) App(context, store) else null
+ }
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
+ val inflater = LayoutInflater.from(parent.context)
+ if (viewType == AppViewHolder.LAYOUT_ID) {
+ return AppViewHolder(
+ inflater.inflate(AppViewHolder.LAYOUT_ID, parent, false),
+ )
+ } else if (viewType == InstallBannerViewHolder.LAYOUT_ID) {
+ return InstallBannerViewHolder(
+ inflater.inflate(InstallBannerViewHolder.LAYOUT_ID, parent, false),
+ )
+ }
+ throw IllegalStateException("Unknown view type: $viewType")
+ }
+
+ /**
+ * Sets the listener for the [AppAdapter].
+ */
+ fun setOnAppSelectedListener(listener: OnAppSelectedListener?) {
+ this.listener = listener
+ }
+
+ override fun getItemViewType(position: Int): Int {
+ return if (position < apps.size) {
+ AppViewHolder.LAYOUT_ID
+ } else {
+ InstallBannerViewHolder.LAYOUT_ID
+ }
+ }
+
+ override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
+ val itemViewType = holder.itemViewType
+ if (itemViewType == AppViewHolder.LAYOUT_ID) {
+ bindApp(holder, position)
+ } else if (itemViewType == InstallBannerViewHolder.LAYOUT_ID) {
+ bindInstallBanner(holder)
+ }
+ }
+
+ private fun bindApp(holder: RecyclerView.ViewHolder, position: Int) {
+ val appViewHolder = holder as AppViewHolder
+ val app = apps[position]
+ appViewHolder.bind(app, listener)
+ }
+
+ private fun bindInstallBanner(holder: RecyclerView.ViewHolder) {
+ val installViewHolder = holder as InstallBannerViewHolder
+ store?.let { installViewHolder.bind(it) }
+ }
+
+ override fun getItemCount(): Int {
+ return apps.size + if (store != null) 1 else 0
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/AppViewHolder.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/AppViewHolder.kt
new file mode 100644
index 0000000000..23d6d3d70f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/AppViewHolder.kt
@@ -0,0 +1,45 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.open
+
+import android.view.View
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import org.mozilla.focus.R
+import org.mozilla.focus.open.AppAdapter.OnAppSelectedListener
+
+/**
+ * View holder for an app item in the [OpenWithFragment] list.
+ */
+class AppViewHolder internal constructor(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ private val titleView: TextView
+ private val iconView: ImageView
+
+ /* package */
+ init {
+ titleView = itemView.findViewById(R.id.title)
+ iconView = itemView.findViewById(R.id.icon)
+ }
+
+ /**
+ * Binds the [AppViewHolder] item.
+ */
+ fun bind(app: AppAdapter.App, listener: OnAppSelectedListener?) {
+ titleView.text = app.label
+ iconView.setImageDrawable(app.loadIcon())
+ itemView.setOnClickListener(createListenerWrapper(app, listener))
+ }
+
+ private fun createListenerWrapper(
+ app: AppAdapter.App,
+ listener: OnAppSelectedListener?,
+ ): View.OnClickListener {
+ return View.OnClickListener { listener?.onAppSelected(app) }
+ }
+
+ companion object {
+ const val LAYOUT_ID = R.layout.item_app
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/InstallBannerViewHolder.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/InstallBannerViewHolder.kt
new file mode 100644
index 0000000000..2acf7ff35d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/InstallBannerViewHolder.kt
@@ -0,0 +1,39 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.open
+
+import android.view.View
+import android.widget.ImageView
+import androidx.recyclerview.widget.RecyclerView
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.InstallFirefoxActivity.Companion.open
+
+/**
+ * View holder for install Firefox item in the [OpenWithFragment] list.
+ */
+class InstallBannerViewHolder(
+ itemView: View,
+) : RecyclerView.ViewHolder(itemView), View.OnClickListener {
+ private val iconView: ImageView
+
+ init {
+ iconView = itemView.findViewById(R.id.icon)
+ itemView.setOnClickListener(this)
+ }
+
+ /**
+ * Binds the [InstallBannerViewHolder] item.
+ */
+ fun bind(store: AppAdapter.App) {
+ iconView.setImageDrawable(store.loadIcon())
+ }
+
+ override fun onClick(view: View) {
+ open(view.context)
+ }
+
+ companion object {
+ const val LAYOUT_ID = R.layout.item_install_banner
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/OpenWithFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/OpenWithFragment.kt
new file mode 100644
index 0000000000..91789fa17d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/open/OpenWithFragment.kt
@@ -0,0 +1,145 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.open
+
+import android.annotation.SuppressLint
+import android.app.Dialog
+import android.content.Context
+import android.content.Intent
+import android.content.pm.ActivityInfo
+import android.net.Uri
+import android.os.Bundle
+import android.view.ContextThemeWrapper
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.annotation.LayoutRes
+import androidx.appcompat.app.AppCompatDialogFragment
+import androidx.fragment.app.commit
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.google.android.material.bottomsheet.BottomSheetBehavior
+import com.google.android.material.bottomsheet.BottomSheetDialog
+import mozilla.components.support.utils.ext.getParcelableArrayCompat
+import mozilla.components.support.utils.ext.getParcelableCompat
+import org.mozilla.focus.GleanMetrics.OpenWith.ListItemTappedExtra
+import org.mozilla.focus.GleanMetrics.OpenWith.listItemTapped
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.isTablet
+import org.mozilla.focus.open.AppAdapter.OnAppSelectedListener
+
+/**
+ * [AppCompatDialogFragment] used to display open in app options.
+ */
+class OpenWithFragment : AppCompatDialogFragment(), OnAppSelectedListener {
+ override fun onPause() {
+ requireActivity().supportFragmentManager.commit(allowStateLoss = true) {
+ remove(this@OpenWithFragment)
+ }
+ super.onPause()
+ }
+
+ override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+ val wrapper = ContextThemeWrapper(context, android.R.style.Theme_Material_Light)
+
+ @SuppressLint("InflateParams") // This View will have it's params ignored anyway:
+ val view = LayoutInflater.from(wrapper).inflate(R.layout.fragment_open_with, null)
+ val dialog: Dialog = CustomWidthBottomSheetDialog(wrapper)
+ dialog.setContentView(view)
+ val appList = view.findViewById<RecyclerView>(R.id.apps)
+ appList.layoutManager = LinearLayoutManager(
+ wrapper,
+ RecyclerView.VERTICAL,
+ false,
+ )
+ val adapter = requireArguments().getParcelableArrayCompat(ARGUMENT_KEY_APPS, ActivityInfo::class.java)
+ ?.let { infoArray ->
+ AppAdapter(
+ wrapper,
+ infoArray,
+ requireArguments().getParcelableCompat(ARGUMENT_STORE, ActivityInfo::class.java),
+ )
+ }
+
+ adapter?.setOnAppSelectedListener(this)
+ appList.adapter = adapter
+ return dialog
+ }
+
+ internal class CustomWidthBottomSheetDialog(context: Context) : BottomSheetDialog(context) {
+ private var contentView: View? = null
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ // The support library makes the bottomsheet full width on all devices (and then uses a 16:9
+ // keyline). On tablets, the system bottom sheets use a narrower width - lets do that too:
+ if (context.isTablet()) {
+ val width =
+ context.resources.getDimensionPixelSize(R.dimen.tablet_bottom_sheet_width)
+ val window = window
+ window?.setLayout(width, ViewGroup.LayoutParams.MATCH_PARENT)
+ }
+ }
+
+ override fun setContentView(view: View) {
+ super.setContentView(view)
+ contentView = view
+ }
+
+ override fun setContentView(@LayoutRes layoutResID: Int) {
+ throw IllegalStateException("CustomWidthBottomSheetDialog only supports setContentView(View)")
+ }
+
+ override fun setContentView(view: View, params: ViewGroup.LayoutParams?) {
+ throw IllegalStateException("CustomWidthBottomSheetDialog only supports setContentView(View)")
+ }
+
+ override fun show() {
+ if (context.isTablet()) {
+ val peekHeight =
+ context.resources.getDimensionPixelSize(R.dimen.tablet_bottom_sheet_peekheight)
+ val bsBehaviour = BottomSheetBehavior.from(
+ contentView!!.parent as View,
+ )
+ bsBehaviour.peekHeight = peekHeight
+ }
+ super.show()
+ }
+ }
+
+ override fun onAppSelected(app: AppAdapter.App) {
+ val intent = Intent(Intent.ACTION_VIEW, Uri.parse(requireArguments().getString(ARGUMENT_URL)))
+ intent.setClassName(app.packageName, app.activityName)
+ startActivity(intent)
+
+ listItemTapped.record(ListItemTappedExtra(app.packageName.contains("mozilla")))
+
+ dismiss()
+ }
+
+ companion object {
+ const val FRAGMENT_TAG = "open_with"
+ private const val ARGUMENT_KEY_APPS = "apps"
+ private const val ARGUMENT_URL = "url"
+ private const val ARGUMENT_STORE = "store"
+
+ /**
+ * Creates a new instance of [AppCompatDialogFragment].
+ */
+ fun newInstance(
+ apps: Array<ActivityInfo?>?,
+ url: String?,
+ store: ActivityInfo?,
+ ): OpenWithFragment {
+ val arguments = Bundle()
+ arguments.putParcelableArray(ARGUMENT_KEY_APPS, apps)
+ arguments.putString(ARGUMENT_URL, url)
+ arguments.putParcelable(ARGUMENT_STORE, store)
+ val fragment = OpenWithFragment()
+ fragment.arguments = arguments
+ return fragment
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/perf/Performance.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/perf/Performance.kt
new file mode 100644
index 0000000000..da1d8a2500
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/perf/Performance.kt
@@ -0,0 +1,52 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.perf
+
+import android.content.Context
+import android.content.Intent
+import android.content.IntentFilter
+import android.os.BatteryManager
+import android.os.Bundle
+import android.provider.Settings as AndroidSettings
+
+/**
+ * A collection of objects related to app performance.
+ */
+object Performance {
+
+ private const val EXTRA_IS_PERFORMANCE_TEST = "performancetest"
+
+ fun processIntentIfPerformanceTest(bundle: Bundle?, context: Context) = isPerformanceTest(bundle, context)
+
+ /**
+ * This checks for the charging state and ADB debugging in case another application tries to
+ * leverage this intent to trigger a code path for Firefox that shouldn't be used unless
+ * it is for testing visual metrics. These checks aren't foolproof but most of our users won't
+ * have ADB on and charging at the same time when running Firefox.
+ */
+ private fun isPerformanceTest(bundle: Bundle?, context: Context): Boolean {
+ if (bundle == null || !bundle.getBoolean(EXTRA_IS_PERFORMANCE_TEST, false)) {
+ return false
+ }
+
+ val batteryStatus = context.registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED))
+ batteryStatus?.let {
+ // We only run perf tests when the device is connected to USB. However, AC may be reported
+ // instead if the device is connected through a USB hub so we check both states.
+ val extraPlugged = it.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1)
+ val isPhonePlugged = extraPlugged == BatteryManager.BATTERY_PLUGGED_USB ||
+ extraPlugged == BatteryManager.BATTERY_PLUGGED_AC
+
+ val isAdbEnabled = AndroidSettings.Global.getInt(
+ context.contentResolver,
+ AndroidSettings.Global.ADB_ENABLED,
+ 0,
+ ) == 1
+
+ return isPhonePlugged && isAdbEnabled
+ }
+ return false
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/ManualAddSearchEnginePreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/ManualAddSearchEnginePreference.kt
new file mode 100644
index 0000000000..77ee37eaf4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/ManualAddSearchEnginePreference.kt
@@ -0,0 +1,126 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.search
+
+import android.content.Context
+import android.os.Bundle
+import android.os.Parcelable
+import android.text.TextUtils
+import android.util.AttributeSet
+import android.widget.EditText
+import android.widget.ProgressBar
+import androidx.core.os.bundleOf
+import androidx.core.view.isVisible
+import androidx.core.widget.doOnTextChanged
+import androidx.preference.Preference
+import androidx.preference.PreferenceViewHolder
+import com.google.android.material.textfield.TextInputLayout
+import mozilla.components.browser.state.search.SearchEngine
+import mozilla.components.support.ktx.util.URLStringUtils
+import mozilla.components.support.utils.ext.getParcelableCompat
+import org.mozilla.focus.R
+import org.mozilla.focus.utils.ViewUtils
+
+class ManualAddSearchEnginePreference(context: Context, attrs: AttributeSet) :
+ Preference(context, attrs) {
+ private var engineNameEditText: EditText? = null
+ private var searchQueryEditText: EditText? = null
+ private var engineNameErrorLayout: TextInputLayout? = null
+ private var searchQueryErrorLayout: TextInputLayout? = null
+
+ private var progressView: ProgressBar? = null
+
+ private var savedSearchEngineName: String? = null
+ private var savedSearchQuery: String? = null
+
+ override fun onBindViewHolder(holder: PreferenceViewHolder) {
+ super.onBindViewHolder(holder)
+
+ engineNameErrorLayout =
+ holder.findViewById(R.id.edit_engine_name_layout) as TextInputLayout
+ searchQueryErrorLayout =
+ holder.findViewById(R.id.edit_search_string_layout) as TextInputLayout
+
+ engineNameEditText = holder.findViewById(R.id.edit_engine_name) as EditText
+
+ engineNameEditText?.doOnTextChanged { _, _, _, _ ->
+ engineNameErrorLayout?.error = null
+ }
+
+ searchQueryEditText = holder.findViewById(R.id.edit_search_string) as EditText
+
+ searchQueryEditText?.doOnTextChanged { _, _, _, _ ->
+ searchQueryErrorLayout?.error = null
+ }
+
+ progressView = holder.findViewById(R.id.progress) as ProgressBar
+
+ updateState()
+
+ ViewUtils.showKeyboard(engineNameEditText)
+ }
+
+ override fun onRestoreInstanceState(state: Parcelable?) {
+ val bundle = state as Bundle
+ super.onRestoreInstanceState(bundle.getParcelableCompat(SUPER_STATE_KEY, Parcelable::class.java))
+ savedSearchEngineName = bundle.getString(SEARCH_ENGINE_NAME_KEY)
+ savedSearchQuery = bundle.getString(SEARCH_QUERY_KEY)
+ }
+
+ override fun onSaveInstanceState(): Parcelable {
+ val state = super.onSaveInstanceState()
+
+ return bundleOf(
+ SUPER_STATE_KEY to state,
+ SEARCH_ENGINE_NAME_KEY to engineNameEditText?.text.toString(),
+ SEARCH_QUERY_KEY to searchQueryEditText?.text.toString(),
+ )
+ }
+
+ fun validateEngineNameAndShowError(engineName: String, existingEngines: List<SearchEngine>): Boolean {
+ val errorMessage = when {
+ TextUtils.isEmpty(engineName) ->
+ context.getString(R.string.search_add_error_empty_name)
+
+ existingEngines.any { it.name.equals(engineName, ignoreCase = true) } ->
+ context.getString(R.string.search_add_error_duplicate_name)
+
+ else -> null
+ }
+
+ engineNameErrorLayout?.error = errorMessage
+ return errorMessage == null
+ }
+
+ fun validateSearchQueryAndShowError(searchQuery: String): Boolean {
+ val errorMessage = when {
+ TextUtils.isEmpty(searchQuery) -> context.getString(R.string.search_add_error_empty_search)
+ !URLStringUtils.isValidSearchQueryUrl(searchQuery) -> context.getString(R.string.search_add_error_format)
+ else -> null
+ }
+
+ searchQueryErrorLayout?.error = errorMessage
+ return errorMessage == null
+ }
+
+ fun setSearchQueryErrorText(err: String) {
+ searchQueryErrorLayout?.error = err
+ }
+
+ fun setProgressViewShown(isShown: Boolean) {
+ progressView?.isVisible = isShown
+ }
+
+ private fun updateState() {
+ if (engineNameEditText != null) engineNameEditText?.setText(savedSearchEngineName)
+ if (searchQueryEditText != null) searchQueryEditText?.setText(savedSearchQuery)
+ }
+
+ companion object {
+ private val SUPER_STATE_KEY = "super-state"
+ private val SEARCH_ENGINE_NAME_KEY = "search-engine-name"
+ private val SEARCH_QUERY_KEY = "search-query"
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/MultiselectSearchEngineListPreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/MultiselectSearchEngineListPreference.kt
new file mode 100644
index 0000000000..671d3c9463
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/MultiselectSearchEngineListPreference.kt
@@ -0,0 +1,66 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.search
+
+import android.content.Context
+import android.util.AttributeSet
+import android.widget.CompoundButton
+import androidx.preference.PreferenceViewHolder
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.tryAsActivity
+
+class MultiselectSearchEngineListPreference(context: Context, attrs: AttributeSet) :
+ SearchEngineListPreference(context, attrs) {
+
+ override val itemResId: Int
+ get() = R.layout.search_engine_checkbox_button
+
+ val checkedEngineIds: Set<String>
+ get() {
+ val engineIdSet = HashSet<String>()
+
+ for (i in 0 until searchEngineGroup!!.childCount) {
+ val engineButton = searchEngineGroup!!.getChildAt(i) as CompoundButton
+ if (engineButton.isChecked) {
+ engineIdSet.add(engineButton.tag as String)
+ }
+ }
+ return engineIdSet
+ }
+
+ override fun onBindViewHolder(holder: PreferenceViewHolder) {
+ super.onBindViewHolder(holder)
+ bindEngineCheckboxesToMenu()
+ }
+
+ override fun updateDefaultItem(defaultButton: CompoundButton) {
+ defaultButton.isClickable = false
+ // Showing the default engine as disabled requires a StateListDrawable, but since there
+ // is no state_clickable and state_enabled seems to require a default drawable state,
+ // use state_activated instead to designate the default search engine.
+ defaultButton.isActivated = true
+ }
+
+ // Whenever an engine is checked or unchecked, we notify the menu
+ private fun bindEngineCheckboxesToMenu() {
+ for (i in 0 until searchEngineGroup!!.childCount) {
+ val engineButton = searchEngineGroup!!.getChildAt(i) as CompoundButton
+ engineButton.setOnCheckedChangeListener { _, _ ->
+ val context = context
+ context.tryAsActivity()?.invalidateOptionsMenu()
+ }
+ }
+ }
+
+ fun atLeastOneEngineChecked(): Boolean {
+ for (i in 0 until searchEngineGroup!!.childCount) {
+ val engineButton = searchEngineGroup!!.getChildAt(i) as CompoundButton
+ if (engineButton.isChecked) {
+ return true
+ }
+ }
+ return false
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/RadioSearchEngineListPreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/RadioSearchEngineListPreference.kt
new file mode 100644
index 0000000000..1c55ba0ca2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/RadioSearchEngineListPreference.kt
@@ -0,0 +1,64 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.search
+
+import android.content.Context
+import android.util.AttributeSet
+import android.widget.CompoundButton
+import android.widget.RadioGroup
+import androidx.preference.PreferenceViewHolder
+import mozilla.components.browser.state.search.SearchEngine
+import org.mozilla.focus.GleanMetrics.SearchEngines
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+
+private const val ENGINE_TYPE_CUSTOM = "custom"
+private const val ENGINE_TYPE_BUNDLED = "bundled"
+
+class RadioSearchEngineListPreference : SearchEngineListPreference, RadioGroup.OnCheckedChangeListener {
+
+ override val itemResId: Int
+ get() = R.layout.search_engine_radio_button
+
+ @Suppress("unused")
+ constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
+
+ @Suppress("unused")
+ constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
+
+ override fun onBindViewHolder(holder: PreferenceViewHolder) {
+ super.onBindViewHolder(holder)
+ searchEngineGroup!!.setOnCheckedChangeListener(this)
+ }
+
+ override fun updateDefaultItem(defaultButton: CompoundButton) {
+ defaultButton.isChecked = true
+ }
+
+ override fun onCheckedChanged(group: RadioGroup, checkedId: Int) {
+ val selectedEngine = group.getChildAt(checkedId) ?: return
+
+ // check if the corresponding button was pressed or a11y focused.
+ val hasProperState = selectedEngine.isPressed || selectedEngine.isAccessibilityFocused
+
+ /* onCheckedChanged is called intermittently before the search engine table is full, so we
+ must check these conditions to prevent crashes and inconsistent states. */
+ if (group.childCount != searchEngines.count() || !hasProperState) {
+ return
+ }
+
+ val newDefaultEngine = searchEngines[checkedId]
+
+ context.components.searchUseCases.selectSearchEngine(newDefaultEngine)
+
+ val source = if (newDefaultEngine.type == SearchEngine.Type.CUSTOM) {
+ ENGINE_TYPE_CUSTOM
+ } else {
+ ENGINE_TYPE_BUNDLED
+ }
+
+ SearchEngines.setDefault.record(SearchEngines.SetDefaultExtra(source))
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchEngineListPreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchEngineListPreference.kt
new file mode 100644
index 0000000000..9831534b8e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchEngineListPreference.kt
@@ -0,0 +1,114 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.search
+
+import android.content.Context
+import android.content.res.Resources
+import android.graphics.drawable.BitmapDrawable
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import android.widget.CompoundButton
+import android.widget.RadioGroup
+import androidx.preference.Preference
+import androidx.preference.PreferenceViewHolder
+import androidx.recyclerview.widget.RecyclerView
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.Job
+import mozilla.components.browser.state.search.SearchEngine
+import mozilla.components.browser.state.state.searchEngines
+import mozilla.components.browser.state.state.selectedOrDefaultSearchEngine
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+import kotlin.coroutines.CoroutineContext
+
+abstract class SearchEngineListPreference @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0,
+) : Preference(context, attrs, defStyleAttr), CoroutineScope {
+
+ private val job = Job()
+ override val coroutineContext: CoroutineContext
+ get() = job + Dispatchers.Main
+ protected var searchEngines: List<SearchEngine> = emptyList()
+ protected var searchEngineGroup: RadioGroup? = null
+
+ protected abstract val itemResId: Int
+
+ init {
+ layoutResource = R.layout.preference_search_engine_chooser
+ }
+
+ override fun onBindViewHolder(holder: PreferenceViewHolder) {
+ super.onBindViewHolder(holder)
+ searchEngineGroup = holder.itemView.findViewById(R.id.search_engine_group)
+ val context = searchEngineGroup!!.context
+
+ searchEngines = context.components.store.state.search.searchEngines
+
+ refreshSearchEngineViews(context)
+ }
+
+ override fun onDetached() {
+ job.cancel()
+ super.onDetached()
+ }
+
+ protected abstract fun updateDefaultItem(defaultButton: CompoundButton)
+
+ fun refetchSearchEngines() {
+ searchEngines = context.components.store.state.search.searchEngines
+ refreshSearchEngineViews(this@SearchEngineListPreference.context)
+ }
+
+ private fun refreshSearchEngineViews(context: Context) {
+ if (searchEngineGroup == null) {
+ // We want to refresh the search engine list of this preference in onResume,
+ // but the first time this preference is created onResume is called before onCreateView
+ // so searchEngineGroup is not set yet.
+ return
+ }
+
+ val defaultSearchEngine =
+ context.components.store.state.search.selectedOrDefaultSearchEngine?.id
+
+ searchEngineGroup!!.removeAllViews()
+
+ val layoutInflater = LayoutInflater.from(context)
+ val layoutParams = RecyclerView.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT,
+ )
+
+ for (i in searchEngines.indices) {
+ val engine = searchEngines[i]
+ val engineId = engine.id
+ val engineItem = makeButtonFromSearchEngine(engine, layoutInflater, context.resources)
+ engineItem.id = i
+ engineItem.tag = engineId
+ if (engineId == defaultSearchEngine) {
+ updateDefaultItem(engineItem)
+ }
+ searchEngineGroup!!.addView(engineItem, layoutParams)
+ }
+ }
+
+ private fun makeButtonFromSearchEngine(
+ engine: SearchEngine,
+ layoutInflater: LayoutInflater,
+ res: Resources,
+ ): CompoundButton {
+ val buttonItem = layoutInflater.inflate(itemResId, null) as CompoundButton
+ buttonItem.text = engine.name
+ val iconSize = res.getDimension(R.dimen.preference_icon_drawable_size).toInt()
+ val engineIcon = BitmapDrawable(res, engine.icon)
+ engineIcon.setBounds(0, 0, iconSize, iconSize)
+ val drawables = buttonItem.compoundDrawables
+ buttonItem.setCompoundDrawablesRelative(engineIcon, null, drawables[2], null)
+ return buttonItem
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchEnginePreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchEnginePreference.kt
new file mode 100644
index 0000000000..257f126628
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchEnginePreference.kt
@@ -0,0 +1,48 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.search
+
+import android.content.Context
+import android.content.SharedPreferences
+import android.util.AttributeSet
+import androidx.preference.Preference
+import mozilla.components.browser.state.state.selectedOrDefaultSearchEngine
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+
+/**
+ * Preference for setting the default search engine.
+ */
+class SearchEnginePreference : Preference, SharedPreferences.OnSharedPreferenceChangeListener {
+ internal val context: Context
+
+ constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
+ this.context = context
+ }
+
+ constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
+ this.context = context
+ }
+
+ override fun onAttached() {
+ summary = defaultSearchEngineName
+ preferenceManager.sharedPreferences?.registerOnSharedPreferenceChangeListener(this)
+ super.onAttached()
+ }
+
+ override fun onPrepareForRemoval() {
+ preferenceManager.sharedPreferences?.unregisterOnSharedPreferenceChangeListener(this)
+ super.onPrepareForRemoval()
+ }
+
+ override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String?) {
+ if (key == context.resources.getString(R.string.pref_key_search_engine)) {
+ summary = defaultSearchEngineName
+ }
+ }
+
+ private val defaultSearchEngineName: String
+ get() = context.components.store.state.search.selectedOrDefaultSearchEngine?.name ?: ""
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchFilterMiddleware.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchFilterMiddleware.kt
new file mode 100644
index 0000000000..a66c8dc7b5
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchFilterMiddleware.kt
@@ -0,0 +1,37 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.search
+
+import mozilla.components.browser.state.action.BrowserAction
+import mozilla.components.browser.state.action.SearchAction
+import mozilla.components.browser.state.search.SearchEngine
+import mozilla.components.browser.state.state.BrowserState
+import mozilla.components.lib.state.Middleware
+import mozilla.components.lib.state.MiddlewareContext
+
+/**
+ * [Middleware] for modifying the loaded list of [SearchEngine]s.
+ */
+class SearchFilterMiddleware : Middleware<BrowserState, BrowserAction> {
+ override fun invoke(
+ context: MiddlewareContext<BrowserState, BrowserAction>,
+ next: (BrowserAction) -> Unit,
+ action: BrowserAction,
+ ) {
+ if (action is SearchAction.SetSearchEnginesAction) {
+ val newAction = action.copy(
+ regionSearchEngines = action.regionSearchEngines.filterBing(),
+ )
+
+ next(newAction)
+ } else {
+ next(action)
+ }
+ }
+}
+
+private fun List<SearchEngine>.filterBing(): List<SearchEngine> {
+ return filter { searchEngine -> searchEngine.id != "bing" }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchMigration.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchMigration.kt
new file mode 100644
index 0000000000..36a53fc1ba
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/search/SearchMigration.kt
@@ -0,0 +1,71 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.search
+
+import android.content.Context
+import android.content.SharedPreferences
+import mozilla.components.browser.state.search.SearchEngine
+import mozilla.components.feature.search.ext.parseLegacySearchEngine
+import mozilla.components.feature.search.middleware.SearchMiddleware
+import org.mozilla.focus.ext.settings
+import org.xmlpull.v1.XmlPullParserException
+import java.io.BufferedInputStream
+import java.io.IOException
+
+private const val PREF_FILE_SEARCH_ENGINES = "custom-search-engines"
+private const val PREF_KEY_MIGRATED = "pref_search_migrated"
+private const val PREF_KEY_CUSTOM_SEARCH_ENGINES = "pref_custom_search_engines"
+
+/**
+ * Helper class to migrate the search related data in Focus to the "Android Components" implementation.
+ */
+class SearchMigration(
+ private val context: Context,
+) : SearchMiddleware.Migration {
+
+ override fun getValuesToMigrate(): SearchMiddleware.Migration.MigrationValues? {
+ val preferences = context.getSharedPreferences(PREF_FILE_SEARCH_ENGINES, Context.MODE_PRIVATE)
+ if (preferences.getBoolean(PREF_KEY_MIGRATED, false)) {
+ return null
+ }
+
+ @Suppress("DEPRECATION")
+ val values = SearchMiddleware.Migration.MigrationValues(
+ customSearchEngines = loadCustomSearchEngines(preferences),
+ defaultSearchEngineName = context.settings.defaultSearchEngineName,
+ )
+
+ preferences.edit()
+ .putBoolean(PREF_KEY_MIGRATED, true)
+ .apply()
+
+ return values
+ }
+
+ private fun loadCustomSearchEngines(
+ preferences: SharedPreferences,
+ ): List<SearchEngine> {
+ val engines = preferences.getStringSet(PREF_KEY_CUSTOM_SEARCH_ENGINES, emptySet())!!
+
+ return engines.mapNotNull { engine ->
+ val engineInputStream = preferences.getString(engine, "")!!
+ .byteInputStream()
+ .buffered()
+
+ loadSafely(engine, engineInputStream)
+ }
+ }
+}
+
+@Suppress("SwallowedException", "DEPRECATION")
+private fun loadSafely(id: String, stream: BufferedInputStream?): SearchEngine? {
+ return try {
+ stream?.let { parseLegacySearchEngine(id, it) }
+ } catch (e: IOException) {
+ null
+ } catch (e: XmlPullParserException) {
+ null
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/SearchSuggestionsPreferences.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/SearchSuggestionsPreferences.kt
new file mode 100644
index 0000000000..3c1b36e2e7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/SearchSuggestionsPreferences.kt
@@ -0,0 +1,44 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.searchsuggestions
+
+import android.content.Context
+import androidx.preference.PreferenceManager
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.settings
+
+class SearchSuggestionsPreferences(private val context: Context) {
+ private val settings = context.settings
+ private val preferences = PreferenceManager.getDefaultSharedPreferences(context)
+
+ fun searchSuggestionsEnabled(): Boolean = settings.shouldShowSearchSuggestions()
+ fun hasUserToggledSearchSuggestions(): Boolean = settings.userHasToggledSearchSuggestions()
+ fun userHasDismissedNoSuggestionsMessage(): Boolean = settings.userHasDismissedNoSuggestionsMessage()
+
+ fun enableSearchSuggestions() {
+ preferences.edit()
+ .putBoolean(TOGGLED_SUGGESTIONS_PREF, true)
+ .putBoolean(context.resources.getString(R.string.pref_key_show_search_suggestions), true)
+ .apply()
+ }
+
+ fun disableSearchSuggestions() {
+ preferences.edit()
+ .putBoolean(TOGGLED_SUGGESTIONS_PREF, true)
+ .putBoolean(context.resources.getString(R.string.pref_key_show_search_suggestions), false)
+ .apply()
+ }
+
+ fun dismissNoSuggestionsMessage() {
+ preferences.edit()
+ .putBoolean(DISMISSED_NO_SUGGESTIONS_PREF, true)
+ .apply()
+ }
+
+ companion object {
+ const val TOGGLED_SUGGESTIONS_PREF = "user_has_toggled_search_suggestions"
+ const val DISMISSED_NO_SUGGESTIONS_PREF = "user_dismissed_no_search_suggestions"
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/SearchSuggestionsViewModel.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/SearchSuggestionsViewModel.kt
new file mode 100644
index 0000000000..7a873ba816
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/SearchSuggestionsViewModel.kt
@@ -0,0 +1,116 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.searchsuggestions
+
+import android.app.Application
+import androidx.lifecycle.AndroidViewModel
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import mozilla.components.browser.state.state.selectedOrDefaultSearchEngine
+import mozilla.components.feature.search.ext.canProvideSearchSuggestions
+import mozilla.components.service.glean.private.NoExtras
+import org.mozilla.focus.FocusApplication
+import org.mozilla.focus.GleanMetrics.SearchSuggestions
+
+sealed class State {
+ data class Disabled(val givePrompt: Boolean) : State()
+ data class NoSuggestionsAPI(val givePrompt: Boolean) : State()
+ object ReadyForSuggestions : State()
+}
+
+class SearchSuggestionsViewModel(application: Application) : AndroidViewModel(application) {
+ private val preferences: SearchSuggestionsPreferences = SearchSuggestionsPreferences(application)
+
+ private val _selectedSearchSuggestion = MutableLiveData<String?>()
+ val selectedSearchSuggestion: LiveData<String?> = _selectedSearchSuggestion
+
+ private val _searchQuery = MutableLiveData<String>()
+ val searchQuery: LiveData<String> = _searchQuery
+
+ private val _state = MutableLiveData<State>()
+ val state: LiveData<State> = _state
+
+ private val _autocompleteSuggestion = MutableLiveData<String?>()
+ val autocompleteSuggestion: LiveData<String?> = _autocompleteSuggestion
+
+ var alwaysSearch = false
+ private set
+
+ fun selectSearchSuggestion(
+ suggestion: String,
+ defaultSearchEngineName: String,
+ alwaysSearch: Boolean = false,
+ ) {
+ this.alwaysSearch = alwaysSearch
+ _selectedSearchSuggestion.postValue(suggestion)
+
+ if (suggestion == searchQuery.value) {
+ SearchSuggestions.searchTapped.record(
+ SearchSuggestions.SearchTappedExtra(defaultSearchEngineName),
+ )
+ } else {
+ SearchSuggestions.suggestionTapped.record(
+ SearchSuggestions.SuggestionTappedExtra(defaultSearchEngineName),
+ )
+ }
+ }
+
+ fun clearSearchSuggestion() {
+ _selectedSearchSuggestion.postValue(null)
+ }
+
+ fun setAutocompleteSuggestion(text: String) {
+ _autocompleteSuggestion.postValue(text)
+ SearchSuggestions.autocompleteArrowTapped.record(NoExtras())
+ }
+
+ fun clearAutocompleteSuggestion() {
+ _autocompleteSuggestion.postValue(null)
+ }
+
+ fun setSearchQuery(query: String) {
+ _searchQuery.value = query
+ }
+
+ fun enableSearchSuggestions() {
+ preferences.enableSearchSuggestions()
+ updateState()
+ setSearchQuery(searchQuery.value ?: "")
+ }
+
+ fun disableSearchSuggestions() {
+ preferences.disableSearchSuggestions()
+ updateState()
+ }
+
+ fun dismissNoSuggestionsMessage() {
+ preferences.dismissNoSuggestionsMessage()
+ updateState()
+ }
+
+ fun refresh() {
+ updateState()
+ }
+
+ private fun updateState() {
+ val enabled = preferences.searchSuggestionsEnabled()
+
+ val store = getApplication<FocusApplication>().components.store
+
+ val state = if (enabled) {
+ if (store.state.search.selectedOrDefaultSearchEngine?.canProvideSearchSuggestions == true) {
+ State.ReadyForSuggestions
+ } else {
+ val givePrompt = !preferences.userHasDismissedNoSuggestionsMessage()
+ State.NoSuggestionsAPI(givePrompt)
+ }
+ } else {
+ val givePrompt = !preferences.hasUserToggledSearchSuggestions()
+ State.Disabled(givePrompt)
+ }
+
+ _state.value = state
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/ui/SearchOverlay.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/ui/SearchOverlay.kt
new file mode 100644
index 0000000000..1e49be666d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/ui/SearchOverlay.kt
@@ -0,0 +1,121 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.searchsuggestions.ui
+
+import androidx.appcompat.content.res.AppCompatResources
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Column
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.livedata.observeAsState
+import androidx.compose.runtime.remember
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.geometry.Offset
+import androidx.compose.ui.input.nestedscroll.NestedScrollConnection
+import androidx.compose.ui.input.nestedscroll.NestedScrollSource
+import androidx.compose.ui.input.nestedscroll.nestedScroll
+import androidx.compose.ui.platform.LocalContext
+import androidx.core.graphics.drawable.toBitmap
+import kotlinx.coroutines.DelicateCoroutinesApi
+import mozilla.components.compose.browser.awesomebar.AwesomeBar
+import mozilla.components.compose.browser.awesomebar.AwesomeBarDefaults
+import mozilla.components.concept.awesomebar.AwesomeBar
+import mozilla.components.feature.awesomebar.provider.SearchSuggestionProvider
+import org.mozilla.focus.R
+import org.mozilla.focus.components
+import org.mozilla.focus.searchsuggestions.SearchSuggestionsViewModel
+import org.mozilla.focus.searchsuggestions.State
+import org.mozilla.focus.topsites.TopSitesOverlay
+import org.mozilla.focus.ui.theme.focusColors
+
+@OptIn(DelicateCoroutinesApi::class)
+@Composable
+fun SearchOverlay(
+ viewModel: SearchSuggestionsViewModel,
+ defaultSearchEngineName: String,
+ onListScrolled: () -> Unit,
+) {
+ val state = viewModel.state.observeAsState()
+ val query = viewModel.searchQuery.observeAsState()
+
+ when (state.value) {
+ is State.Disabled,
+ is State.NoSuggestionsAPI,
+ -> {
+ if (query.value.isNullOrEmpty()) {
+ TopSitesOverlay(modifier = Modifier.background(focusColors.surface))
+ }
+ }
+ is State.ReadyForSuggestions -> {
+ if (query.value.isNullOrEmpty()) {
+ TopSitesOverlay(modifier = Modifier.background(focusColors.surface))
+ } else {
+ SearchSuggestions(
+ text = query.value ?: "",
+ onSuggestionClicked = { suggestion ->
+ viewModel.selectSearchSuggestion(
+ suggestion.title!!,
+ defaultSearchEngineName,
+ )
+ },
+ onAutoComplete = { suggestion ->
+ val editSuggestion = suggestion.editSuggestion ?: return@SearchSuggestions
+ viewModel.setAutocompleteSuggestion(editSuggestion)
+ },
+ onListScrolled = onListScrolled,
+ )
+ }
+ }
+ else -> {
+ // no-op
+ }
+ }
+}
+
+@Composable
+private fun SearchSuggestions(
+ text: String,
+ onSuggestionClicked: (AwesomeBar.Suggestion) -> Unit,
+ onAutoComplete: (AwesomeBar.Suggestion) -> Unit,
+ onListScrolled: () -> Unit,
+) {
+ val context = LocalContext.current
+ val components = components
+
+ val icon = AppCompatResources.getDrawable(context, R.drawable.mozac_ic_search_24)?.toBitmap()
+ val provider = remember(context) {
+ SearchSuggestionProvider(
+ context,
+ components.store,
+ components.searchUseCases.newPrivateTabSearch,
+ components.client,
+ mode = SearchSuggestionProvider.Mode.MULTIPLE_SUGGESTIONS,
+ private = true,
+ showDescription = false,
+ icon = icon,
+ )
+ }
+
+ val nestedScrollConnection = remember {
+ object : NestedScrollConnection {
+ override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset {
+ onListScrolled.invoke()
+ return Offset.Zero
+ }
+ }
+ }
+
+ Column(
+ modifier = Modifier.nestedScroll(nestedScrollConnection),
+ ) {
+ AwesomeBar(
+ text = text,
+ colors = AwesomeBarDefaults.colors(
+ background = focusColors.surface,
+ ),
+ providers = listOf(provider),
+ onSuggestionClicked = onSuggestionClicked,
+ onAutoComplete = onAutoComplete,
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/ui/SearchSuggestionsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/ui/SearchSuggestionsFragment.kt
new file mode 100644
index 0000000000..4f0c2f5bdb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/ui/SearchSuggestionsFragment.kt
@@ -0,0 +1,127 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.searchsuggestions.ui
+
+import android.os.Bundle
+import android.text.method.LinkMovementMethod
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.compose.ui.platform.ComposeView
+import androidx.core.view.isVisible
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.activityViewModels
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.Job
+import mozilla.components.service.glean.private.NoExtras
+import mozilla.components.support.ktx.android.view.hideKeyboard
+import org.mozilla.focus.GleanMetrics.ShowSearchSuggestions
+import org.mozilla.focus.R
+import org.mozilla.focus.databinding.FragmentSearchSuggestionsBinding
+import org.mozilla.focus.ext.defaultSearchEngineName
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.searchsuggestions.SearchSuggestionsViewModel
+import org.mozilla.focus.searchsuggestions.State
+import org.mozilla.focus.ui.theme.FocusTheme
+import kotlin.coroutines.CoroutineContext
+
+class SearchSuggestionsFragment : Fragment(), CoroutineScope {
+ private var job = Job()
+ override val coroutineContext: CoroutineContext
+ get() = job + Dispatchers.Main
+
+ private var _binding: FragmentSearchSuggestionsBinding? = null
+ private val binding get() = _binding!!
+
+ private val defaultSearchEngineName: String
+ get() = requireComponents.store.defaultSearchEngineName()
+
+ private val searchSuggestionsViewModel: SearchSuggestionsViewModel by activityViewModels()
+
+ override fun onResume() {
+ super.onResume()
+
+ if (job.isCancelled) {
+ job = Job()
+ }
+
+ searchSuggestionsViewModel.refresh()
+ }
+
+ override fun onPause() {
+ job.cancel()
+ super.onPause()
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?,
+ ): View {
+ _binding = FragmentSearchSuggestionsBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ searchSuggestionsViewModel.state.observe(
+ viewLifecycleOwner,
+ ) { state ->
+ binding.enableSearchSuggestionsContainer.isVisible = false
+ binding.noSuggestionsContainer.isVisible = false
+
+ when (state) {
+ is State.ReadyForSuggestions -> { // Handled by Jetpack Compose implementation
+ }
+ is State.NoSuggestionsAPI ->
+ binding.noSuggestionsContainer.isVisible = state.givePrompt
+ is State.Disabled ->
+ binding.enableSearchSuggestionsContainer.isVisible = state.givePrompt
+ }
+ }
+
+ val appName = resources.getString(R.string.app_name)
+
+ binding.enableSearchSuggestionsSubtitle.apply {
+ text = resources.getString(R.string.enable_search_suggestion_description, appName)
+ movementMethod = LinkMovementMethod.getInstance()
+ highlightColor = android.graphics.Color.TRANSPARENT
+ }
+ binding.enableSearchSuggestionsButton.setOnClickListener {
+ searchSuggestionsViewModel.enableSearchSuggestions()
+ ShowSearchSuggestions.enabledFromPanel.record(NoExtras())
+ }
+
+ binding.disableSearchSuggestionsButton.setOnClickListener {
+ searchSuggestionsViewModel.disableSearchSuggestions()
+ ShowSearchSuggestions.disabledFromPanel.record(NoExtras())
+ }
+
+ binding.dismissNoSuggestionsMessage.setOnClickListener {
+ searchSuggestionsViewModel.dismissNoSuggestionsMessage()
+ }
+
+ val searchSuggestionsView = view.findViewById<ComposeView>(R.id.search_suggestions_view)
+ searchSuggestionsView.setContent {
+ FocusTheme {
+ SearchOverlay(
+ searchSuggestionsViewModel,
+ defaultSearchEngineName,
+ ) { view.hideKeyboard() }
+ }
+ }
+ }
+
+ companion object {
+ fun create() = SearchSuggestionsFragment()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/ui/SearchSuggestionsPreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/ui/SearchSuggestionsPreference.kt
new file mode 100644
index 0000000000..a11fcf25e1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchsuggestions/ui/SearchSuggestionsPreference.kt
@@ -0,0 +1,31 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.searchsuggestions.ui
+
+import android.content.Context
+import android.util.AttributeSet
+import org.mozilla.focus.R
+import org.mozilla.focus.settings.LearnMoreSwitchPreference
+import org.mozilla.focus.utils.SupportUtils
+
+/**
+ * Switch preference for enabling/disabling autocompletion for default domains that ship with the app.
+ */
+class SearchSuggestionsPreference(
+ context: Context,
+ attrs: AttributeSet?,
+) : LearnMoreSwitchPreference(context, attrs) {
+ override fun getLearnMoreUrl(): String =
+ SupportUtils.getSumoURLForTopic(
+ SupportUtils.getAppVersion(context),
+ SupportUtils.SumoTopic.SEARCH_SUGGESTIONS,
+ )
+
+ override fun getDescription(): String =
+ context.getString(
+ R.string.preference_show_search_suggestions_summary,
+ context.getString(R.string.app_name),
+ )
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/ExternalIntentNavigation.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/ExternalIntentNavigation.kt
new file mode 100644
index 0000000000..c900c2b17c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/ExternalIntentNavigation.kt
@@ -0,0 +1,125 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.searchwidget
+
+import android.content.Context
+import android.os.Bundle
+import androidx.annotation.VisibleForTesting
+import mozilla.components.browser.state.state.SessionState
+import mozilla.components.feature.search.widget.BaseVoiceSearchActivity
+import mozilla.telemetry.glean.private.NoExtras
+import org.mozilla.focus.GleanMetrics.SearchWidget
+import org.mozilla.focus.activity.IntentReceiverActivity
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.perf.Performance
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.utils.SearchUtils
+
+/**
+ * Handles all actions from outside the app that starts it.
+ */
+object ExternalIntentNavigation {
+
+ /**
+ * Handle all the navigation from search widget, app icon, lockscreen and custom tab.
+ *
+ * @param bundle External Intent [Bundle] with data based on which destination will be computed.
+ * @param context Android [Context] used for system interactions or accessing dependencies.
+ */
+ fun handleAppNavigation(
+ bundle: Bundle?,
+ context: Context,
+ ) {
+ if (handleWidgetVoiceSearch(bundle, context)) return
+
+ if (handleWidgetTextSearch(bundle, context)) return
+
+ if (handleBrowserTabAlreadyOpen(context)) return
+
+ handleAppOpened(bundle, context)
+ }
+
+ /**
+ * Handle the app being opened with no specified destination.
+ * This can show the onboarding or the app's home screen.
+ */
+ @VisibleForTesting
+ internal fun handleAppOpened(
+ bundle: Bundle?,
+ context: Context,
+ ) {
+ if (context.settings.isFirstRun &&
+ !Performance.processIntentIfPerformanceTest(bundle, context)
+ ) {
+ context.components.appStore.dispatch(AppAction.ShowFirstRun)
+ }
+ }
+
+ /**
+ * Try navigating to the currently selected tab.
+ *
+ * @return Whether or not the app navigated to the currently selected tab.
+ */
+ @VisibleForTesting
+ internal fun handleBrowserTabAlreadyOpen(context: Context): Boolean {
+ val tabId = context.components.store.state.selectedTabId
+
+ return when (tabId != null) {
+ true -> {
+ context.components.appStore.dispatch(AppAction.OpenTab(tabId))
+ true
+ }
+ else -> false
+ }
+ }
+
+ /**
+ * Try navigating to search by text.
+ *
+ * @return Whether or not a widget interaction was detected and the app opened the search screen for it.
+ */
+ @VisibleForTesting
+ internal fun handleWidgetTextSearch(bundle: Bundle?, context: Context): Boolean {
+ val searchWidgetIntent = bundle?.getBoolean(IntentReceiverActivity.SEARCH_WIDGET_EXTRA, false)
+
+ return when (searchWidgetIntent == true) {
+ true -> {
+ SearchWidget.newTabButton.record(NoExtras())
+ context.components.appStore.dispatch(AppAction.ShowHomeScreen)
+ true
+ }
+ else -> false
+ }
+ }
+
+ /**
+ * Try opening a new tab for the user voice search.
+ *
+ * @return Whether or not a voice search was identified and the app opened a new tab for it.
+ */
+ @VisibleForTesting
+ internal fun handleWidgetVoiceSearch(bundle: Bundle?, context: Context): Boolean {
+ val voiceSearchText = bundle?.getString(BaseVoiceSearchActivity.SPEECH_PROCESSING)
+
+ return when (!voiceSearchText.isNullOrEmpty()) {
+ true -> {
+ val tabId = context.components.tabsUseCases.addTab(
+ url = SearchUtils.createSearchUrl(
+ context,
+ voiceSearchText,
+ ),
+ source = SessionState.Source.External.ActionSend(null),
+ searchTerms = voiceSearchText,
+ selectTab = true,
+ private = true,
+ )
+ context.components.appStore.dispatch(AppAction.OpenTab(tabId))
+ true
+ }
+ else -> false
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/PromoteSearchWidgetDialogCompose.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/PromoteSearchWidgetDialogCompose.kt
new file mode 100644
index 0000000000..ca42e12be5
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/PromoteSearchWidgetDialogCompose.kt
@@ -0,0 +1,201 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.searchwidget
+
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.layout.wrapContentHeight
+import androidx.compose.foundation.layout.wrapContentSize
+import androidx.compose.foundation.shape.CircleShape
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material.Button
+import androidx.compose.material.ButtonDefaults
+import androidx.compose.material.Icon
+import androidx.compose.material.IconButton
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.MutableState
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.AnnotatedString
+import androidx.compose.ui.text.style.TextAlign
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.window.Dialog
+import androidx.compose.ui.window.DialogProperties
+import androidx.constraintlayout.compose.ConstraintLayout
+import mozilla.components.ui.colors.PhotonColors
+import org.mozilla.focus.R
+import org.mozilla.focus.ui.theme.FocusTheme
+import org.mozilla.focus.ui.theme.focusColors
+import org.mozilla.focus.ui.theme.focusTypography
+
+@Composable
+@Preview
+private fun PromoteSearchWidgetDialogComposePreview() {
+ FocusTheme {
+ PromoteSearchWidgetDialogCompose({}, {})
+ }
+}
+
+@Suppress("LongMethod")
+@Composable
+fun PromoteSearchWidgetDialogCompose(
+ onAddSearchWidgetButtonClick: () -> Unit,
+ onDismiss: () -> Unit,
+) {
+ val openDialog = remember { mutableStateOf(true) }
+ if (openDialog.value) {
+ Dialog(
+ onDismissRequest = {
+ onDismiss()
+ },
+ DialogProperties(dismissOnBackPress = true, dismissOnClickOutside = false),
+ ) {
+ Column(
+ modifier = Modifier
+ .clip(RoundedCornerShape(20.dp)),
+ ) {
+ ConstraintLayout(
+ modifier = Modifier
+ .wrapContentSize()
+ .background(
+ colorResource(id = R.color.promote_search_widget_dialog_background),
+ ),
+ ) {
+ val (closeButton, content) = createRefs()
+ Column(
+ modifier = Modifier
+ .fillMaxWidth()
+ .wrapContentHeight()
+ .padding(top = 8.dp, end = 16.dp)
+ .constrainAs(closeButton) {
+ top.linkTo(parent.top)
+ start.linkTo(parent.start)
+ end.linkTo(parent.end)
+ },
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.End,
+ ) {
+ CloseButton(openDialog, onDismiss)
+ }
+ Column(
+ modifier = Modifier.constrainAs(content) {
+ top.linkTo(closeButton.bottom)
+ start.linkTo(parent.start)
+ end.linkTo(parent.end)
+ },
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally,
+ ) {
+ Text(
+ text = stringResource(
+ id = R.string.promote_search_widget_dialog_title,
+ ),
+ modifier = Modifier
+ .padding(16.dp),
+ color = focusColors.dialogTextColor,
+ textAlign = TextAlign.Center,
+ style = focusTypography.dialogTitle,
+ )
+ Text(
+ text = stringResource(
+ id = R.string.promote_search_widget_dialog_subtitle,
+ LocalContext.current.getString(R.string.onboarding_short_app_name),
+ ),
+ modifier = Modifier
+ .padding(top = 16.dp, start = 16.dp, end = 16.dp),
+ color = focusColors.dialogTextColor,
+ textAlign = TextAlign.Center,
+ style = focusTypography.dialogContent,
+ )
+ Image(
+ painter = painterResource(R.drawable.focus_search_widget_promote_dialog),
+ contentDescription = LocalContext.current.getString(
+ R.string.promote_search_widget_dialog_picture_content_description,
+ ),
+ modifier = Modifier
+ .fillMaxWidth()
+ .padding(start = 10.dp, end = 10.dp)
+ .background(
+ colorResource(id = R.color.promote_search_widget_dialog_background),
+ ),
+ )
+ ComponentAddWidgetButton({ onAddSearchWidgetButtonClick() }, { onDismiss() }, openDialog)
+ }
+ }
+ }
+ }
+ }
+}
+
+@Composable
+private fun ComponentAddWidgetButton(
+ onAddSearchWidgetButtonClick: () -> Unit,
+ onDismiss: () -> Unit,
+ openState: MutableState<Boolean>,
+) {
+ Button(
+ onClick = {
+ openState.value = false
+ onAddSearchWidgetButtonClick()
+ onDismiss()
+ },
+ modifier = Modifier
+ .fillMaxWidth()
+ .padding(24.dp),
+ shape = RoundedCornerShape(8.dp),
+ colors = ButtonDefaults.textButtonColors(
+ backgroundColor = colorResource(R.color.promote_search_widget_dialog_add_widget_button_background),
+ ),
+ ) {
+ Text(
+ text = AnnotatedString(
+ LocalContext.current.resources.getString(
+ R.string.promote_search_widget_button_text,
+ ),
+ ),
+ color = PhotonColors.White,
+ )
+ }
+}
+
+@Composable
+private fun CloseButton(
+ openState: MutableState<Boolean>,
+ onDismiss: () -> Unit,
+) {
+ IconButton(
+ onClick = {
+ onDismiss()
+ openState.value = false
+ },
+ modifier = Modifier
+ .background(
+ colorResource(id = R.color.promote_search_widget_dialog_close_button_background),
+ shape = CircleShape,
+ )
+ .size(48.dp)
+ .padding(10.dp),
+ ) {
+ Icon(
+ painter = painterResource(R.drawable.mozac_ic_cross_24),
+ contentDescription = stringResource(id = R.string.promote_search_widget_dialog_content_description),
+ tint = focusColors.closeIcon,
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/SearchWidgetProvider.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/SearchWidgetProvider.kt
new file mode 100644
index 0000000000..cbd597a51f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/SearchWidgetProvider.kt
@@ -0,0 +1,73 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.searchwidget
+
+import android.app.PendingIntent
+import android.content.Context
+import android.content.Intent
+import android.speech.RecognizerIntent
+import androidx.annotation.VisibleForTesting
+import mozilla.components.feature.search.widget.AppSearchWidgetProvider
+import mozilla.components.feature.search.widget.BaseVoiceSearchActivity
+import mozilla.components.feature.search.widget.SearchWidgetConfig
+import mozilla.components.support.utils.PendingIntentUtils
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.IntentReceiverActivity
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.session.VisibilityLifeCycleCallback
+import org.mozilla.focus.state.AppAction
+
+class SearchWidgetProvider : AppSearchWidgetProvider() {
+
+ override fun onEnabled(context: Context) {
+ context.components.settings.addSearchWidgetInstalled(1)
+
+ // The snackBar that informs the user that search widget was added successfully
+ // should appear only if the app is in foreground
+ if (!VisibilityLifeCycleCallback.isInBackground(context)) {
+ context.components.appStore.dispatch(AppAction.ShowSearchWidgetSnackBar(true))
+ }
+ }
+
+ override fun onDeleted(context: Context, appWidgetIds: IntArray) {
+ context.components.settings.addSearchWidgetInstalled(-appWidgetIds.size)
+ }
+
+ override val config: SearchWidgetConfig =
+ SearchWidgetConfig(
+ searchWidgetIconResource = R.drawable.ic_splash_screen,
+ searchWidgetMicrophoneResource = R.drawable.mozac_ic_microphone_24,
+ appName = R.string.app_name,
+ )
+
+ override fun createTextSearchIntent(context: Context): PendingIntent {
+ val textSearchIntent = Intent(context, IntentReceiverActivity::class.java)
+ .apply {
+ this.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
+ this.putExtra(IntentReceiverActivity.SEARCH_WIDGET_EXTRA, true)
+ }
+ return PendingIntent.getActivity(
+ context,
+ REQUEST_CODE_NEW_TAB,
+ textSearchIntent,
+ PendingIntentUtils.defaultFlags or
+ PendingIntent.FLAG_UPDATE_CURRENT,
+ )
+ }
+
+ override fun shouldShowVoiceSearch(context: Context): Boolean {
+ val intentSpeech = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)
+ return intentSpeech.resolveActivity(context.packageManager) != null
+ }
+
+ override fun voiceSearchActivity(): Class<out BaseVoiceSearchActivity> {
+ return VoiceSearchActivity::class.java
+ }
+
+ companion object {
+ @VisibleForTesting
+ const val REQUEST_CODE_NEW_TAB = 0
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/SearchWidgetUtils.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/SearchWidgetUtils.kt
new file mode 100644
index 0000000000..2116dd19dd
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/SearchWidgetUtils.kt
@@ -0,0 +1,73 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.searchwidget
+
+import android.app.Activity
+import android.app.Dialog
+import android.app.PendingIntent
+import android.appwidget.AppWidgetManager
+import android.content.ComponentName
+import android.content.Intent
+import android.os.Build
+import android.os.Bundle
+import androidx.compose.ui.platform.ComposeView
+import androidx.lifecycle.setViewTreeLifecycleOwner
+import androidx.savedstate.setViewTreeSavedStateRegistryOwner
+import mozilla.components.support.utils.PendingIntentUtils
+import mozilla.telemetry.glean.private.NoExtras
+import org.mozilla.focus.GleanMetrics.SearchWidget
+import org.mozilla.focus.activity.MainActivity
+import org.mozilla.focus.ui.theme.FocusTheme
+
+object SearchWidgetUtils {
+
+ private fun addSearchWidgetToHomeScreen(activity: Activity) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ val appWidgetManager = AppWidgetManager.getInstance(activity)
+ val searchWidgetProvider = ComponentName(activity, SearchWidgetProvider::class.java)
+ if (appWidgetManager!!.isRequestPinAppWidgetSupported) {
+ val pinnedWidgetCallbackIntent = Intent(activity, SearchWidgetProvider::class.java)
+ val successCallback = PendingIntent.getBroadcast(
+ activity,
+ 0,
+ pinnedWidgetCallbackIntent,
+ PendingIntentUtils.defaultFlags or
+ PendingIntent.FLAG_UPDATE_CURRENT,
+ )
+ appWidgetManager.requestPinAppWidget(searchWidgetProvider, Bundle(), successCallback)
+ }
+ }
+ }
+
+ /**
+ * Shows promote search widget dialog
+ */
+ fun showPromoteSearchWidgetDialog(activity: MainActivity) {
+ val promoteSearchWidgetDialog = Dialog(activity)
+ promoteSearchWidgetDialog.apply {
+ setContentView(
+ ComposeView(activity).apply {
+ setViewTreeLifecycleOwner(activity)
+ this.setViewTreeSavedStateRegistryOwner(activity)
+ setContent {
+ FocusTheme {
+ PromoteSearchWidgetDialogCompose(
+ onAddSearchWidgetButtonClick = {
+ addSearchWidgetToHomeScreen(activity)
+ SearchWidget.addToHomeScreenButton.record(NoExtras())
+ },
+ onDismiss = {
+ promoteSearchWidgetDialog.dismiss()
+ },
+ )
+ }
+ }
+ isTransitionGroup = true
+ },
+ )
+ }.show()
+ SearchWidget.promoteDialogShown.record(NoExtras())
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/VoiceSearchActivity.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/VoiceSearchActivity.kt
new file mode 100644
index 0000000000..20d0ff6124
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/searchwidget/VoiceSearchActivity.kt
@@ -0,0 +1,32 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.searchwidget
+
+import android.content.Intent
+import mozilla.components.feature.search.widget.BaseVoiceSearchActivity
+import mozilla.components.support.locale.LocaleManager
+import mozilla.components.support.locale.LocaleManager.getCurrentLocale
+import mozilla.telemetry.glean.private.NoExtras
+import org.mozilla.focus.GleanMetrics.SearchWidget
+import org.mozilla.focus.activity.IntentReceiverActivity
+import java.util.Locale
+
+class VoiceSearchActivity : BaseVoiceSearchActivity() {
+
+ override fun getCurrentLocale(): Locale {
+ return getCurrentLocale(this)
+ ?: LocaleManager.getSystemDefault()
+ }
+
+ override fun onSpeechRecognitionEnded(spokenText: String) {
+ val intent = Intent(this, IntentReceiverActivity::class.java)
+ intent.putExtra(SPEECH_PROCESSING, spokenText)
+ startActivity(intent)
+ }
+
+ override fun onSpeechRecognitionStarted() {
+ SearchWidget.voiceButton.record(NoExtras())
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/IntentProcessor.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/IntentProcessor.kt
new file mode 100644
index 0000000000..0975e7970c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/IntentProcessor.kt
@@ -0,0 +1,203 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.session
+
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import android.text.TextUtils
+import mozilla.components.browser.state.state.SessionState
+import mozilla.components.feature.customtabs.createCustomTabConfigFromIntent
+import mozilla.components.feature.customtabs.isCustomTabIntent
+import mozilla.components.feature.tabs.CustomTabsUseCases
+import mozilla.components.feature.tabs.TabsUseCases
+import mozilla.components.support.ktx.util.URLStringUtils
+import mozilla.components.support.utils.SafeIntent
+import mozilla.components.support.utils.WebURLFinder
+import org.mozilla.focus.activity.TextActionActivity
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.shortcut.HomeScreen
+import org.mozilla.focus.utils.SearchUtils
+
+/**
+ * Implementation moved from Focus SessionManager. To be replaced with SessionIntentProcessor from feature-session
+ * component soon.
+ */
+class IntentProcessor(
+ private val context: Context,
+ private val tabsUseCases: TabsUseCases,
+ private val customTabsUseCases: CustomTabsUseCases,
+) {
+ sealed class Result {
+ object None : Result()
+ data class Tab(val id: String) : Result()
+ data class CustomTab(val id: String) : Result()
+ }
+
+ /**
+ * Handle this incoming intent (via onCreate()) and create a new session if required.
+ */
+ fun handleIntent(context: Context, intent: SafeIntent, savedInstanceState: Bundle?): Result {
+ if ((intent.flags and Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) != 0) {
+ // This Intent was launched from history (recent apps). Android will redeliver the
+ // original Intent (which might be a VIEW intent). However if there's no active browsing
+ // session then we do not want to re-process the Intent and potentially re-open a website
+ // from a session that the user already "erased".
+ return Result.None
+ }
+
+ if (savedInstanceState != null) {
+ // We are restoring a previous session - No need to handle this Intent.
+ return Result.None
+ }
+
+ return createSessionFromIntent(context, intent)
+ }
+
+ /**
+ * Handle this incoming intent (via onNewIntent()) and create a new session if required.
+ */
+ fun handleNewIntent(context: Context, intent: SafeIntent) {
+ createSessionFromIntent(context, intent)
+ }
+
+ @Suppress("ComplexMethod", "ReturnCount")
+ private fun createSessionFromIntent(context: Context, intent: SafeIntent): Result {
+ when (intent.action) {
+ Intent.ACTION_VIEW -> {
+ val dataString = intent.dataString
+ if (TextUtils.isEmpty(dataString)) {
+ // If there's no URL in the Intent then we can't create a session.
+ return Result.None
+ }
+
+ return when {
+ intent.hasExtra(HomeScreen.ADD_TO_HOMESCREEN_TAG) -> {
+ val requestDesktop =
+ intent.getBooleanExtra(HomeScreen.REQUEST_DESKTOP, false)
+
+ // Ignoring, because exception!
+ // HomeScreen.BLOCKING_ENABLED
+
+ createSession(
+ SessionState.Source.Internal.HomeScreen,
+ intent,
+ intent.dataString ?: "",
+ requestDesktop,
+ )
+ }
+ intent.hasExtra(TextActionActivity.EXTRA_TEXT_SELECTION) -> createSession(
+ SessionState.Source.Internal.TextSelection,
+ intent,
+ intent.dataString ?: "",
+ )
+ else -> createSession(
+ SessionState.Source.External.ActionView(null),
+ intent,
+ intent.dataString ?: "",
+ )
+ }
+ }
+
+ Intent.ACTION_SEND -> {
+ val dataString = intent.getStringExtra(Intent.EXTRA_TEXT)
+ if (TextUtils.isEmpty(dataString)) {
+ return Result.None
+ }
+
+ return if (dataString == null || !URLStringUtils.isURLLike(dataString)) {
+ val bestURL = WebURLFinder(dataString).bestWebURL()
+ if (!TextUtils.isEmpty(bestURL)) {
+ createSession(SessionState.Source.External.ActionSend(null), bestURL ?: "")
+ } else {
+ createSearchSession(
+ SessionState.Source.External.ActionSend(null),
+ SearchUtils.createSearchUrl(context, dataString ?: ""),
+ dataString ?: "",
+ )
+ }
+ } else {
+ createSession(SessionState.Source.External.ActionSend(null), dataString)
+ }
+ }
+
+ else -> return Result.None
+ }
+ }
+
+ private fun createSession(source: SessionState.Source, url: String): Result {
+ return Result.Tab(
+ tabsUseCases.addTab(
+ url,
+ source = source,
+ selectTab = true,
+ private = true,
+ ),
+ )
+ }
+
+ private fun createSearchSession(source: SessionState.Source, url: String, searchTerms: String): Result {
+ return Result.Tab(
+ tabsUseCases.addTab(
+ url,
+ source = source,
+ searchTerms = searchTerms,
+ private = true,
+ ),
+ )
+ }
+
+ private fun createSession(source: SessionState.Source, intent: SafeIntent, url: String): Result {
+ return if (isCustomTabIntent(intent.unsafe)) {
+ Result.CustomTab(
+ customTabsUseCases.add(
+ url,
+ createCustomTabConfigFromIntent(intent.unsafe, context.resources),
+ private = true,
+ source = source,
+ ),
+ )
+ } else {
+ Result.Tab(
+ tabsUseCases.addTab(
+ url,
+ source = source,
+ selectTab = true,
+ private = true,
+ ),
+ )
+ }
+ }
+
+ private fun createSession(
+ source: SessionState.Source,
+ intent: SafeIntent,
+ url: String,
+ requestDesktop: Boolean,
+ ): Result {
+ val (result, tabId) = if (isCustomTabIntent(intent)) {
+ val tabId = customTabsUseCases.add(
+ url,
+ createCustomTabConfigFromIntent(intent.unsafe, context.resources),
+ private = true,
+ source = source,
+ )
+ Pair(Result.CustomTab(tabId), tabId)
+ } else {
+ val tabId = tabsUseCases.addTab(
+ url,
+ source = source,
+ private = true,
+ )
+ Pair(Result.Tab(tabId), tabId)
+ }
+
+ if (requestDesktop) {
+ context.components.sessionUseCases.requestDesktopSite(requestDesktop, tabId)
+ }
+
+ return result
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/PrivateNotificationFeature.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/PrivateNotificationFeature.kt
new file mode 100644
index 0000000000..1b2aaa22e6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/PrivateNotificationFeature.kt
@@ -0,0 +1,49 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.session
+
+import android.content.Context
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.cancel
+import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.map
+import mozilla.components.browser.state.selector.privateTabs
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.lib.state.ext.flowScoped
+import mozilla.components.support.base.feature.LifecycleAwareFeature
+
+/**
+ * Responsible for starting or stopping up a [SessionNotificationService]
+ * depending on whether a private tab is opened.
+ *
+ * @param browserStore Browser store reference used to observe the number of private tabs.
+ */
+class PrivateNotificationFeature(
+ context: Context,
+ private val browserStore: BrowserStore,
+ private val permissionRequestHandler: (() -> Unit),
+) : LifecycleAwareFeature {
+
+ private val applicationContext = context.applicationContext
+ private var scope: CoroutineScope? = null
+
+ override fun start() {
+ scope = browserStore.flowScoped { flow ->
+ flow.map { state -> state.privateTabs.isNotEmpty() }
+ .distinctUntilChanged()
+ .collect { hasPrivateTabs ->
+ if (hasPrivateTabs) {
+ SessionNotificationService.start(applicationContext, permissionRequestHandler)
+ } else {
+ SessionNotificationService.stop(applicationContext)
+ }
+ }
+ }
+ }
+
+ override fun stop() {
+ scope?.cancel()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/SessionNotificationService.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/SessionNotificationService.kt
new file mode 100644
index 0000000000..0360d30179
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/SessionNotificationService.kt
@@ -0,0 +1,240 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.session
+
+import android.app.Notification
+import android.app.NotificationChannel
+import android.app.NotificationManager
+import android.app.PendingIntent
+import android.app.Service
+import android.content.Context
+import android.content.Intent
+import android.os.Build
+import android.os.IBinder
+import android.os.RemoteException
+import androidx.core.app.NotificationCompat
+import androidx.core.content.ContextCompat
+import mozilla.components.service.glean.private.NoExtras
+import mozilla.components.support.base.log.logger.Logger
+import mozilla.components.support.utils.ThreadUtils
+import mozilla.components.support.utils.ext.stopForegroundCompat
+import org.mozilla.focus.GleanMetrics.Notifications
+import org.mozilla.focus.GleanMetrics.RecentApps
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.MainActivity
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.utils.IntentUtils
+
+/**
+ * As long as a session is active this service will keep the notification (and our process) alive.
+ */
+class SessionNotificationService : Service() {
+
+ private var shouldSendTaskRemovedTelemetry = true
+
+ private val notificationManager: NotificationManager by lazy {
+ applicationContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
+ }
+
+ override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
+ val action = intent.action ?: return START_NOT_STICKY
+
+ when (action) {
+ ACTION_START -> {
+ // Notifications permission is only needed on Android 13 devices and later.
+ val areNotificationsEnabled =
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ try {
+ notificationManager.areNotificationsEnabled()
+ } catch (e: RemoteException) {
+ Logger.warn("Failed to check notifications state", e)
+ false
+ }
+ } else {
+ true
+ }
+
+ if (areNotificationsEnabled) {
+ createNotificationChannelIfNeeded()
+ startForeground(NOTIFICATION_ID, buildNotification())
+ } else {
+ permissionHandler?.invoke()
+ }
+ }
+
+ ACTION_ERASE -> {
+ Notifications.notificationTapped.record(NoExtras())
+
+ shouldSendTaskRemovedTelemetry = false
+
+ if (VisibilityLifeCycleCallback.isInBackground(this)) {
+ VisibilityLifeCycleCallback.finishAndRemoveTaskIfInBackground(this)
+ } else {
+ val eraseIntent = Intent(this, MainActivity::class.java)
+
+ eraseIntent.action = MainActivity.ACTION_ERASE
+ eraseIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
+
+ startActivity(eraseIntent)
+ }
+ }
+
+ else -> throw IllegalStateException("Unknown intent: $intent")
+ }
+
+ return START_NOT_STICKY
+ }
+
+ override fun onTaskRemoved(rootIntent: Intent) {
+ // Do not double send telemetry for notification erase event
+ if (shouldSendTaskRemovedTelemetry) {
+ RecentApps.appRemovedFromList.record(NoExtras())
+ }
+
+ components.tabsUseCases.removeAllTabs()
+
+ stopForegroundCompat(true)
+ stopSelf()
+ }
+
+ private fun buildNotification(): Notification {
+ val eraseIntent = createEraseIntent()
+ val contentTitle = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
+ getString(R.string.notification_erase_title_android_14)
+ } else {
+ getString(R.string.app_name)
+ }
+
+ val contentText = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
+ getString(R.string.notification_erase_text_android_14_1)
+ } else {
+ getString(R.string.notification_erase_text)
+ }
+
+ return NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)
+ .setOngoing(true)
+ .setSmallIcon(R.drawable.ic_notification)
+ .setContentTitle(contentTitle)
+ .setContentText(contentText)
+ .setContentIntent(eraseIntent)
+ .setVisibility(NotificationCompat.VISIBILITY_SECRET)
+ .setShowWhen(false)
+ .setLocalOnly(true)
+ .setColor(ContextCompat.getColor(this, R.color.accentBright))
+ .addAction(
+ NotificationCompat.Action(
+ R.drawable.ic_notification,
+ getString(R.string.notification_action_open),
+ createOpenActionIntent(),
+ ),
+ )
+ .addAction(
+ NotificationCompat.Action(
+ R.drawable.mozac_ic_delete_24,
+ getString(R.string.notification_action_erase_and_open),
+ createOpenAndEraseActionIntent(),
+ ),
+ )
+ .apply {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
+ setDeleteIntent(eraseIntent)
+ }
+ }
+ .build()
+ }
+
+ private fun createEraseIntent(): PendingIntent {
+ val notificationIntentFlags =
+ IntentUtils.defaultIntentPendingFlags() or PendingIntent.FLAG_ONE_SHOT
+ val intent = Intent(this, SessionNotificationService::class.java)
+ intent.action = ACTION_ERASE
+
+ return PendingIntent.getService(this, 0, intent, notificationIntentFlags)
+ }
+
+ private fun createOpenActionIntent(): PendingIntent {
+ val openActionIntentFlags =
+ IntentUtils.defaultIntentPendingFlags() or PendingIntent.FLAG_UPDATE_CURRENT
+ val intent = Intent(this, MainActivity::class.java)
+ intent.action = MainActivity.ACTION_OPEN
+
+ return PendingIntent.getActivity(this, 1, intent, openActionIntentFlags)
+ }
+
+ private fun createOpenAndEraseActionIntent(): PendingIntent {
+ val openAndEraseActionIntentFlags =
+ IntentUtils.defaultIntentPendingFlags() or PendingIntent.FLAG_UPDATE_CURRENT
+ val intent = Intent(this, MainActivity::class.java)
+
+ intent.action = MainActivity.ACTION_ERASE
+ intent.putExtra(MainActivity.EXTRA_NOTIFICATION, true)
+ intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP
+
+ return PendingIntent.getActivity(this, 2, intent, openAndEraseActionIntentFlags)
+ }
+
+ private fun createNotificationChannelIfNeeded() {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
+ // Notification channels are only available on Android O or higher.
+ return
+ }
+
+ val notificationChannelName = getString(R.string.notification_browsing_session_channel_name)
+ val notificationChannelDescription = getString(
+ R.string.notification_browsing_session_channel_description,
+ getString(R.string.app_name),
+ )
+
+ val channel = NotificationChannel(
+ NOTIFICATION_CHANNEL_ID,
+ notificationChannelName,
+ NotificationManager.IMPORTANCE_MIN,
+ )
+ channel.importance = NotificationManager.IMPORTANCE_LOW
+ channel.description = notificationChannelDescription
+ channel.enableLights(false)
+ channel.enableVibration(false)
+ channel.setShowBadge(false)
+
+ notificationManager.createNotificationChannel(channel)
+ }
+
+ override fun onBind(intent: Intent): IBinder? {
+ return null
+ }
+
+ companion object {
+ private var permissionHandler: (() -> Unit)? = null
+ private const val NOTIFICATION_ID = 83
+ private const val NOTIFICATION_CHANNEL_ID = "browsing-session"
+
+ private const val ACTION_START = "start"
+ private const val ACTION_ERASE = "erase"
+
+ internal fun start(context: Context, permissionHandler: (() -> Unit)) {
+ val intent = Intent(context, SessionNotificationService::class.java)
+ intent.action = ACTION_START
+ this.permissionHandler = permissionHandler
+
+ // For #2901: The application is crashing due to the service not calling `startForeground`
+ // before it times out. so this is a speculative fix to decrease the time between these two
+ // calls by running this after potentially expensive calls in FocusApplication.onCreate and
+ // BrowserFragment.inflateView by posting it to the end of the main thread.
+ ThreadUtils.postToMainThread {
+ context.startService(intent)
+ }
+ }
+
+ internal fun stop(context: Context) {
+ val intent = Intent(context, SessionNotificationService::class.java)
+
+ // We want to make sure we always call stop after start. So we're
+ // putting these actions on the same sequential run queue.
+ ThreadUtils.postToMainThread {
+ context.stopService(intent)
+ }
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/VisibilityLifeCycleCallback.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/VisibilityLifeCycleCallback.kt
new file mode 100644
index 0000000000..272eeaef55
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/VisibilityLifeCycleCallback.kt
@@ -0,0 +1,81 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.session
+
+import android.app.Activity
+import android.app.ActivityManager
+import android.app.Application.ActivityLifecycleCallbacks
+import android.content.ComponentCallbacks2
+import android.content.Context
+import android.content.res.Configuration
+import android.os.Bundle
+import org.mozilla.focus.FocusApplication
+import org.mozilla.focus.appreview.AppReviewUtils.Companion.addAppOpenings
+
+/**
+ * This ActivityLifecycleCallbacks implementations tracks if there is at least one activity in the
+ * STARTED state (meaning some part of our application is visible).
+ * Based on this information the current task can be removed if the app is not visible.
+ */
+@Suppress("TooManyFunctions", "EmptyFunctionBlock")
+class VisibilityLifeCycleCallback(private val context: Context) : ActivityLifecycleCallbacks, ComponentCallbacks2 {
+ /**
+ * Activities are not stopped/started in an ordered way. So we are using
+ */
+ private var activitiesInStartedState = 0
+ private var appInForeground = false
+ private fun finishAndRemoveTaskIfInBackground() {
+ if (activitiesInStartedState == 0) {
+ val activityManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
+ for (task in activityManager.appTasks) {
+ task.finishAndRemoveTask()
+ }
+ }
+ }
+
+ override fun onActivityStarted(activity: Activity) {
+ activitiesInStartedState++
+ }
+
+ override fun onActivityStopped(activity: Activity) {
+ activitiesInStartedState--
+ }
+
+ override fun onActivityResumed(activity: Activity) {}
+ override fun onActivityPaused(activity: Activity) {}
+ override fun onActivityCreated(activity: Activity, bundle: Bundle?) {
+ if (!appInForeground) {
+ appInForeground = true
+ addAppOpenings(context)
+ }
+ }
+
+ override fun onActivitySaveInstanceState(activity: Activity, bundle: Bundle) {}
+ override fun onActivityDestroyed(activity: Activity) {}
+ override fun onTrimMemory(level: Int) {
+ if (level == ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN) {
+ appInForeground = false
+ }
+ }
+
+ override fun onConfigurationChanged(newConfig: Configuration) {}
+ override fun onLowMemory() {}
+
+ companion object {
+ /**
+ * If all activities of this app are in the background then finish and remove all tasks. After
+ * that the app won't show up in "recent apps" anymore.
+ */
+ fun finishAndRemoveTaskIfInBackground(context: Context) {
+ (context.applicationContext as FocusApplication)
+ .visibilityLifeCycleCallback
+ ?.finishAndRemoveTaskIfInBackground()
+ }
+
+ fun isInBackground(context: Context): Boolean {
+ return (context.applicationContext as FocusApplication)
+ .visibilityLifeCycleCallback?.activitiesInStartedState == 0
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/ui/TabViewHolder.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/ui/TabViewHolder.kt
new file mode 100644
index 0000000000..250c74d716
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/ui/TabViewHolder.kt
@@ -0,0 +1,51 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.session.ui
+
+import androidx.recyclerview.widget.RecyclerView
+import mozilla.components.browser.state.state.TabSessionState
+import org.mozilla.focus.R
+import org.mozilla.focus.databinding.ItemSessionBinding
+import org.mozilla.focus.ext.beautifyUrl
+import java.lang.ref.WeakReference
+
+class TabViewHolder(
+ private val binding: ItemSessionBinding,
+) : RecyclerView.ViewHolder(binding.root) {
+
+ private var tabReference: WeakReference<TabSessionState> = WeakReference<TabSessionState>(null)
+
+ fun bind(
+ tab: TabSessionState,
+ isCurrentSession: Boolean,
+ selectSession: (TabSessionState) -> Unit,
+ closeSession: (TabSessionState) -> Unit,
+ ) {
+ tabReference = WeakReference(tab)
+
+ val drawable = if (isCurrentSession) {
+ R.drawable.background_list_item_current_session
+ } else {
+ R.drawable.background_list_item_session
+ }
+
+ val title = tab.content.title.ifEmpty { tab.content.url.beautifyUrl() }
+
+ binding.sessionItem.setBackgroundResource(drawable)
+ binding.sessionTitle.apply {
+ setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_link, 0, 0, 0)
+ text = title
+ setOnClickListener {
+ val clickedTab = tabReference.get() ?: return@setOnClickListener
+ selectSession(clickedTab)
+ }
+ }
+
+ binding.closeButton.setOnClickListener {
+ val clickedTab = tabReference.get() ?: return@setOnClickListener
+ closeSession(clickedTab)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/ui/TabsAdapter.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/ui/TabsAdapter.kt
new file mode 100644
index 0000000000..425ce4266c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/ui/TabsAdapter.kt
@@ -0,0 +1,40 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.session.ui
+
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+import mozilla.components.browser.state.state.TabSessionState
+import org.mozilla.focus.databinding.ItemSessionBinding
+
+/**
+ * Adapter implementation to show a list of active tabs.
+ */
+class TabsAdapter internal constructor(
+ private val tabList: List<TabSessionState>,
+ private val isCurrentSession: (TabSessionState) -> Boolean,
+ private val selectSession: (TabSessionState) -> Unit,
+ private val closeSession: (TabSessionState) -> Unit,
+) : RecyclerView.Adapter<TabViewHolder>() {
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TabViewHolder {
+ val binding =
+ ItemSessionBinding.inflate(LayoutInflater.from(parent.context), parent, false)
+ return TabViewHolder(binding)
+ }
+
+ override fun onBindViewHolder(holder: TabViewHolder, position: Int) {
+ val currentItem = tabList[position]
+ holder.bind(
+ currentItem,
+ isCurrentSession = isCurrentSession.invoke(currentItem),
+ selectSession = selectSession,
+ closeSession = closeSession,
+ )
+ }
+
+ override fun getItemCount() = tabList.size
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/ui/TabsPopup.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/ui/TabsPopup.kt
new file mode 100644
index 0000000000..044da53ea6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/session/ui/TabsPopup.kt
@@ -0,0 +1,78 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.session.ui
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import android.widget.FrameLayout
+import android.widget.PopupWindow
+import androidx.recyclerview.widget.LinearLayoutManager
+import mozilla.components.browser.state.selector.privateTabs
+import mozilla.components.browser.state.state.TabSessionState
+import org.mozilla.focus.Components
+import org.mozilla.focus.GleanMetrics.TabCount
+import org.mozilla.focus.databinding.PopupTabsBinding
+import org.mozilla.focus.state.AppAction
+
+class TabsPopup(
+ private val parentView: ViewGroup,
+ private val components: Components,
+) : PopupWindow() {
+ private lateinit var binding: PopupTabsBinding
+
+ init {
+ initializeLayout()
+ }
+
+ private fun initializeLayout() {
+ val layoutInflater =
+ parentView.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
+ binding = PopupTabsBinding.inflate(layoutInflater, parentView, false)
+ val sessionsAdapter = TabsAdapter(
+ tabList = components.store.state.privateTabs,
+ isCurrentSession = { tab -> isCurrentSession(tab) },
+ selectSession = { tab -> selectSession(tab) },
+ closeSession = { tab -> closeSession(tab) },
+ )
+
+ binding.sessions.apply {
+ adapter = sessionsAdapter
+ layoutManager = LinearLayoutManager(parentView.context)
+ setHasFixedSize(true)
+ }
+ contentView = binding.root
+ isFocusable = true
+ width = FrameLayout.LayoutParams.WRAP_CONTENT
+ height = FrameLayout.LayoutParams.WRAP_CONTENT
+ animationStyle = android.R.style.Animation_Dialog
+ binding.root.setOnClickListener { dismiss() }
+ }
+
+ override fun dismiss() {
+ super.dismiss()
+ val openedTabs = components.store.state.tabs.size
+ TabCount.sessionListClosed.record(TabCount.SessionListClosedExtra(openedTabs))
+
+ components.appStore.dispatch(AppAction.HideTabs)
+ }
+
+ private fun isCurrentSession(tab: TabSessionState): Boolean {
+ return components.store.state.selectedTabId == tab.id
+ }
+
+ private fun selectSession(tab: TabSessionState) {
+ components.tabsUseCases.selectTab.invoke(tab.id)
+ val openedTabs = components.store.state.tabs.size
+ TabCount.sessionListItemTapped.record(TabCount.SessionListItemTappedExtra(openedTabs))
+ dismiss()
+ }
+
+ private fun closeSession(tab: TabSessionState) {
+ components.tabsUseCases.removeTab.invoke(tab.id, selectParentIfExists = false)
+ val openedTabs = components.store.state.tabs.size
+ TabCount.sessionListItemTapped.record(TabCount.SessionListItemTappedExtra(openedTabs))
+ dismiss()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/AboutLibrariesFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/AboutLibrariesFragment.kt
new file mode 100644
index 0000000000..d400ac4855
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/AboutLibrariesFragment.kt
@@ -0,0 +1,27 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings
+
+import mozilla.components.support.license.LibrariesListFragment
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.showToolbar
+
+/**
+ * Displays the list of software licenses used within the app and it's full license content.
+ */
+class AboutLibrariesFragment : LibrariesListFragment() {
+ override val licenseData = LicenseData(
+ licenses = R.raw.third_party_licenses,
+ metadata = R.raw.third_party_license_metadata,
+ )
+
+ override fun onResume() {
+ super.onResume()
+
+ val appName = getString(R.string.app_name)
+ val pageTitle = getString(R.string.open_source_licenses_title, appName)
+ showToolbar(pageTitle)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/BaseComposeFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/BaseComposeFragment.kt
new file mode 100644
index 0000000000..a0e9217398
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/BaseComposeFragment.kt
@@ -0,0 +1,130 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+@file:Suppress("UnusedMaterialScaffoldPaddingParameter")
+
+package org.mozilla.focus.settings
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.statusBarsPadding
+import androidx.compose.material.Icon
+import androidx.compose.material.IconButton
+import androidx.compose.material.Scaffold
+import androidx.compose.material.Text
+import androidx.compose.material.TopAppBar
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.ComposeView
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.fragment.app.Fragment
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.MainActivity
+import org.mozilla.focus.ext.hideToolbar
+import org.mozilla.focus.ui.theme.FocusTheme
+import org.mozilla.focus.ui.theme.focusColors
+
+/**
+ * Fragment acting as a wrapper over a [Composable] which will be shown below a [TopAppBar].
+ *
+ * Useful for Fragments shown in otherwise fullscreen Activities such that they would be shown
+ * beneath the status bar not below it.
+ *
+ * Classes extending this are expected to provide the [Composable] content and a basic behavior
+ * for the toolbar: title and navigate up callback.
+ */
+abstract class BaseComposeFragment : Fragment() {
+ /**
+ * Screen title shown in toolbar.
+ */
+ open val titleRes: Int? = null
+
+ open val titleText: String? = null
+
+ /**
+ * Callback for the up navigation button shown in toolbar.
+ */
+ abstract fun onNavigateUp(): () -> Unit
+
+ /**
+ * content of the screen in compose. That will be shown below Toolbar
+ */
+ @Composable
+ abstract fun Content()
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?,
+ ): View {
+ hideToolbar()
+ (requireActivity() as? MainActivity)?.hideStatusBarBackground()
+
+ return ComposeView(requireContext()).apply {
+ setContent {
+ val title = getTitle()
+ FocusTheme {
+ Scaffold(
+ modifier = Modifier
+ .background(colorResource(id = R.color.settings_background))
+ .statusBarsPadding(),
+ ) { paddingValues ->
+ Column {
+ TopAppBar(
+ title = title,
+ modifier = Modifier.padding(paddingValues),
+ onNavigateUpClick = onNavigateUp(),
+ )
+ this@BaseComposeFragment.Content()
+ }
+ }
+ }
+ }
+ isTransitionGroup = true
+ }
+ }
+
+ private fun getTitle(): String {
+ var title = ""
+ titleRes?.let { title = getString(it) }
+ titleText?.let { title = it }
+ return title
+ }
+}
+
+@Composable
+private fun TopAppBar(
+ title: String,
+ modifier: Modifier = Modifier,
+ onNavigateUpClick: () -> Unit,
+) {
+ TopAppBar(
+ title = {
+ Text(
+ text = title,
+ color = focusColors.toolbarColor,
+ )
+ },
+ modifier = modifier,
+ navigationIcon = {
+ IconButton(
+ onClick = onNavigateUpClick,
+ ) {
+ Icon(
+ painterResource(id = R.drawable.mozac_ic_back_24),
+ stringResource(R.string.go_back),
+ tint = focusColors.toolbarColor,
+ )
+ }
+ },
+ backgroundColor = colorResource(R.color.settings_background),
+ )
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/BaseSettingsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/BaseSettingsFragment.kt
new file mode 100644
index 0000000000..9c6aeea8d9
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/BaseSettingsFragment.kt
@@ -0,0 +1,35 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings
+
+import android.os.Bundle
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
+import android.view.View
+import androidx.core.view.MenuHost
+import androidx.core.view.MenuProvider
+import androidx.lifecycle.Lifecycle
+import androidx.preference.PreferenceFragmentCompat
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.MainActivity
+
+abstract class BaseSettingsFragment : PreferenceFragmentCompat(), MenuProvider {
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ val menuHost: MenuHost = requireHost() as MenuHost
+ menuHost.addMenuProvider(this, viewLifecycleOwner, Lifecycle.State.RESUMED)
+
+ // Customize status bar background if the parent activity can be casted to MainActivity
+ (requireActivity() as? MainActivity)?.customizeStatusBar(R.color.settings_background)
+ }
+
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
+ // no-op
+ }
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean = false
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/BaseSettingsLikeFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/BaseSettingsLikeFragment.kt
new file mode 100644
index 0000000000..ada19e0c5e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/BaseSettingsLikeFragment.kt
@@ -0,0 +1,40 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings
+
+import android.os.Bundle
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
+import android.view.View
+import androidx.core.view.MenuHost
+import androidx.core.view.MenuProvider
+import androidx.fragment.app.Fragment
+import androidx.lifecycle.Lifecycle
+import androidx.preference.PreferenceFragmentCompat
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.MainActivity
+
+/**
+ * Similar behavior as [BaseSettingsFragment], but doesn't extend [PreferenceFragmentCompat] and is
+ * a regular [Fragment] instead.
+ */
+open class BaseSettingsLikeFragment : Fragment(), MenuProvider {
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ val menuHost: MenuHost = requireHost() as MenuHost
+ menuHost.addMenuProvider(this, viewLifecycleOwner, Lifecycle.State.RESUMED)
+
+ // Customize status bar background if the parent activity can be casted to MainActivity
+ (requireActivity() as? MainActivity)?.customizeStatusBar(R.color.settings_background)
+ }
+
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
+ // no-op
+ }
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean = false
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/GeneralSettingsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/GeneralSettingsFragment.kt
new file mode 100644
index 0000000000..a87a6cc8f2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/GeneralSettingsFragment.kt
@@ -0,0 +1,141 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings
+
+import android.content.SharedPreferences
+import android.os.Build
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatDelegate
+import androidx.preference.Preference
+import androidx.preference.PreferenceManager
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.requirePreference
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.locale.screen.LanguageStorage.Companion.LOCALE_SYSTEM_DEFAULT
+import org.mozilla.focus.locale.screen.LocaleDescriptor
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+import org.mozilla.focus.widget.DefaultBrowserPreference
+
+@Suppress("TooManyFunctions") // code is split into multiple functions with their own purpose.
+class GeneralSettingsFragment :
+ BaseSettingsFragment() {
+
+ private lateinit var radioLightTheme: RadioButtonPreference
+ private lateinit var radioDarkTheme: RadioButtonPreference
+ private lateinit var radioDefaultTheme: RadioButtonPreference
+
+ private lateinit var defaultBrowserPreference: DefaultBrowserPreference
+
+ override fun onCreatePreferences(p0: Bundle?, p1: String?) {
+ addPreferencesFromResource(R.xml.general_settings)
+ setupPreferences()
+ }
+
+ override fun onResume() {
+ super.onResume()
+ defaultBrowserPreference.update()
+ showToolbar(getString(R.string.preference_category_general))
+ }
+
+ private fun setupPreferences() {
+ setupDefaultBrowserPreference()
+ bindLocalePreference()
+ bindLightTheme()
+ bindDarkTheme()
+ bindDefaultTheme()
+ setupRadioGroups()
+ }
+
+ private fun bindLocalePreference() {
+ val localePreference: Preference = requirePreference(R.string.pref_key_locale)
+ localePreference.summary = getLocaleSummary()
+ localePreference.setOnPreferenceClickListener {
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(Screen.Settings.Page.Locale),
+ )
+ true
+ }
+ }
+
+ private fun setupDefaultBrowserPreference() {
+ defaultBrowserPreference = requirePreference(R.string.pref_key_default_browser)
+ }
+
+ private fun bindLightTheme() {
+ radioLightTheme = requirePreference(R.string.pref_key_light_theme)
+ radioLightTheme.onClickListener {
+ setNewTheme(AppCompatDelegate.MODE_NIGHT_NO)
+ }
+ }
+
+ private fun bindDarkTheme() {
+ radioDarkTheme = requirePreference(R.string.pref_key_dark_theme)
+ radioDarkTheme.onClickListener {
+ setNewTheme(AppCompatDelegate.MODE_NIGHT_YES)
+ }
+ }
+
+ private fun bindDefaultTheme() {
+ radioDefaultTheme = requirePreference(R.string.pref_key_default_theme)
+ val defaultThemeTitle = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+ context?.getString(R.string.preference_follow_device_theme)
+ } else {
+ context?.getString(R.string.preference_auto_battery_theme)
+ }
+
+ radioDefaultTheme.apply {
+ title = defaultThemeTitle
+ onClickListener {
+ setDefaultTheme()
+ }
+ }
+ }
+
+ private fun getLocaleSummary(): CharSequence? {
+ val sharedConfig: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
+ val value: String? =
+ sharedConfig.getString(
+ resources.getString(R.string.pref_key_locale),
+ resources.getString(R.string.preference_language_systemdefault),
+ )
+ return value?.let {
+ if (value.isEmpty() || value == LOCALE_SYSTEM_DEFAULT) {
+ return resources.getString(R.string.preference_language_systemdefault)
+ }
+ LocaleDescriptor(it).getNativeName()
+ }
+ }
+
+ private fun setupRadioGroups() {
+ addToRadioGroup(
+ radioLightTheme,
+ radioDarkTheme,
+ radioDefaultTheme,
+ )
+ }
+
+ private fun setNewTheme(mode: Int) {
+ if (AppCompatDelegate.getDefaultNightMode() == mode) return
+ AppCompatDelegate.setDefaultNightMode(mode)
+ activity?.recreate()
+
+ requireComponents.engine.settings.preferredColorScheme = requireComponents.settings.getPreferredColorScheme()
+ requireComponents.sessionUseCases.reload.invoke()
+ }
+
+ private fun setDefaultTheme() {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+ AppCompatDelegate.setDefaultNightMode(
+ AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM,
+ )
+ } else {
+ AppCompatDelegate.setDefaultNightMode(
+ AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY,
+ )
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/HttpsOnlyModePreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/HttpsOnlyModePreference.kt
new file mode 100644
index 0000000000..6c6dcbd895
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/HttpsOnlyModePreference.kt
@@ -0,0 +1,35 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings
+
+import android.content.Context
+import android.util.AttributeSet
+import mozilla.components.concept.engine.Engine
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.utils.SupportUtils
+
+/**
+ * Preference for HTTPS-Only mode.
+ */
+class HttpsOnlyModePreference(
+ context: Context,
+ attrs: AttributeSet?,
+) : LearnMoreSwitchPreference(context, attrs) {
+
+ override fun getLearnMoreUrl() =
+ SupportUtils.getGenericSumoURLForTopic(SupportUtils.SumoTopic.HTTPS_ONLY)
+
+ init {
+ setOnPreferenceChangeListener { _, newValue ->
+ val enableHttpsOnly = newValue as Boolean
+ context.components.engine.settings.httpsOnlyMode = if (enableHttpsOnly) {
+ Engine.HttpsOnlyMode.ENABLED
+ } else {
+ Engine.HttpsOnlyMode.DISABLED
+ }
+ true
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/InstalledSearchEnginesSettingsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/InstalledSearchEnginesSettingsFragment.kt
new file mode 100644
index 0000000000..0a047ea63c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/InstalledSearchEnginesSettingsFragment.kt
@@ -0,0 +1,138 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings
+
+import android.os.Bundle
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
+import androidx.preference.Preference
+import mozilla.components.browser.state.state.SearchState
+import mozilla.components.browser.state.state.availableSearchEngines
+import mozilla.components.browser.state.state.searchEngines
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.feature.search.SearchUseCases
+import mozilla.components.service.glean.private.NoExtras
+import org.mozilla.focus.GleanMetrics.SearchEngines
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.search.RadioSearchEngineListPreference
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+import kotlin.collections.forEach as withEach
+
+class InstalledSearchEnginesSettingsFragment : BaseSettingsFragment() {
+ override fun onCreatePreferences(p0: Bundle?, p1: String?) {
+ //
+ }
+
+ companion object {
+ fun newInstance() = InstalledSearchEnginesSettingsFragment()
+ var languageChanged: Boolean = false
+ }
+
+ override fun onResume() {
+ super.onResume()
+
+ showToolbar(getString(R.string.preference_choose_search_engine))
+
+ if (languageChanged) {
+ restoreSearchEngines()
+ } else {
+ refetchSearchEngines()
+ }
+ }
+
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
+ super.onCreateMenu(menu, menuInflater)
+ menuInflater.inflate(R.menu.menu_search_engines, menu)
+ }
+
+ override fun onPrepareMenu(menu: Menu) {
+ super.onPrepareMenu(menu)
+ menu.findItem(R.id.menu_restore_default_engines)?.let {
+ it.isEnabled = !requireComponents.store.state.search.hasDefaultSearchEnginesOnly()
+ }
+ }
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
+ val currentEnginesCount = requireComponents.store.state.search.searchEngines.size
+
+ return when (menuItem.itemId) {
+ R.id.menu_remove_search_engines -> {
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(Screen.Settings.Page.SearchRemove),
+ )
+ SearchEngines.openRemoveScreen.record(
+ SearchEngines.OpenRemoveScreenExtra(currentEnginesCount),
+ )
+
+ true
+ }
+ R.id.menu_restore_default_engines -> {
+ restoreSearchEngines()
+ SearchEngines.restoreDefaultEngines.record(
+ SearchEngines.RestoreDefaultEnginesExtra(currentEnginesCount),
+ )
+ true
+ }
+ else -> false
+ }
+ }
+
+ private fun restoreSearchEngines() {
+ restoreSearchDefaults(requireComponents.store, requireComponents.searchUseCases)
+ refetchSearchEngines()
+ languageChanged = false
+ }
+
+ override fun onPreferenceTreeClick(preference: Preference): Boolean {
+ return when (preference.key) {
+ resources.getString(R.string.pref_key_manual_add_search_engine) -> {
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(page = Screen.Settings.Page.SearchAdd),
+ )
+ SearchEngines.addEngineTapped.record(NoExtras())
+
+ return true
+ }
+ else -> {
+ super.onPreferenceTreeClick(preference)
+ }
+ }
+ }
+
+ /**
+ * Refresh search engines list.
+ */
+ private fun refetchSearchEngines() {
+ // Refresh this preference screen to display changes.
+ preferenceScreen?.removeAll()
+ addPreferencesFromResource(R.xml.search_engine_settings)
+
+ val pref: RadioSearchEngineListPreference? = preferenceScreen.findPreference(
+ resources.getString(R.string.pref_key_radio_search_engine_list),
+ )
+ pref?.refetchSearchEngines()
+ }
+}
+
+private fun SearchState.hasDefaultSearchEnginesOnly(): Boolean {
+ return availableSearchEngines.isEmpty() && additionalSearchEngines.isEmpty() && customSearchEngines.isEmpty()
+}
+
+private fun restoreSearchDefaults(store: BrowserStore, useCases: SearchUseCases) {
+ store.state.search.customSearchEngines.withEach { searchEngine ->
+ useCases.removeSearchEngine(
+ searchEngine,
+ )
+ }
+ store.state.search.hiddenSearchEngines.withEach { searchEngine ->
+ useCases.addSearchEngine(
+ searchEngine,
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/LearnMoreSwitchPreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/LearnMoreSwitchPreference.kt
new file mode 100644
index 0000000000..9da6eaf2b2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/LearnMoreSwitchPreference.kt
@@ -0,0 +1,58 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings
+
+import android.content.Context
+import android.util.AttributeSet
+import android.widget.TextView
+import androidx.core.view.isVisible
+import androidx.preference.PreferenceViewHolder
+import androidx.preference.SwitchPreferenceCompat
+import mozilla.components.browser.state.state.SessionState
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.state.AppAction
+
+abstract class LearnMoreSwitchPreference(context: Context, attrs: AttributeSet?) :
+ SwitchPreferenceCompat(context, attrs) {
+
+ init {
+ layoutResource = R.layout.preference_switch_learn_more
+ }
+
+ override fun onBindViewHolder(holder: PreferenceViewHolder) {
+ super.onBindViewHolder(holder)
+
+ getDescription()?.let {
+ val summaryView = holder.findViewById(android.R.id.summary) as TextView
+ summaryView.text = it
+ summaryView.isVisible = true
+ }
+
+ val learnMoreLink = holder.findViewById(R.id.link) as TextView
+ learnMoreLink.setOnClickListener {
+ val tabId = context.components.tabsUseCases.addTab(
+ getLearnMoreUrl(),
+ source = SessionState.Source.Internal.Menu,
+ selectTab = true,
+ private = true,
+ )
+
+ context.components.appStore.dispatch(
+ AppAction.OpenTab(tabId),
+ )
+ }
+
+ val backgroundDrawableArray =
+ context.obtainStyledAttributes(intArrayOf(R.attr.selectableItemBackground))
+ val backgroundDrawable = backgroundDrawableArray.getDrawable(0)
+ backgroundDrawableArray.recycle()
+ learnMoreLink.background = backgroundDrawable
+ }
+
+ open fun getDescription(): String? = null
+
+ abstract fun getLearnMoreUrl(): String
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/ManualAddSearchEngineSettingsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/ManualAddSearchEngineSettingsFragment.kt
new file mode 100644
index 0000000000..8fff732ef0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/ManualAddSearchEngineSettingsFragment.kt
@@ -0,0 +1,262 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings
+
+import android.net.Uri
+import android.os.Bundle
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
+import android.view.View
+import android.view.ViewGroup
+import android.widget.EditText
+import androidx.annotation.WorkerThread
+import androidx.core.view.forEach
+import com.google.android.material.snackbar.Snackbar
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.cancel
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.isActive
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+import mozilla.components.browser.icons.IconRequest
+import mozilla.components.browser.state.state.searchEngines
+import mozilla.components.concept.fetch.Client
+import mozilla.components.concept.fetch.Request
+import mozilla.components.concept.fetch.Request.Redirect.FOLLOW
+import mozilla.components.feature.search.ext.createSearchEngine
+import mozilla.components.service.glean.private.NoExtras
+import mozilla.components.support.ktx.util.URLStringUtils
+import org.mozilla.focus.GleanMetrics.SearchEngines
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.search.ManualAddSearchEnginePreference
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.utils.SupportUtils
+import org.mozilla.focus.utils.ViewUtils
+import java.io.IOException
+import java.net.MalformedURLException
+import java.net.URL
+import java.util.concurrent.TimeUnit
+
+@Suppress("TooManyFunctions")
+class ManualAddSearchEngineSettingsFragment : BaseSettingsFragment() {
+ override fun onCreatePreferences(p0: Bundle?, p1: String?) {
+ addPreferencesFromResource(R.xml.manual_add_search_engine)
+ }
+
+ private var scope: CoroutineScope? = null
+ private var menuItemForActiveAsyncTask: MenuItem? = null
+ private var job: Job? = null
+
+ override fun onResume() {
+ super.onResume()
+
+ showToolbar(getString(R.string.action_option_add_search_engine))
+ }
+
+ override fun onPause() {
+ super.onPause()
+ setUiIsValidatingAsync(false, menuItemForActiveAsyncTask)
+ menuItemForActiveAsyncTask = null
+ }
+
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
+ menuInflater.inflate(R.menu.menu_search_engine_manual_add, menu)
+ }
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
+ val openLearnMore = {
+ val learnMoreUrl = SupportUtils.getSumoURLForTopic(
+ SupportUtils.getAppVersion(requireContext()),
+ SupportUtils.SumoTopic.ADD_SEARCH_ENGINE,
+ )
+ SupportUtils.openUrlInCustomTab(requireActivity(), learnMoreUrl)
+ SearchEngines.learnMoreTapped.record(NoExtras())
+
+ true
+ }
+
+ val saveSearchEngine = {
+ val engineName = requireView().findViewById<EditText>(R.id.edit_engine_name).text.toString()
+ val searchQuery = requireView().findViewById<EditText>(R.id.edit_search_string).text.toString()
+
+ val pref = findManualAddSearchEnginePreference(R.string.pref_key_manual_add_search_engine)
+
+ val existingEngines = requireContext().components.store.state.search.searchEngines
+ val engineValid = pref?.validateEngineNameAndShowError(engineName, existingEngines) ?: false
+ val searchValid = pref?.validateSearchQueryAndShowError(searchQuery) ?: false
+ val isPartialSuccess = engineValid && searchValid
+
+ if (isPartialSuccess) {
+ ViewUtils.hideKeyboard(view)
+ setUiIsValidatingAsync(true, menuItem)
+
+ menuItemForActiveAsyncTask = menuItem
+ scope?.launch {
+ validateSearchEngine(engineName, searchQuery, requireComponents.client)
+ }
+ } else {
+ SearchEngines.saveEngineTapped.record(SearchEngines.SaveEngineTappedExtra(false))
+ }
+
+ true
+ }
+
+ return when (menuItem.itemId) {
+ R.id.learn_more -> openLearnMore()
+ R.id.menu_save_search_engine -> saveSearchEngine()
+ else -> false
+ }
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?,
+ ): View {
+ scope = CoroutineScope(Dispatchers.IO)
+ return super.onCreateView(inflater, container, savedInstanceState)
+ }
+
+ override fun onDestroyView() {
+ scope?.cancel()
+ super.onDestroyView()
+ if (view != null) ViewUtils.hideKeyboard(view)
+ }
+
+ private fun setUiIsValidatingAsync(isValidating: Boolean, saveMenuItem: MenuItem?) {
+ val pref = findManualAddSearchEnginePreference(R.string.pref_key_manual_add_search_engine)
+ val updateViews = {
+ // Disable text entry until done validating
+ val viewGroup = view as ViewGroup
+ enableAllSubviews(!isValidating, viewGroup)
+
+ saveMenuItem?.isEnabled = !isValidating
+ }
+
+ if (isValidating) {
+ view?.alpha = DISABLED_ALPHA
+ // Delay showing the loading indicator to prevent it flashing on the screen
+ job = scope?.launch(Dispatchers.Main) {
+ delay(LOADING_INDICATOR_DELAY)
+ pref?.setProgressViewShown(isValidating)
+ updateViews()
+ }
+ } else {
+ view?.alpha = 1f
+ job?.cancel()
+ pref?.setProgressViewShown(isValidating)
+ updateViews()
+ }
+ }
+
+ private fun enableAllSubviews(shouldEnable: Boolean, viewGroup: ViewGroup) {
+ viewGroup.forEach { child ->
+ if (child is ViewGroup) {
+ enableAllSubviews(shouldEnable, child)
+ } else {
+ child.isEnabled = shouldEnable
+ }
+ }
+ }
+
+ private fun findManualAddSearchEnginePreference(id: Int): ManualAddSearchEnginePreference? {
+ return findPreference(getString(id)) as? ManualAddSearchEnginePreference
+ }
+
+ companion object {
+ private const val LOGTAG = "ManualAddSearchEngine"
+ private const val SEARCH_QUERY_VALIDATION_TIMEOUT_MILLIS = 4000
+ private const val VALID_RESPONSE_CODE_UPPER_BOUND = 300
+ private const val DISABLED_ALPHA = 0.5f
+ private const val LOADING_INDICATOR_DELAY: Long = 1000
+
+ @WorkerThread
+ @JvmStatic
+ fun isValidSearchQueryURL(client: Client, query: String): Boolean {
+ // we should share the code to substitute and normalize the search string (see SearchEngine.buildSearchUrl).
+ val encodedTestQuery = Uri.encode("testSearchEngineValidation")
+
+ val normalizedHttpsSearchURLStr = URLStringUtils.toNormalizedURL(query)
+ val searchURLStr = normalizedHttpsSearchURLStr.replace("%s".toRegex(), encodedTestQuery)
+
+ try { URL(searchURLStr) } catch (e: MalformedURLException) {
+ // Don't log exception to avoid leaking URL.
+ Log.d(LOGTAG, "Failure to get response code from server: returning invalid search query")
+ return false
+ }
+
+ val request = Request(
+ url = searchURLStr,
+ connectTimeout = SEARCH_QUERY_VALIDATION_TIMEOUT_MILLIS.toLong() to TimeUnit.MILLISECONDS,
+ readTimeout = SEARCH_QUERY_VALIDATION_TIMEOUT_MILLIS.toLong() to TimeUnit.MILLISECONDS,
+ redirect = FOLLOW,
+ private = true,
+ )
+
+ return try {
+ val response = client.fetch(request)
+ // Close the response stream to ensure the body is closed correctly. See https://bugzilla.mozilla.org/show_bug.cgi?id=1603114.
+ response.close()
+
+ response.status < VALID_RESPONSE_CODE_UPPER_BOUND
+ } catch (e: IOException) {
+ Log.d(LOGTAG, "Failure to get response code from server: returning invalid search query")
+ false
+ }
+ }
+ }
+
+ private suspend fun validateSearchEngine(engineName: String, query: String, client: Client) {
+ val isValidSearchQuery = isValidSearchQueryURL(client, query)
+
+ withContext(Dispatchers.Main) {
+ if (!isActive) {
+ return@withContext
+ }
+
+ if (isValidSearchQuery) {
+ requireComponents.searchUseCases.addSearchEngine(
+ createSearchEngine(
+ engineName,
+ query.toSearchUrl(),
+ requireComponents.icons.loadIcon(IconRequest(query, isPrivate = true)).await().bitmap,
+ ),
+ )
+
+ ViewUtils.showBrandedSnackbar(requireView(), R.string.search_add_confirmation, Snackbar.LENGTH_SHORT)
+ requireActivity().settings.setDefaultSearchEngineByName(engineName)
+ SearchEngines.saveEngineTapped.record(SearchEngines.SaveEngineTappedExtra(true))
+
+ requireComponents.appStore.dispatch(
+ AppAction.NavigateUp(requireComponents.store.state.selectedTabId),
+ )
+ } else {
+ showServerError()
+ SearchEngines.saveEngineTapped.record(SearchEngines.SaveEngineTappedExtra(false))
+ }
+
+ setUiIsValidatingAsync(false, menuItemForActiveAsyncTask)
+ menuItemForActiveAsyncTask = null
+ }
+ }
+
+ private fun showServerError() {
+ val pref = findManualAddSearchEnginePreference(R.string.pref_key_manual_add_search_engine)
+ pref?.setSearchQueryErrorText(getString(R.string.error_hostLookup_title))
+ }
+}
+
+private fun String.toSearchUrl(): String {
+ return replace("%s", "{searchTerms}")
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/MozillaSettingsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/MozillaSettingsFragment.kt
new file mode 100644
index 0000000000..ddc0febdb7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/MozillaSettingsFragment.kt
@@ -0,0 +1,97 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings
+
+import android.os.Bundle
+import androidx.preference.Preference
+import mozilla.components.browser.state.state.SessionState
+import org.mozilla.focus.R
+import org.mozilla.focus.browser.LocalizedContent
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+import org.mozilla.focus.utils.AppConstants
+import org.mozilla.focus.utils.SupportUtils
+
+class MozillaSettingsFragment :
+ BaseSettingsFragment() {
+ override fun onCreatePreferences(p0: Bundle?, p1: String?) {
+ addPreferencesFromResource(R.xml.mozilla_settings)
+ }
+
+ override fun onResume() {
+ super.onResume()
+ showToolbar(getString(R.string.preference_category_mozilla))
+ }
+
+ override fun onPreferenceTreeClick(preference: Preference): Boolean {
+ // AppCompatActivity has a Toolbar that is used as the ActionBar, and it conflicts with the ActionBar
+ // used by PreferenceScreen to create the headers (with title, back navigation), so we wrap all these
+ // "preference screens" into separate activities.
+ val activity = activity ?: return super.onPreferenceTreeClick(preference)
+
+ when (preference.key) {
+ resources.getString(R.string.pref_key_about) -> {
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(Screen.Settings.Page.About),
+ )
+ }
+ resources.getString(R.string.pref_key_help) -> run {
+ val tabId = activity.components.tabsUseCases.addTab(
+ SupportUtils.HELP_URL,
+ source = SessionState.Source.Internal.Menu,
+ selectTab = true,
+ private = true,
+ )
+ requireComponents.appStore.dispatch(AppAction.OpenTab(tabId))
+ }
+ resources.getString(R.string.pref_key_rights) -> run {
+ val tabId = activity.components.tabsUseCases.addTab(
+ LocalizedContent.URL_RIGHTS,
+ source = SessionState.Source.Internal.Menu,
+ selectTab = true,
+ private = true,
+ )
+ requireComponents.appStore.dispatch(AppAction.OpenTab(tabId))
+ }
+ resources.getString(R.string.pref_key_privacy_notice) -> {
+ val url = if (AppConstants.isKlarBuild) {
+ SupportUtils.PRIVACY_NOTICE_KLAR_URL
+ } else {
+ SupportUtils.PRIVACY_NOTICE_URL
+ }
+
+ val tabId = activity.components.tabsUseCases.addTab(
+ url,
+ source = SessionState.Source.Internal.Menu,
+ selectTab = true,
+ private = true,
+ )
+ requireComponents.appStore.dispatch(AppAction.OpenTab(tabId))
+ }
+ resources.getString(R.string.pref_key_licensing_info) -> {
+ val tabId = activity.components.tabsUseCases.addTab(
+ "about:license",
+ source = SessionState.Source.Internal.Menu,
+ selectTab = true,
+ private = true,
+ )
+ requireComponents.appStore.dispatch(AppAction.OpenTab(tabId))
+ }
+ resources.getString(R.string.pref_key_libraries_we_use) -> {
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(Screen.Settings.Page.Licenses),
+ )
+ }
+ }
+ return super.onPreferenceTreeClick(preference)
+ }
+
+ companion object {
+ fun newInstance(): MozillaSettingsFragment = MozillaSettingsFragment()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/RadioButtonPreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/RadioButtonPreference.kt
new file mode 100644
index 0000000000..14eb33ac48
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/RadioButtonPreference.kt
@@ -0,0 +1,191 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.content.SharedPreferences
+import android.util.AttributeSet
+import android.widget.RadioButton
+import android.widget.TextView
+import androidx.appcompat.content.res.AppCompatResources
+import androidx.core.content.res.TypedArrayUtils.getAttr
+import androidx.core.content.withStyledAttributes
+import androidx.core.text.HtmlCompat
+import androidx.core.view.isVisible
+import androidx.preference.Preference
+import androidx.preference.PreferenceManager
+import androidx.preference.PreferenceViewHolder
+import mozilla.components.support.ktx.android.content.res.resolveAttribute
+import mozilla.components.support.ktx.android.view.putCompoundDrawablesRelative
+import org.mozilla.focus.R
+
+interface GroupableRadioButton {
+ fun updateRadioValue(isChecked: Boolean)
+
+ fun addToRadioGroup(radioButton: GroupableRadioButton)
+}
+
+/**
+ * Connect all the given radio buttons into a group,
+ * so that when one radio is checked the others are unchecked.
+ */
+fun addToRadioGroup(vararg radios: GroupableRadioButton) {
+ for (i in 0..radios.lastIndex) {
+ for (j in (i + 1)..radios.lastIndex) {
+ radios[i].addToRadioGroup(radios[j])
+ radios[j].addToRadioGroup(radios[i])
+ }
+ }
+}
+
+fun Iterable<GroupableRadioButton>.uncheckAll() {
+ forEach { it.updateRadioValue(isChecked = false) }
+}
+
+@SuppressLint("RestrictedApi")
+open class RadioButtonPreference @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+) : Preference(context, attrs), GroupableRadioButton {
+ private val radioGroups = mutableListOf<GroupableRadioButton>()
+ private var summaryView: TextView? = null
+ private var titleView: TextView? = null
+ private var radioButton: RadioButton? = null
+ private var shouldSummaryBeParsedAsHtmlContent: Boolean = true
+ private var defaultValue: Boolean = false
+ private var clickListener: (() -> Unit)? = null
+
+ private val preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
+
+ val isChecked: Boolean
+ get() = radioButton?.isChecked == true
+
+ init {
+ layoutResource = R.layout.preference_radio_button
+
+ context.withStyledAttributes(
+ attrs,
+ R.styleable.RadioButtonPreference,
+ getAttr(
+ context,
+ androidx.preference.R.attr.preferenceStyle,
+ android.R.attr.preferenceStyle,
+ ),
+ 0,
+ ) {
+ defaultValue = when {
+ hasValue(R.styleable.RadioButtonPreference_defaultValue) ->
+ getBoolean(R.styleable.RadioButtonPreference_defaultValue, false)
+ hasValue(R.styleable.RadioButtonPreference_android_defaultValue) ->
+ getBoolean(R.styleable.RadioButtonPreference_android_defaultValue, false)
+ else -> false
+ }
+ }
+ }
+
+ override fun addToRadioGroup(radioButton: GroupableRadioButton) {
+ radioGroups.add(radioButton)
+ }
+
+ fun onClickListener(listener: (() -> Unit)) {
+ clickListener = listener
+ }
+
+ override fun setEnabled(enabled: Boolean) {
+ super.setEnabled(enabled)
+ if (!enabled) {
+ summaryView?.alpha = HALF_ALPHA
+ titleView?.alpha = HALF_ALPHA
+ } else {
+ summaryView?.alpha = FULL_ALPHA
+ titleView?.alpha = FULL_ALPHA
+ }
+ }
+
+ override fun onBindViewHolder(holder: PreferenceViewHolder) {
+ super.onBindViewHolder(holder)
+
+ bindRadioButton(holder)
+
+ bindTitle(holder)
+
+ bindSummaryView(holder)
+
+ setOnPreferenceClickListener {
+ updateRadioValue(true)
+
+ toggleRadioGroups()
+ clickListener?.invoke()
+ true
+ }
+ }
+
+ override fun updateRadioValue(isChecked: Boolean) {
+ persistBoolean(isChecked)
+ radioButton?.isChecked = isChecked
+ preferences.edit().putBoolean(key, isChecked)
+ .apply()
+ onPreferenceChangeListener?.onPreferenceChange(this, isChecked)
+ }
+
+ private fun bindRadioButton(holder: PreferenceViewHolder) {
+ radioButton = holder.findViewById(R.id.radio_button) as RadioButton
+ radioButton?.isChecked = preferences.getBoolean(key, defaultValue)
+ radioButton?.setStartCheckedIndicator()
+ }
+
+ private fun toggleRadioGroups() {
+ if (radioButton?.isChecked == true) {
+ radioGroups.uncheckAll()
+ }
+ }
+
+ private fun bindTitle(holder: PreferenceViewHolder) {
+ titleView = holder.findViewById(R.id.title) as TextView
+ titleView?.alpha = if (isEnabled) FULL_ALPHA else HALF_ALPHA
+
+ if (!title.isNullOrEmpty()) {
+ titleView?.text = title
+ }
+ }
+
+ private fun bindSummaryView(holder: PreferenceViewHolder) {
+ summaryView = holder.findViewById(R.id.widget_summary) as TextView
+
+ summaryView?.alpha = if (isEnabled) FULL_ALPHA else HALF_ALPHA
+ summaryView?.let {
+ if (!summary.isNullOrEmpty()) {
+ it.text = if (shouldSummaryBeParsedAsHtmlContent) {
+ HtmlCompat.fromHtml(summary.toString(), HtmlCompat.FROM_HTML_MODE_COMPACT)
+ } else {
+ summary
+ }
+
+ it.isVisible = true
+ } else {
+ it.isVisible = false
+ }
+ }
+ }
+
+ /**
+ * In devices with Android 6, when we use android:button="@null" android:drawableStart doesn't work via xml
+ * as a result we have to apply it programmatically. More info about this issue https://github.com/mozilla-mobile/fenix/issues/1414
+ */
+ private fun RadioButton.setStartCheckedIndicator() {
+ val attr = context.theme.resolveAttribute(android.R.attr.listChoiceIndicatorSingle)
+ val buttonDrawable = AppCompatResources.getDrawable(context, attr)
+ buttonDrawable?.apply {
+ setBounds(0, 0, intrinsicWidth, intrinsicHeight)
+ }
+ putCompoundDrawablesRelative(start = buttonDrawable)
+ }
+
+ companion object {
+ const val HALF_ALPHA = 0.5F
+ const val FULL_ALPHA = 1F
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/RemoveSearchEnginesSettingsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/RemoveSearchEnginesSettingsFragment.kt
new file mode 100644
index 0000000000..23fd044564
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/RemoveSearchEnginesSettingsFragment.kt
@@ -0,0 +1,77 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings
+
+import android.os.Bundle
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
+import mozilla.components.browser.state.state.searchEngines
+import org.mozilla.focus.GleanMetrics.SearchEngines
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.search.MultiselectSearchEngineListPreference
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.utils.ViewUtils
+
+class RemoveSearchEnginesSettingsFragment : BaseSettingsFragment() {
+ override fun onCreatePreferences(p0: Bundle?, p1: String?) {
+ addPreferencesFromResource(R.xml.remove_search_engines)
+ }
+
+ companion object {
+ fun newInstance() = RemoveSearchEnginesSettingsFragment()
+ }
+
+ override fun onResume() {
+ super.onResume()
+
+ showToolbar(getString(R.string.preference_search_remove_title))
+ }
+
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
+ super.onCreateMenu(menu, menuInflater)
+ menuInflater.inflate(R.menu.menu_remove_search_engines, menu)
+ }
+
+ override fun onPrepareMenu(menu: Menu) {
+ super.onPrepareMenu(menu)
+ view?.post {
+ val pref = preferenceScreen
+ .findPreference(resources.getString(R.string.pref_key_multiselect_search_engine_list))
+ as? MultiselectSearchEngineListPreference
+
+ menu.findItem(R.id.menu_delete_items)?.let {
+ ViewUtils.setMenuItemEnabled(it, pref!!.atLeastOneEngineChecked())
+ }
+ }
+ }
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
+ return when (menuItem.itemId) {
+ R.id.menu_delete_items -> {
+ val pref: MultiselectSearchEngineListPreference? = preferenceScreen
+ .findPreference(resources.getString(R.string.pref_key_multiselect_search_engine_list))
+
+ val enginesToRemove = pref!!.checkedEngineIds
+
+ requireComponents.store.state.search.searchEngines.filter { searchEngine ->
+ searchEngine.id in enginesToRemove
+ }.forEach { searchEngine ->
+ requireComponents.searchUseCases.removeSearchEngine(searchEngine)
+ }
+
+ SearchEngines.removeEngines.record(SearchEngines.RemoveEnginesExtra(enginesToRemove.size))
+
+ requireComponents.appStore.dispatch(
+ AppAction.NavigateUp(requireComponents.store.state.selectedTabId),
+ )
+ true
+ }
+ else -> false
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/SafeBrowsingSwitchPreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/SafeBrowsingSwitchPreference.kt
new file mode 100644
index 0000000000..2136212be3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/SafeBrowsingSwitchPreference.kt
@@ -0,0 +1,19 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings
+
+import android.content.Context
+import android.util.AttributeSet
+import org.mozilla.focus.utils.SupportUtils
+
+/**
+ * Switch preference for enabling/disabling autocompletion for custom domains entered by the user.
+ */
+class SafeBrowsingSwitchPreference(
+ context: Context,
+ attrs: AttributeSet?,
+) : LearnMoreSwitchPreference(context, attrs) {
+ override fun getLearnMoreUrl() =
+ SupportUtils.getSafeBrowsingURL()
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/SearchSettingsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/SearchSettingsFragment.kt
new file mode 100644
index 0000000000..ab6308f5cb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/SearchSettingsFragment.kt
@@ -0,0 +1,70 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings
+
+import android.content.SharedPreferences
+import android.os.Bundle
+import androidx.preference.Preference
+import mozilla.components.service.glean.private.NoExtras
+import org.mozilla.focus.GleanMetrics.SearchEngines
+import org.mozilla.focus.GleanMetrics.ShowSearchSuggestions
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+
+class SearchSettingsFragment :
+ BaseSettingsFragment(),
+ SharedPreferences.OnSharedPreferenceChangeListener {
+ override fun onCreatePreferences(p0: Bundle?, p1: String?) {
+ addPreferencesFromResource(R.xml.search_settings)
+ }
+
+ override fun onResume() {
+ super.onResume()
+
+ preferenceManager.sharedPreferences?.registerOnSharedPreferenceChangeListener(this)
+
+ showToolbar(getString(R.string.preference_category_search))
+ }
+
+ override fun onPause() {
+ preferenceManager.sharedPreferences?.unregisterOnSharedPreferenceChangeListener(this)
+ super.onPause()
+ }
+
+ override fun onPreferenceTreeClick(preference: Preference): Boolean {
+ when (preference.key) {
+ resources.getString(R.string.pref_key_search_engine) -> run {
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(page = Screen.Settings.Page.SearchList),
+ )
+ SearchEngines.openSettings.record(NoExtras())
+ }
+ resources.getString(R.string.pref_key_screen_autocomplete) ->
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(page = Screen.Settings.Page.SearchAutocomplete),
+ )
+ }
+ return super.onPreferenceTreeClick(preference)
+ }
+
+ override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String?) {
+ when (key) {
+ resources.getString(R.string.pref_key_show_search_suggestions) ->
+ ShowSearchSuggestions.changedFromSettings.record(
+ ShowSearchSuggestions.ChangedFromSettingsExtra(sharedPreferences.getBoolean(key, false)),
+ )
+ }
+ }
+
+ companion object {
+
+ fun newInstance(): SearchSettingsFragment {
+ return SearchSettingsFragment()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/SettingsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/SettingsFragment.kt
new file mode 100644
index 0000000000..e5227ccacb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/SettingsFragment.kt
@@ -0,0 +1,50 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings
+
+import android.os.Bundle
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+
+class SettingsFragment : BaseSettingsFragment() {
+
+ override fun onCreatePreferences(bundle: Bundle?, s: String?) {
+ addPreferencesFromResource(R.xml.settings)
+ }
+
+ override fun onResume() {
+ super.onResume()
+
+ showToolbar(getString(R.string.menu_settings))
+ }
+
+ override fun onPreferenceTreeClick(preference: androidx.preference.Preference): Boolean {
+ val resources = resources
+
+ val page = when (preference.key) {
+ resources.getString(R.string.pref_key_general_screen) -> Screen.Settings.Page.General
+ resources.getString(R.string.pref_key_privacy_security_screen) -> Screen.Settings.Page.Privacy
+ resources.getString(R.string.pref_key_search_screen) -> Screen.Settings.Page.Search
+ resources.getString(R.string.pref_key_advanced_screen) -> Screen.Settings.Page.Advanced
+ resources.getString(R.string.pref_key_mozilla_screen) -> Screen.Settings.Page.Mozilla
+ else -> throw IllegalStateException("Unknown preference: ${preference.key}")
+ }
+
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(page),
+ )
+
+ return super.onPreferenceTreeClick(preference)
+ }
+
+ companion object {
+ fun newInstance(): SettingsFragment {
+ return SettingsFragment()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/StatePreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/StatePreference.kt
new file mode 100644
index 0000000000..b1ae49b436
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/StatePreference.kt
@@ -0,0 +1,47 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings
+
+import android.content.Context
+import android.util.AttributeSet
+import android.widget.TextView
+import androidx.preference.Preference
+import androidx.preference.PreferenceViewHolder
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.settings
+
+/**
+ * State preference that will show the current state as a summary and a sub screen to configure the behavior.
+ */
+class StatePreference(context: Context, attrs: AttributeSet?) : Preference(context, attrs) {
+ private var summaryView: TextView? = null
+
+ override fun onBindViewHolder(holder: PreferenceViewHolder) {
+ super.onBindViewHolder(holder)
+
+ summaryView = holder.findViewById(android.R.id.summary) as TextView
+ setValueByKey(key)
+ }
+
+ private fun setValueByKey(key: String?) {
+ key?.let {
+ val state = when (key) {
+ context.getString(R.string.pref_key_studies) -> context.settings.isExperimentationEnabled
+
+ context.getString(R.string.pref_key_screen_autocomplete) ->
+ context.settings.shouldAutocompleteFromShippedDomainList() ||
+ context.settings.shouldAutocompleteFromCustomDomainList()
+ else -> false
+ }
+ val summaryText = if (state) {
+ R.string.preference_state_on
+ } else {
+ R.string.preference_state_off
+ }
+
+ summaryView?.setText(summaryText)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/advanced/AdvancedSettingsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/advanced/AdvancedSettingsFragment.kt
new file mode 100644
index 0000000000..c29f49ec4a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/advanced/AdvancedSettingsFragment.kt
@@ -0,0 +1,80 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings.advanced
+
+import android.content.SharedPreferences
+import android.os.Bundle
+import androidx.preference.Preference
+import org.mozilla.focus.GleanMetrics.AdvancedSettings
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.application
+import org.mozilla.focus.ext.getPreferenceKey
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.settings.BaseSettingsFragment
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+import org.mozilla.focus.utils.AppConstants.isDevBuild
+
+class AdvancedSettingsFragment :
+ BaseSettingsFragment(),
+ SharedPreferences.OnSharedPreferenceChangeListener {
+
+ override fun onCreatePreferences(p0: Bundle?, p1: String?) {
+ addPreferencesFromResource(R.xml.advanced_settings)
+ findPreference<Preference>(getPreferenceKey(R.string.pref_key_secret_settings))?.isVisible =
+ requireComponents.appStore.state.secretSettingsEnabled
+ findPreference<Preference>(getPreferenceKey(R.string.pref_key_leakcanary))?.isVisible =
+ isDevBuild
+ }
+
+ override fun onResume() {
+ super.onResume()
+
+ preferenceManager.sharedPreferences?.registerOnSharedPreferenceChangeListener(this)
+
+ showToolbar(getString(R.string.preference_category_advanced))
+ }
+
+ override fun onPause() {
+ preferenceManager.sharedPreferences?.unregisterOnSharedPreferenceChangeListener(this)
+ super.onPause()
+ }
+
+ override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String?) {
+ when (key) {
+ getString(R.string.pref_key_remote_debugging) -> {
+ requireComponents.engine.settings.remoteDebuggingEnabled =
+ sharedPreferences.getBoolean(key, false)
+
+ AdvancedSettings.remoteDebugSettingChanged.record(
+ AdvancedSettings.RemoteDebugSettingChangedExtra(sharedPreferences.all[key] as Boolean),
+ )
+ }
+
+ getString(R.string.pref_key_open_links_in_external_app) ->
+ AdvancedSettings.openLinksSettingChanged.record(
+ AdvancedSettings.OpenLinksSettingChangedExtra(sharedPreferences.all[key] as Boolean),
+ )
+ getString(R.string.pref_key_leakcanary) -> {
+ context?.application?.updateLeakCanaryState(sharedPreferences.all[key] as Boolean)
+ }
+ }
+ }
+
+ override fun onPreferenceTreeClick(preference: Preference): Boolean {
+ if (preference.key == resources.getString(R.string.pref_key_secret_settings)) {
+ requireComponents.appStore.dispatch(AppAction.OpenSettings(page = Screen.Settings.Page.SecretSettings))
+ }
+ return super.onPreferenceTreeClick(preference)
+ }
+
+ companion object {
+
+ fun newInstance(): AdvancedSettingsFragment {
+ return AdvancedSettingsFragment()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/advanced/SecretSettingsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/advanced/SecretSettingsFragment.kt
new file mode 100644
index 0000000000..4526f56f19
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/advanced/SecretSettingsFragment.kt
@@ -0,0 +1,53 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings.advanced
+
+import android.content.SharedPreferences
+import android.os.Bundle
+import androidx.preference.SwitchPreferenceCompat
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.getPreferenceKey
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.requirePreference
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.settings.BaseSettingsFragment
+import kotlin.system.exitProcess
+
+class SecretSettingsFragment :
+ BaseSettingsFragment(),
+ SharedPreferences.OnSharedPreferenceChangeListener {
+
+ override fun onStart() {
+ super.onStart()
+ showToolbar(getString(R.string.preference_secret_settings))
+ preferenceManager.sharedPreferences?.registerOnSharedPreferenceChangeListener(this)
+ }
+
+ override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
+ addPreferencesFromResource(R.xml.secret_settings)
+
+ requirePreference<SwitchPreferenceCompat>(R.string.pref_key_remote_server_prod).apply {
+ isVisible = true
+ isChecked = context.settings.useProductionRemoteSettingsServer
+ onPreferenceChangeListener = SharedPreferenceUpdater()
+ }
+ }
+
+ override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String?) {
+ findPreference<SwitchPreferenceCompat>(
+ getPreferenceKey(R.string.pref_key_use_nimbus_preview),
+ )?.let { nimbusPreviewPref ->
+ if (key == nimbusPreviewPref.key) {
+ requireComponents.settings.shouldUseNimbusPreview = nimbusPreviewPref.isChecked
+ quitTheApp()
+ }
+ }
+ }
+
+ private fun quitTheApp() {
+ exitProcess(0)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/advanced/SharedPreferenceUpdater.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/advanced/SharedPreferenceUpdater.kt
new file mode 100644
index 0000000000..9f3760fbc8
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/advanced/SharedPreferenceUpdater.kt
@@ -0,0 +1,24 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings.advanced
+
+import androidx.core.content.edit
+import androidx.preference.Preference
+import org.mozilla.focus.ext.settings
+
+/**
+ * Updates the corresponding [android.content.SharedPreferences] when the boolean [Preference] is changed.
+ * The preference key is used as the shared preference key.
+ */
+open class SharedPreferenceUpdater : Preference.OnPreferenceChangeListener {
+
+ override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean {
+ val newBooleanValue = newValue as? Boolean ?: return false
+ preference.context.settings.preferences.edit {
+ putBoolean(preference.key, newBooleanValue)
+ }
+ return true
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/SitePermissionOption.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/SitePermissionOption.kt
new file mode 100644
index 0000000000..8860151de6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/SitePermissionOption.kt
@@ -0,0 +1,44 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.permissions
+
+import org.mozilla.focus.R
+
+sealed class AutoplayOption {
+
+ data class AllowAudioVideo(
+ override val prefKeyId: Int = R.string.pref_key_allow_autoplay_audio_video,
+ override val titleId: Int = R.string.preference_allow_audio_video_autoplay,
+ ) : SitePermissionOption(prefKeyId = prefKeyId, titleId = titleId)
+
+ data class BlockAudioOnly(
+ override val prefKeyId: Int = R.string.pref_key_block_autoplay_audio_only,
+ override val titleId: Int = R.string.preference_block_autoplay_audio_only,
+ override val summaryId: Int = R.string.preference_block_autoplay_audio_only_summary,
+ ) : SitePermissionOption(prefKeyId = prefKeyId, titleId = titleId)
+
+ data class BlockAudioVideo(
+ override val prefKeyId: Int = R.string.pref_key_block_autoplay_audio_video,
+ override val titleId: Int = R.string.preference_block_autoplay_audio_video,
+ ) : SitePermissionOption(prefKeyId = prefKeyId, titleId = titleId)
+}
+
+sealed class SitePermissionOption(open val prefKeyId: Int, open val titleId: Int, open val summaryId: Int? = null) {
+
+ data class AskToAllow(
+ override val prefKeyId: Int = R.string.pref_key_ask_to_allow,
+ override val titleId: Int = R.string.preference_option_phone_feature_ask_to_allow,
+ override val summaryId: Int = R.string.preference_block_autoplay_audio_only_summary,
+ ) : SitePermissionOption(prefKeyId = prefKeyId, titleId = titleId)
+
+ data class Blocked(
+ override val prefKeyId: Int = R.string.pref_key_blocked,
+ override val titleId: Int = R.string.preference_option_phone_feature_blocked,
+ ) : SitePermissionOption(prefKeyId = prefKeyId, titleId = titleId)
+
+ data class Allowed(
+ override val prefKeyId: Int = R.string.pref_key_allowed,
+ override val titleId: Int = R.string.preference_option_phone_feature_allowed,
+ ) : SitePermissionOption(prefKeyId = prefKeyId, titleId = titleId)
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/SitePermissionsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/SitePermissionsFragment.kt
new file mode 100644
index 0000000000..1815b2ea3c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/SitePermissionsFragment.kt
@@ -0,0 +1,63 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.permissions
+
+import android.os.Bundle
+import androidx.annotation.VisibleForTesting
+import androidx.preference.Preference
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.requirePreference
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.settings.BaseSettingsFragment
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermission
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermissionOptionsStorage
+import org.mozilla.focus.state.AppAction
+
+class SitePermissionsFragment : BaseSettingsFragment() {
+
+ @VisibleForTesting
+ internal lateinit var storage: SitePermissionOptionsStorage
+
+ @VisibleForTesting
+ internal fun getPreference(sitePermissionID: Int): Preference =
+ requirePreference(sitePermissionID)
+
+ override fun onStart() {
+ super.onStart()
+ showToolbar(getString(R.string.preference_site_permissions))
+ }
+
+ override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
+ setPreferencesFromResource(R.xml.site_permissions, rootKey)
+ bindCategoryPhoneFeatures()
+ }
+
+ @VisibleForTesting
+ internal fun bindCategoryPhoneFeatures() {
+ SitePermission.values()
+ // Only AUTOPLAY should appear in the list AUTOPLAY_INAUDIBLE and AUTOPLAY_AUDIBLE
+ // shouldn't be bound
+ .filter { it != SitePermission.AUTOPLAY_INAUDIBLE && it != SitePermission.AUTOPLAY_AUDIBLE }
+ .forEach(::initPhoneFeature)
+ }
+
+ @VisibleForTesting
+ internal fun initPhoneFeature(sitePermission: SitePermission) {
+ storage = SitePermissionOptionsStorage(requireContext())
+ val preferencePhoneFeatures = getPreference(storage.getSitePermissionPreferenceId(sitePermission))
+
+ preferencePhoneFeatures.summary = storage.getSitePermissionOptionSelectedLabel(sitePermission)
+
+ preferencePhoneFeatures.onPreferenceClickListener = Preference.OnPreferenceClickListener {
+ navigateToSitePermissionOptionsScreen(sitePermission)
+ true
+ }
+ }
+
+ @VisibleForTesting
+ internal fun navigateToSitePermissionOptionsScreen(sitePermission: SitePermission) {
+ requireComponents.appStore.dispatch(AppAction.OpenSitePermissionOptionsScreen(sitePermission = sitePermission))
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/DefaultSitePermissionOptionsScreenInteractor.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/DefaultSitePermissionOptionsScreenInteractor.kt
new file mode 100644
index 0000000000..961a708c0f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/DefaultSitePermissionOptionsScreenInteractor.kt
@@ -0,0 +1,22 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings.permissions.permissionoptions
+
+import org.mozilla.focus.settings.permissions.SitePermissionOption
+
+class DefaultSitePermissionOptionsScreenInteractor(
+ private val sitePermissionOptionsScreenStore: SitePermissionOptionsScreenStore,
+) {
+ fun handleSitePermissionOptionSelected(sitePermissionOption: SitePermissionOption) {
+ if (sitePermissionOptionsScreenStore.state.selectedSitePermissionOption == sitePermissionOption) {
+ return
+ }
+ sitePermissionOptionsScreenStore.dispatch(
+ SitePermissionOptionsScreenAction.Select(
+ selectedSitePermissionOption = sitePermissionOption,
+ ),
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/HardwarePermissionCheckFeature.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/HardwarePermissionCheckFeature.kt
new file mode 100644
index 0000000000..a804491d35
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/HardwarePermissionCheckFeature.kt
@@ -0,0 +1,20 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.permissions.permissionoptions
+
+import androidx.lifecycle.DefaultLifecycleObserver
+import androidx.lifecycle.LifecycleOwner
+
+class HardwarePermissionCheckFeature(
+ val storage: SitePermissionOptionsStorage,
+ val store: SitePermissionOptionsScreenStore,
+ val sitePermission: SitePermission,
+) : DefaultLifecycleObserver {
+
+ override fun onStart(owner: LifecycleOwner) {
+ super.onStart(owner)
+ val isPermissionGranted = storage.isAndroidPermissionGranted(sitePermission)
+ store.dispatch(SitePermissionOptionsScreenAction.AndroidPermission(isPermissionGranted))
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermission.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermission.kt
new file mode 100644
index 0000000000..f719be6e35
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermission.kt
@@ -0,0 +1,20 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.permissions.permissionoptions
+
+import android.Manifest
+import android.os.Parcelable
+import kotlinx.parcelize.Parcelize
+
+@Parcelize
+enum class SitePermission(val androidPermissionsList: Array<String>) : Parcelable {
+ CAMERA(arrayOf(Manifest.permission.CAMERA)),
+ LOCATION(arrayOf(Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION)),
+ MICROPHONE(arrayOf(Manifest.permission.RECORD_AUDIO)),
+ NOTIFICATION(emptyArray()),
+ AUTOPLAY(emptyArray()),
+ AUTOPLAY_AUDIBLE(emptyArray()),
+ AUTOPLAY_INAUDIBLE(emptyArray()),
+ MEDIA_KEY_SYSTEM_ACCESS(emptyArray()),
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionListItem.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionListItem.kt
new file mode 100644
index 0000000000..8528f167d2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionListItem.kt
@@ -0,0 +1,11 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.permissions.permissionoptions
+
+import org.mozilla.focus.settings.permissions.SitePermissionOption
+
+data class SitePermissionOptionListItem(
+ val sitePermissionOption: SitePermissionOption,
+ val onClick: (SitePermissionOption) -> Unit,
+)
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsFragment.kt
new file mode 100644
index 0000000000..b8935f09cc
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsFragment.kt
@@ -0,0 +1,141 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.permissions.permissionoptions
+
+import android.content.Intent
+import android.net.Uri
+import android.os.Bundle
+import android.provider.Settings
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import mozilla.components.lib.state.ext.observeAsComposableState
+import mozilla.components.support.utils.ext.getParcelableCompat
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.settings.BaseComposeFragment
+import org.mozilla.focus.settings.permissions.SitePermissionOption
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+
+class SitePermissionOptionsFragment : BaseComposeFragment() {
+
+ private lateinit var sitePermissionOptionsScreenStore: SitePermissionOptionsScreenStore
+ private lateinit var defaultSitePermissionOptionsScreenInteractor: DefaultSitePermissionOptionsScreenInteractor
+ private lateinit var hardwarePermissionCheckFeature: HardwarePermissionCheckFeature
+ private lateinit var sitePermissionOptionsStorage: SitePermissionOptionsStorage
+
+ private val sitePermission: SitePermission
+ get() = requireArguments().getParcelableCompat(SITE_PERMISSION, SitePermission::class.java)
+ ?: throw IllegalAccessError("Site permission is not set for fragment")
+
+ companion object {
+ const val FRAGMENT_TAG = "SitePermissionOptionsFragment"
+ private const val SITE_PERMISSION = "sitePermission"
+
+ fun addSitePermission(sitePermission: SitePermission): SitePermissionOptionsFragment {
+ val fragment = SitePermissionOptionsFragment()
+ fragment.arguments = Bundle().apply {
+ putParcelable(SITE_PERMISSION, sitePermission)
+ }
+ return fragment
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ sitePermissionOptionsStorage = SitePermissionOptionsStorage(context = requireContext())
+ sitePermissionOptionsScreenStore = SitePermissionOptionsScreenStore(
+ SitePermissionOptionsScreenState(),
+ listOf(
+ SitePermissionOptionsStorageMiddleware(
+ sitePermission = sitePermission,
+ storage = sitePermissionOptionsStorage,
+ ),
+ ),
+ )
+ defaultSitePermissionOptionsScreenInteractor = DefaultSitePermissionOptionsScreenInteractor(
+ sitePermissionOptionsScreenStore = sitePermissionOptionsScreenStore,
+ )
+ hardwarePermissionCheckFeature = HardwarePermissionCheckFeature(
+ storage = sitePermissionOptionsStorage,
+ store = sitePermissionOptionsScreenStore,
+ sitePermission = sitePermission,
+ )
+ lifecycle.addObserver(hardwarePermissionCheckFeature)
+ }
+
+ override val titleText: String
+ get() = sitePermissionOptionsScreenStore.state.sitePermissionLabel
+
+ override fun onNavigateUp(): () -> Unit {
+ return {
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(Screen.Settings.Page.SitePermissions),
+ )
+ }
+ }
+
+ @Composable
+ override fun Content() {
+ val sitePermissionOptionsList = sitePermissionOptionsScreenStore.observeAsComposableState { state ->
+ state.sitePermissionOptionList
+ }.value
+ val sitePermissionOptionSelected = sitePermissionOptionsScreenStore.observeAsComposableState { state ->
+ state.selectedSitePermissionOption
+ }.value
+ val isAndroidPermissionGranted = sitePermissionOptionsScreenStore.observeAsComposableState { state ->
+ state.isAndroidPermissionGranted
+ }.value
+ if (
+ sitePermissionOptionSelected != null &&
+ sitePermissionOptionsList != null &&
+ isAndroidPermissionGranted != null
+ ) {
+ CreateOptionsPermissionList(
+ sitePermissionOptionSelected,
+ sitePermissionOptionsList,
+ isAndroidPermissionGranted,
+ )
+ }
+ }
+
+ @Composable
+ private fun CreateOptionsPermissionList(
+ sitePermissionOptionSelected: SitePermissionOption,
+ sitePermissionOptionsList: List<SitePermissionOption>,
+ isAndroidPermissionGranted: Boolean,
+ ) {
+ val state = remember {
+ mutableStateOf(sitePermissionOptionSelected.prefKeyId)
+ }
+ val optionsListItems = ArrayList<SitePermissionOptionListItem>()
+ sitePermissionOptionsList.forEach { sitePermissionOption ->
+ val sitePermissionOptionListItem = SitePermissionOptionListItem(
+ sitePermissionOption = sitePermissionOption,
+ onClick = {
+ state.value = sitePermissionOption.prefKeyId
+ defaultSitePermissionOptionsScreenInteractor.handleSitePermissionOptionSelected(
+ sitePermissionOption,
+ )
+ requireComponents.appStore.dispatch(AppAction.SitePermissionOptionChange(true))
+ },
+ )
+ optionsListItems.add(sitePermissionOptionListItem)
+ }
+ OptionsPermissionList(
+ optionsListItems = optionsListItems,
+ state = state,
+ goToPhoneSettings = { openSettings() },
+ permissionLabel = sitePermissionOptionsScreenStore.state.sitePermissionLabel,
+ componentPermissionBlockedByAndroidVisibility = !isAndroidPermissionGranted,
+ )
+ }
+
+ private fun openSettings() {
+ val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
+ val uri = Uri.fromParts("package", requireContext().packageName, null)
+ intent.data = uri
+ startActivity(intent)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsFragmentCompose.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsFragmentCompose.kt
new file mode 100644
index 0000000000..0bfae428f2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsFragmentCompose.kt
@@ -0,0 +1,280 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.permissions.permissionoptions
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.PaddingValues
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxHeight
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.wrapContentHeight
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.lazy.items
+import androidx.compose.foundation.selection.selectable
+import androidx.compose.material.Button
+import androidx.compose.material.ButtonDefaults
+import androidx.compose.material.RadioButton
+import androidx.compose.material.RadioButtonDefaults
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.MutableState
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.RectangleShape
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.semantics.Role
+import androidx.compose.ui.text.AnnotatedString
+import androidx.compose.ui.text.SpanStyle
+import androidx.compose.ui.text.TextStyle
+import androidx.compose.ui.text.buildAnnotatedString
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.text.style.TextAlign
+import androidx.compose.ui.text.withStyle
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.Dp
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import mozilla.components.ui.colors.PhotonColors
+import org.mozilla.focus.R
+import org.mozilla.focus.settings.permissions.AutoplayOption
+import org.mozilla.focus.settings.permissions.SitePermissionOption
+import org.mozilla.focus.ui.theme.FocusTheme
+import org.mozilla.focus.ui.theme.focusColors
+
+private fun getPermissionOptionsList(): List<SitePermissionOptionListItem> {
+ return mutableListOf<SitePermissionOptionListItem>().apply {
+ add(SitePermissionOptionListItem(AutoplayOption.AllowAudioVideo(), onClick = {}))
+ add(SitePermissionOptionListItem(AutoplayOption.BlockAudioOnly(), onClick = {}))
+ add(SitePermissionOptionListItem(AutoplayOption.BlockAudioVideo(), onClick = {}))
+ }
+}
+
+@Composable
+@Preview
+private fun PermissionOptionsListComposablePreview() {
+ FocusTheme {
+ val state = remember {
+ mutableStateOf(AutoplayOption.BlockAudioOnly().prefKeyId)
+ }
+ OptionsPermissionList(
+ optionsListItems = getPermissionOptionsList(),
+ state = state,
+ permissionLabel = "Camera",
+ goToPhoneSettings = {},
+ componentPermissionBlockedByAndroidVisibility = true,
+ )
+ }
+}
+
+/**
+ * Displays a list of Site Permission Options
+ *
+ * @param optionsListItems The list of Site Permission Options items to be displayed.
+ * @param state the current Option
+ */
+@Composable
+fun OptionsPermissionList(
+ optionsListItems: List<SitePermissionOptionListItem>,
+ state: MutableState<Int>,
+ permissionLabel: String?,
+ goToPhoneSettings: () -> Unit,
+ componentPermissionBlockedByAndroidVisibility: Boolean,
+) {
+ FocusTheme {
+ Column(
+ Modifier
+ .fillMaxWidth()
+ .fillMaxHeight()
+ .background(
+ colorResource(R.color.settings_background),
+ shape = RectangleShape,
+ ),
+ ) {
+ LazyColumn(
+ contentPadding = PaddingValues(horizontal = 12.dp),
+ ) {
+ items(optionsListItems) { item ->
+ OptionPermission(
+ sitePermissionOption = item.sitePermissionOption,
+ isSelected = state.value == item.sitePermissionOption.prefKeyId,
+ onClick = item.onClick,
+ )
+ }
+ item {
+ if (componentPermissionBlockedByAndroidVisibility) {
+ ComponentPermissionBlockedByAndroid(goToPhoneSettings, permissionLabel)
+ }
+ }
+ }
+ }
+ }
+}
+
+@Composable
+private fun OptionPermission(
+ sitePermissionOption: SitePermissionOption,
+ isSelected: Boolean,
+ onClick: (SitePermissionOption) -> Unit,
+) {
+ Row(
+ Modifier
+ .fillMaxWidth()
+ .wrapContentHeight()
+ .selectable(
+ selected = isSelected,
+ onClick = { onClick(sitePermissionOption) },
+ role = Role.RadioButton,
+ ),
+ horizontalArrangement = Arrangement.Start,
+ verticalAlignment = Alignment.CenterVertically,
+ ) {
+ // When we use the onClick parameter in the selectable modifier we can use the onClick = null
+ // in the RadioButton component.
+ RadioButton(
+ selected = isSelected,
+ colors = RadioButtonDefaults.colors(selectedColor = focusColors.radioButtonSelected),
+ onClick = null,
+ )
+ OptionPermissionDisplayName(
+ sitePermissionOption = sitePermissionOption,
+ )
+ }
+}
+
+@Composable
+private fun OptionPermissionDisplayName(sitePermissionOption: SitePermissionOption) {
+ Column(modifier = Modifier.padding(10.dp)) {
+ Text(
+ textAlign = TextAlign.Start,
+ color = focusColors.settingsTextColor,
+ text = AnnotatedString(LocalContext.current.resources.getString(sitePermissionOption.titleId)),
+ style = TextStyle(
+ fontSize = 16.sp,
+ ),
+ modifier = Modifier
+ .padding(start = 8.dp, end = 8.dp),
+ )
+ sitePermissionOption.summaryId?.let {
+ Text(
+ textAlign = TextAlign.Start,
+ text = AnnotatedString(LocalContext.current.resources.getString(it)),
+ color = focusColors.settingsTextSummaryColor,
+ style = TextStyle(
+ fontSize = 14.sp,
+ ),
+ modifier = Modifier
+ .padding(start = 8.dp, end = 8.dp),
+ )
+ }
+ }
+}
+
+/**
+ * Displays a component if the Site Permission needs user approval from Phone Settings
+ * This is needed for Permissions like Camera ,Location, Microphone
+ *
+ * @param goToPhoneSettings callback when the user press Go to Settings button
+ * @param permissionLabel label for the Site Permission
+ */
+
+@Composable
+private fun ComponentPermissionBlockedByAndroid(goToPhoneSettings: () -> Unit, permissionLabel: String?) {
+ Column(
+ modifier = Modifier
+ .background(colorResource(R.color.settings_background), shape = RectangleShape)
+ .fillMaxWidth()
+ .padding(top = 16.dp)
+ .wrapContentHeight(),
+ ) {
+ ComponentPermissionBlockedByAndroidText(
+ stringRes = R.string.phone_feature_blocked_by_android,
+ permissionLabel,
+ 16.dp,
+ )
+ ComponentPermissionBlockedByAndroidText(
+ stringRes = R.string.phone_feature_blocked_intro,
+ permissionLabel,
+ 16.dp,
+ )
+ ComponentPermissionBlockedByAndroidText(
+ stringRes = R.string.phone_feature_blocked_step_settings,
+ permissionLabel,
+ 8.dp,
+ )
+ ComponentPermissionBlockedByAndroidText(
+ stringRes = R.string.phone_feature_blocked_step_permissions,
+ permissionLabel,
+ 8.dp,
+ )
+ ComponentPermissionBlockedByAndroidText(
+ stringRes = R.string.phone_feature_blocked_step_feature,
+ permissionLabel,
+ )
+ ComponentPermissionBlockedByAndroidButton(
+ goToPhoneSettings = goToPhoneSettings,
+ )
+ }
+}
+
+@Composable
+private fun ComponentPermissionBlockedByAndroidButton(goToPhoneSettings: () -> Unit) {
+ Button(
+ onClick = goToPhoneSettings,
+ colors = ButtonDefaults.textButtonColors(
+ backgroundColor = PhotonColors.LightGrey50,
+ ),
+ modifier = Modifier
+ .padding(16.dp)
+ .fillMaxWidth(),
+ ) {
+ Text(
+ color = PhotonColors.Ink20,
+ text = AnnotatedString(
+ LocalContext.current.resources.getString(
+ R.string.phone_feature_go_to_settings,
+ ),
+ ),
+ )
+ }
+}
+
+@Composable
+private fun ComponentPermissionBlockedByAndroidText(
+ stringRes: Int,
+ permissionLabel: String?,
+ bottomPadding: Dp = 0.dp,
+) {
+ Text(
+ textAlign = TextAlign.Start,
+ color = focusColors.settingsTextColor,
+ text = LocalContext.current.getString(stringRes, permissionLabel).parseBold(),
+ style = TextStyle(
+ fontSize = 16.sp,
+ ),
+ modifier = Modifier.padding(start = 55.dp, end = 16.dp, bottom = bottomPadding),
+ )
+}
+
+private fun String.parseBold(): AnnotatedString {
+ val parts = this.split("<b>", "</b>")
+ return buildAnnotatedString {
+ var bold = false
+ for (part in parts) {
+ if (bold) {
+ withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) {
+ append(part)
+ }
+ } else {
+ append(part)
+ }
+ bold = !bold
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsScreenStore.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsScreenStore.kt
new file mode 100644
index 0000000000..e69e02f9d0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsScreenStore.kt
@@ -0,0 +1,70 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.permissions.permissionoptions
+
+import mozilla.components.lib.state.Action
+import mozilla.components.lib.state.Middleware
+import mozilla.components.lib.state.State
+import mozilla.components.lib.state.Store
+import org.mozilla.focus.settings.permissions.SitePermissionOption
+
+class SitePermissionOptionsScreenStore(
+ initialState: SitePermissionOptionsScreenState,
+ middlewares: List<Middleware<SitePermissionOptionsScreenState, SitePermissionOptionsScreenAction>> = emptyList(),
+) : Store<SitePermissionOptionsScreenState, SitePermissionOptionsScreenAction>(
+ initialState,
+ ::sitePermissionOptionsScreenReducer,
+ middlewares,
+) {
+ init {
+ dispatch(SitePermissionOptionsScreenAction.InitSitePermissionOptions)
+ }
+}
+
+data class SitePermissionOptionsScreenState(
+ val sitePermissionOptionList: List<SitePermissionOption> = emptyList(),
+ val selectedSitePermissionOption: SitePermissionOption? = null,
+ val sitePermissionLabel: String = "",
+ val isAndroidPermissionGranted: Boolean = false,
+) : State
+
+sealed class SitePermissionOptionsScreenAction : Action {
+ object InitSitePermissionOptions : SitePermissionOptionsScreenAction()
+ data class Select(val selectedSitePermissionOption: SitePermissionOption) : SitePermissionOptionsScreenAction()
+ data class AndroidPermission(val isAndroidPermissionGranted: Boolean) : SitePermissionOptionsScreenAction()
+ data class UpdateSitePermissionOptions(
+ val sitePermissionOptionsList: List<SitePermissionOption>,
+ val selectedSitePermissionOption: SitePermissionOption,
+ val sitePermissionLabel: String,
+ val isAndroidPermissionGranted: Boolean,
+ ) : SitePermissionOptionsScreenAction()
+}
+
+private fun sitePermissionOptionsScreenReducer(
+ state: SitePermissionOptionsScreenState,
+ action: SitePermissionOptionsScreenAction,
+): SitePermissionOptionsScreenState {
+ return when (action) {
+ is SitePermissionOptionsScreenAction.Select -> {
+ state.copy(selectedSitePermissionOption = action.selectedSitePermissionOption)
+ }
+ is SitePermissionOptionsScreenAction.UpdateSitePermissionOptions -> {
+ state.copy(
+ sitePermissionOptionList = action.sitePermissionOptionsList,
+ selectedSitePermissionOption = action.selectedSitePermissionOption,
+ sitePermissionLabel = action.sitePermissionLabel,
+ isAndroidPermissionGranted = action.isAndroidPermissionGranted,
+ )
+ }
+
+ SitePermissionOptionsScreenAction.InitSitePermissionOptions -> {
+ throw IllegalStateException(
+ "You need to add SitePermissionsOptionsMiddleware to your SitePermissionsOptionsScreenStore. ($action)",
+ )
+ }
+ is SitePermissionOptionsScreenAction.AndroidPermission -> {
+ state.copy(isAndroidPermissionGranted = action.isAndroidPermissionGranted)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsStorage.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsStorage.kt
new file mode 100644
index 0000000000..68b8d5da7d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsStorage.kt
@@ -0,0 +1,215 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.permissions.permissionoptions
+
+import android.content.Context
+import androidx.annotation.StringRes
+import androidx.annotation.VisibleForTesting
+import androidx.preference.PreferenceManager
+import mozilla.components.feature.sitepermissions.SitePermissionsRules
+import mozilla.components.support.ktx.android.content.isPermissionGranted
+import org.mozilla.focus.R
+import org.mozilla.focus.settings.permissions.AutoplayOption
+import org.mozilla.focus.settings.permissions.SitePermissionOption
+
+@Suppress("TooManyFunctions")
+class SitePermissionOptionsStorage(private val context: Context) {
+
+ /**
+ * Return the label for Site Permission Option selected that will
+ * appear in Site Permissions Screen
+ */
+ fun getSitePermissionOptionSelectedLabel(sitePermission: SitePermission): String {
+ return if (isAndroidPermissionGranted(sitePermission)) {
+ context.getString(permissionSelectedOption(sitePermission).titleId)
+ } else {
+ context.getString(R.string.phone_feature_blocked_by_android)
+ }
+ }
+
+ fun isAndroidPermissionGranted(sitePermission: SitePermission): Boolean {
+ return context.isPermissionGranted(sitePermission.androidPermissionsList.asIterable())
+ }
+
+ fun getSitePermissionLabel(sitePermission: SitePermission): String {
+ return when (sitePermission) {
+ SitePermission.CAMERA -> context.getString(R.string.preference_phone_feature_camera)
+ SitePermission.LOCATION -> context.getString(R.string.preference_phone_feature_location)
+ SitePermission.MICROPHONE -> context.getString(R.string.preference_phone_feature_microphone)
+ SitePermission.NOTIFICATION -> context.getString(R.string.preference_phone_feature_notification)
+ SitePermission.MEDIA_KEY_SYSTEM_ACCESS -> context.getString(
+ R.string.preference_phone_feature_media_key_system_access,
+ )
+ SitePermission.AUTOPLAY, SitePermission.AUTOPLAY_AUDIBLE, SitePermission.AUTOPLAY_INAUDIBLE ->
+ context.getString(R.string.preference_autoplay)
+ }
+ }
+
+ /**
+ * Return the available Options for a Site Permission
+ */
+ fun getSitePermissionOptions(sitePermission: SitePermission): List<SitePermissionOption> {
+ return when (sitePermission) {
+ SitePermission.CAMERA -> listOf(
+ SitePermissionOption.AskToAllow(),
+ SitePermissionOption.Blocked(),
+ )
+ SitePermission.LOCATION -> listOf(
+ SitePermissionOption.AskToAllow(),
+ SitePermissionOption.Blocked(),
+ )
+ SitePermission.MICROPHONE -> listOf(
+ SitePermissionOption.AskToAllow(),
+ SitePermissionOption.Blocked(),
+ )
+ SitePermission.NOTIFICATION -> listOf(
+ SitePermissionOption.AskToAllow(),
+ SitePermissionOption.Blocked(),
+ )
+ SitePermission.MEDIA_KEY_SYSTEM_ACCESS -> listOf(
+ SitePermissionOption.AskToAllow(),
+ SitePermissionOption.Blocked(),
+ SitePermissionOption.Allowed(),
+ )
+ SitePermission.AUTOPLAY, SitePermission.AUTOPLAY_AUDIBLE, SitePermission.AUTOPLAY_INAUDIBLE ->
+ listOf(
+ AutoplayOption.AllowAudioVideo(),
+ AutoplayOption.BlockAudioOnly(),
+ AutoplayOption.BlockAudioVideo(),
+ )
+ }
+ }
+
+ /**
+ * Return the default Option for a Site Permission if the user doesn't select nothing
+ */
+ @VisibleForTesting
+ internal fun getSitePermissionDefaultOption(sitePermission: SitePermission): SitePermissionOption {
+ return when (sitePermission) {
+ SitePermission.CAMERA -> SitePermissionOption.AskToAllow()
+ SitePermission.LOCATION -> SitePermissionOption.AskToAllow()
+ SitePermission.MICROPHONE -> SitePermissionOption.AskToAllow()
+ SitePermission.NOTIFICATION -> SitePermissionOption.AskToAllow()
+ SitePermission.MEDIA_KEY_SYSTEM_ACCESS -> SitePermissionOption.AskToAllow()
+ SitePermission.AUTOPLAY, SitePermission.AUTOPLAY_AUDIBLE, SitePermission.AUTOPLAY_INAUDIBLE ->
+ AutoplayOption.BlockAudioOnly()
+ }
+ }
+
+ /**
+ * Return the user selected Option for a Site Permission or the default one if the user doesn't
+ * select one
+ */
+ internal fun permissionSelectedOption(sitePermission: SitePermission) =
+ when (permissionSelectedOptionByKey(getSitePermissionPreferenceId(sitePermission))) {
+ context.getString(R.string.pref_key_allow_autoplay_audio_video) -> AutoplayOption.AllowAudioVideo()
+ context.getString(R.string.pref_key_block_autoplay_audio_video) -> AutoplayOption.BlockAudioVideo()
+ context.getString(R.string.pref_key_allowed) -> SitePermissionOption.Allowed()
+ context.getString(R.string.pref_key_blocked) -> SitePermissionOption.Blocked()
+ context.getString(R.string.pref_key_ask_to_allow) -> SitePermissionOption.AskToAllow()
+ context.getString(R.string.pref_key_block_autoplay_audio_only) -> AutoplayOption.BlockAudioOnly()
+ else -> {
+ getSitePermissionDefaultOption(sitePermission)
+ }
+ }
+
+ /**
+ * Returns Site Permission corresponding resource ID from preference_keys
+ */
+ @StringRes
+ fun getSitePermissionPreferenceId(sitePermission: SitePermission): Int {
+ return when (sitePermission) {
+ SitePermission.CAMERA -> R.string.pref_key_phone_feature_camera
+ SitePermission.LOCATION -> R.string.pref_key_phone_feature_location
+ SitePermission.MICROPHONE -> R.string.pref_key_phone_feature_microphone
+ SitePermission.NOTIFICATION -> R.string.pref_key_phone_feature_notification
+ SitePermission.AUTOPLAY -> R.string.pref_key_autoplay
+ SitePermission.AUTOPLAY_AUDIBLE -> R.string.pref_key_allow_autoplay_audio_video
+ SitePermission.AUTOPLAY_INAUDIBLE -> R.string.pref_key_block_autoplay_audio_video
+ SitePermission.MEDIA_KEY_SYSTEM_ACCESS -> R.string.pref_key_browser_feature_media_key_system_access
+ }
+ }
+
+ /**
+ * Saves the current Site Permission Option
+ *
+ * @param sitePermissionOption to be Saved
+ * @param sitePermission the corresponding Site Permission
+ */
+ fun saveCurrentSitePermissionOptionInSharePref(
+ sitePermissionOption: SitePermissionOption,
+ sitePermission: SitePermission,
+ ) {
+ val sharedPref = PreferenceManager.getDefaultSharedPreferences(context)
+ with(sharedPref.edit()) {
+ putString(
+ context.getString(getSitePermissionPreferenceId(sitePermission)),
+ context.getString(sitePermissionOption.prefKeyId),
+ )
+ apply()
+ }
+ }
+
+ @VisibleForTesting
+ internal fun permissionSelectedOptionByKey(
+ sitePermissionKey: Int,
+ ): String {
+ val sharedPref = PreferenceManager.getDefaultSharedPreferences(context)
+ return sharedPref.getString(context.getString(sitePermissionKey), "") ?: ""
+ }
+
+ private fun getAutoplayRules(): Pair<SitePermissionsRules.AutoplayAction, SitePermissionsRules.AutoplayAction> {
+ return when (permissionSelectedOption(SitePermission.AUTOPLAY)) {
+ is AutoplayOption.AllowAudioVideo -> Pair(
+ SitePermissionsRules.AutoplayAction.ALLOWED,
+ SitePermissionsRules.AutoplayAction.ALLOWED,
+ )
+
+ is AutoplayOption.BlockAudioVideo -> Pair(
+ SitePermissionsRules.AutoplayAction.BLOCKED,
+ SitePermissionsRules.AutoplayAction.BLOCKED,
+ )
+
+ else -> Pair(
+ SitePermissionsRules.AutoplayAction.BLOCKED,
+ SitePermissionsRules.AutoplayAction.ALLOWED,
+ )
+ }
+ }
+
+ fun getSitePermissionsSettingsRules() = SitePermissionsRules(
+ notification = getSitePermissionRules(SitePermission.NOTIFICATION),
+ microphone = getSitePermissionRules(SitePermission.MICROPHONE),
+ location = getSitePermissionRules(SitePermission.LOCATION),
+ camera = getSitePermissionRules(SitePermission.CAMERA),
+ autoplayAudible = getAutoplayRules().first,
+ autoplayInaudible = getAutoplayRules().second,
+ persistentStorage = SitePermissionsRules.Action.BLOCKED,
+ mediaKeySystemAccess = getSitePermissionRules(SitePermission.MEDIA_KEY_SYSTEM_ACCESS),
+ crossOriginStorageAccess = SitePermissionsRules.Action.ASK_TO_ALLOW,
+ )
+
+ private fun getSitePermissionRules(sitePermission: SitePermission): SitePermissionsRules.Action {
+ return when (permissionSelectedOption(sitePermission)) {
+ is SitePermissionOption.Allowed -> SitePermissionsRules.Action.ALLOWED
+ is SitePermissionOption.AskToAllow -> SitePermissionsRules.Action.ASK_TO_ALLOW
+ is SitePermissionOption.Blocked -> SitePermissionsRules.Action.BLOCKED
+ else -> {
+ SitePermissionsRules.Action.BLOCKED
+ }
+ }
+ }
+
+ fun isSitePermissionNotBlocked(permissionsList: Array<String>): Boolean {
+ SitePermission.values().forEach { sitePermission ->
+ if (
+ sitePermission.androidPermissionsList.intersect(permissionsList.toSet()).isNotEmpty() &&
+ getSitePermissionRules(sitePermission) != SitePermissionsRules.Action.BLOCKED
+ ) {
+ return true
+ }
+ }
+ return false
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsStorageMiddleware.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsStorageMiddleware.kt
new file mode 100644
index 0000000000..98ec7c7dbd
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/permissions/permissionoptions/SitePermissionOptionsStorageMiddleware.kt
@@ -0,0 +1,43 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.permissions.permissionoptions
+
+import mozilla.components.lib.state.Middleware
+import mozilla.components.lib.state.MiddlewareContext
+
+class SitePermissionOptionsStorageMiddleware(
+ val sitePermission: SitePermission,
+ val storage: SitePermissionOptionsStorage,
+) :
+ Middleware<SitePermissionOptionsScreenState, SitePermissionOptionsScreenAction> {
+
+ override fun invoke(
+ context: MiddlewareContext<SitePermissionOptionsScreenState, SitePermissionOptionsScreenAction>,
+ next: (SitePermissionOptionsScreenAction) -> Unit,
+ action: SitePermissionOptionsScreenAction,
+ ) {
+ when (action) {
+ is SitePermissionOptionsScreenAction.Select -> {
+ storage.saveCurrentSitePermissionOptionInSharePref(
+ action.selectedSitePermissionOption,
+ sitePermission = sitePermission,
+ )
+ next(action)
+ }
+ is SitePermissionOptionsScreenAction.InitSitePermissionOptions -> {
+ context.dispatch(
+ SitePermissionOptionsScreenAction.UpdateSitePermissionOptions(
+ storage.getSitePermissionOptions(sitePermission),
+ storage.permissionSelectedOption(sitePermission),
+ storage.getSitePermissionLabel(sitePermission),
+ storage.isAndroidPermissionGranted(sitePermission),
+ ),
+ )
+ }
+ else -> {
+ next(action)
+ }
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/ConnectionDetailsPanel.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/ConnectionDetailsPanel.kt
new file mode 100644
index 0000000000..07ca9aa9eb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/ConnectionDetailsPanel.kt
@@ -0,0 +1,82 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.privacy
+
+import android.content.Context
+import android.view.View
+import android.widget.FrameLayout
+import androidx.appcompat.content.res.AppCompatResources
+import com.google.android.material.bottomsheet.BottomSheetBehavior
+import com.google.android.material.bottomsheet.BottomSheetDialog
+import mozilla.components.browser.icons.IconRequest
+import mozilla.components.support.ktx.android.view.putCompoundDrawablesRelativeWithIntrinsicBounds
+import org.mozilla.focus.R
+import org.mozilla.focus.databinding.ConnectionDetailsBinding
+import org.mozilla.focus.ext.components
+
+@SuppressWarnings("LongParameterList")
+class ConnectionDetailsPanel(
+ context: Context,
+ private val tabTitle: String,
+ private val tabUrl: String,
+ private val isConnectionSecure: Boolean,
+ private val goBack: () -> Unit,
+) : BottomSheetDialog(context) {
+
+ private var binding: ConnectionDetailsBinding =
+ ConnectionDetailsBinding.inflate(layoutInflater, null, false)
+
+ init {
+ setContentView(binding.root)
+ expandBottomSheet()
+
+ updateSiteInfo()
+ updateConnectionState()
+ setListeners()
+ }
+
+ private fun expandBottomSheet() {
+ val bottomSheet =
+ findViewById<View>(com.google.android.material.R.id.design_bottom_sheet) as FrameLayout
+ BottomSheetBehavior.from(bottomSheet).state = BottomSheetBehavior.STATE_EXPANDED
+ }
+
+ private fun updateSiteInfo() {
+ binding.siteTitle.text = tabTitle
+ binding.siteFullUrl.text = tabUrl
+
+ context.components.icons.loadIntoView(
+ binding.siteFavicon,
+ IconRequest(tabUrl, isPrivate = true),
+ )
+ }
+
+ private fun updateConnectionState() {
+ binding.securityInfo.text = if (isConnectionSecure) {
+ context.getString(R.string.secure_connection)
+ } else {
+ context.getString(R.string.insecure_connection)
+ }
+
+ val securityIcon = if (isConnectionSecure) {
+ AppCompatResources.getDrawable(context, R.drawable.mozac_ic_lock_24)
+ } else {
+ AppCompatResources.getDrawable(context, R.drawable.mozac_ic_warning_fill_24)
+ }
+
+ binding.securityInfo.putCompoundDrawablesRelativeWithIntrinsicBounds(
+ start = securityIcon,
+ end = null,
+ top = null,
+ bottom = null,
+ )
+ }
+
+ private fun setListeners() {
+ binding.detailsBack.setOnClickListener {
+ goBack.invoke()
+ dismiss()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/PreferenceSwitch.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/PreferenceSwitch.kt
new file mode 100644
index 0000000000..ca3cf49f10
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/PreferenceSwitch.kt
@@ -0,0 +1,68 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings.privacy
+
+import android.content.Context
+import android.util.AttributeSet
+import androidx.appcompat.widget.SwitchCompat
+import androidx.core.content.edit
+import androidx.core.content.withStyledAttributes
+import androidx.preference.PreferenceManager
+import org.mozilla.focus.R
+
+class PreferenceSwitch(
+ context: Context,
+ attrs: AttributeSet,
+) : SwitchCompat(context, attrs) {
+
+ private var clickListener: (() -> Unit)? = null
+ var key: Int = 0
+ var title: Int = 0
+ var description: Int = 0
+
+ init {
+ context.withStyledAttributes(
+ attrs,
+ R.styleable.PreferenceSwitch,
+ 0,
+ 0,
+ ) {
+ key = getResourceId(R.styleable.PreferenceSwitch_preferenceKey, 0)
+ title = getResourceId(R.styleable.PreferenceSwitch_preferenceKeyTitle, 0)
+ description =
+ getResourceId(R.styleable.PreferenceSwitch_preferenceKeyDescription, 0)
+ }
+ }
+
+ init {
+ setInitialValue()
+ setOnCheckedChangeListener(null)
+ setOnClickListener {
+ togglePreferenceValue(this.isChecked)
+ clickListener?.invoke()
+ }
+
+ if (title != 0) {
+ this.text = context.getString(title)
+ }
+ }
+
+ private fun setInitialValue() {
+ this.isChecked = PreferenceManager.getDefaultSharedPreferences(context)
+ .getBoolean(context.getString(key), true)
+ }
+
+ fun onClickListener(listener: () -> Unit) {
+ clickListener = listener
+ }
+
+ private fun togglePreferenceValue(isChecked: Boolean) {
+ this.isChecked = isChecked
+
+ PreferenceManager.getDefaultSharedPreferences(context).edit(commit = true) {
+ putBoolean(context.getString(key), isChecked)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/PreferenceToolTipCompose.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/PreferenceToolTipCompose.kt
new file mode 100644
index 0000000000..010d04446a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/PreferenceToolTipCompose.kt
@@ -0,0 +1,137 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings.privacy
+
+import android.content.Context
+import android.util.AttributeSet
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.wrapContentHeight
+import androidx.compose.foundation.layout.wrapContentSize
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material.Icon
+import androidx.compose.material.IconButton
+import androidx.compose.material.Text
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.filled.Close
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
+import androidx.compose.ui.geometry.Offset
+import androidx.compose.ui.graphics.Brush
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import androidx.preference.Preference
+import androidx.preference.PreferenceViewHolder
+import org.mozilla.focus.R
+import org.mozilla.focus.databinding.FocusPreferenceComposeLayoutBinding
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.ui.theme.FocusTheme
+import org.mozilla.focus.ui.theme.focusColors
+
+class PreferenceToolTipCompose(context: Context, attrs: AttributeSet?) :
+ Preference(context, attrs) {
+
+ override fun onBindViewHolder(holder: PreferenceViewHolder) {
+ super.onBindViewHolder(holder)
+ val binding = FocusPreferenceComposeLayoutBinding.bind(holder.itemView)
+ binding.toolTipContent.setContent {
+ ToolTipContent(
+ onDismissButton = {
+ context.settings.shouldShowPrivacySecuritySettingsToolTip = false
+ preferenceManager.preferenceScreen.removePreference(this)
+ },
+ )
+ }
+ }
+}
+
+@Composable
+@Preview
+private fun ToolTipContentPreview() {
+ ToolTipContent {
+ }
+}
+
+/**
+ * Displays a tool tip for Privacy Security Settings screen.
+ *
+ * @param onDismissButton Callback when the "x" Button from tool tip is pressed.
+ */
+@Composable
+fun ToolTipContent(onDismissButton: () -> Unit) {
+ FocusTheme {
+ Column(
+ modifier = Modifier
+ .fillMaxWidth()
+ .wrapContentSize(Alignment.Center),
+ ) {
+ Box(
+ modifier = Modifier
+ .fillMaxWidth()
+ .wrapContentHeight()
+ .padding(16.dp)
+ .clip(RoundedCornerShape(10.dp))
+ .background(
+ shape = RoundedCornerShape(10.dp),
+ brush = Brush.linearGradient(
+ colors = listOf(
+ colorResource(R.color.cfr_pop_up_shape_end_color),
+ colorResource(R.color.cfr_pop_up_shape_start_color),
+ ),
+ end = Offset(0f, Float.POSITIVE_INFINITY),
+ start = Offset(Float.POSITIVE_INFINITY, 0f),
+ ),
+ ),
+ contentAlignment = Alignment.CenterStart,
+ ) {
+ Column(
+ modifier = Modifier
+ .wrapContentHeight()
+ .padding(16.dp),
+ verticalArrangement = Arrangement.spacedBy(
+ 10.dp,
+ ),
+ ) {
+ Text(
+ text = stringResource(R.string.tool_tip_title),
+ fontSize = 16.sp,
+ letterSpacing = 0.5.sp,
+ color = focusColors.privacySecuritySettingsToolTip,
+ fontWeight = FontWeight.Bold,
+ lineHeight = 20.sp,
+ )
+ Text(
+ text = stringResource(R.string.tool_tip_message),
+ fontSize = 14.sp,
+ color = focusColors.privacySecuritySettingsToolTip,
+ lineHeight = 20.sp,
+ )
+ }
+ IconButton(
+ onClick = onDismissButton,
+ modifier = Modifier.align(
+ Alignment.TopEnd,
+ ),
+ ) {
+ Icon(
+ Icons.Filled.Close,
+ contentDescription = stringResource(R.string.tool_tip_dismiss_button_content_description),
+ tint = focusColors.privacySecuritySettingsToolTip,
+ )
+ }
+ }
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/PrivacySecuritySettingsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/PrivacySecuritySettingsFragment.kt
new file mode 100644
index 0000000000..6d3e7ba300
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/PrivacySecuritySettingsFragment.kt
@@ -0,0 +1,254 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings.privacy
+
+import android.content.SharedPreferences
+import android.os.Build
+import android.os.Bundle
+import androidx.preference.Preference
+import androidx.preference.SwitchPreferenceCompat
+import mozilla.components.lib.auth.canUseBiometricFeature
+import mozilla.components.service.glean.private.NoExtras
+import org.mozilla.focus.GleanMetrics.CookieBanner
+import org.mozilla.focus.GleanMetrics.PrivacySettings
+import org.mozilla.focus.GleanMetrics.TrackingProtectionExceptions
+import org.mozilla.focus.R
+import org.mozilla.focus.cookiebanner.CookieBannerOption
+import org.mozilla.focus.engine.EngineSharedPreferencesListener
+import org.mozilla.focus.ext.requireComponents
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.nimbus.FocusNimbus
+import org.mozilla.focus.settings.BaseSettingsFragment
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+import org.mozilla.focus.widget.CookiesPreference
+
+class PrivacySecuritySettingsFragment :
+ BaseSettingsFragment(),
+ SharedPreferences.OnSharedPreferenceChangeListener {
+ override fun onCreatePreferences(p0: Bundle?, p1: String?) {
+ addPreferencesFromResource(R.xml.privacy_security_settings)
+
+ val biometricPreference: SwitchPreferenceCompat? =
+ findPreference(getString(R.string.pref_key_biometric))
+ val appName = getString(R.string.app_name)
+ biometricPreference?.summary =
+ getString(R.string.preference_security_biometric_summary2, appName)
+
+ // Remove the biometric toggle if the software or hardware do not support it
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M || !requireContext().canUseBiometricFeature()
+ ) {
+ biometricPreference?.let { preferenceScreen.removePreference(it) }
+ }
+ if (!FocusNimbus.features.onboarding.value().isCfrEnabled ||
+ !requireContext().settings.shouldShowPrivacySecuritySettingsToolTip
+ ) {
+ val privacySecuritySettingsToolTip: PreferenceToolTipCompose? =
+ findPreference(getString(R.string.pref_key_tool_tip))
+ privacySecuritySettingsToolTip?.let { preferenceScreen.removePreference(it) }
+ }
+
+ val preferencesListener = EngineSharedPreferencesListener(requireContext())
+
+ val cookiesPreference =
+ findPreference(getString(R.string.pref_key_performance_enable_cookies)) as? CookiesPreference
+ cookiesPreference?.updateSummary()
+
+ val safeBrowsingSwitchPreference =
+ findPreference(getString(R.string.pref_key_safe_browsing)) as? SwitchPreferenceCompat
+ val javaScriptPreference =
+ findPreference(getString(R.string.pref_key_performance_block_javascript)) as? SwitchPreferenceCompat
+ val webFontsPreference =
+ findPreference(getString(R.string.pref_key_performance_block_webfonts)) as? SwitchPreferenceCompat
+ val cookieBannerPreference = findPreference<Preference>(getString(R.string.pref_key_cookie_banner_settings))
+
+ cookiesPreference?.onPreferenceChangeListener = preferencesListener
+ safeBrowsingSwitchPreference?.onPreferenceChangeListener = preferencesListener
+ javaScriptPreference?.onPreferenceChangeListener = preferencesListener
+ webFontsPreference?.onPreferenceChangeListener = preferencesListener
+
+ cookieBannerPreference?.isVisible = requireContext().settings.isCookieBannerEnable
+ if (requireContext().settings.getCurrentCookieBannerOptionFromSharePref() ==
+ CookieBannerOption.CookieBannerDisabled()
+ ) {
+ cookieBannerPreference?.summary = getString(R.string.preferences_cookie_banner_summary_off)
+ } else {
+ cookieBannerPreference?.summary = getString(R.string.preferences_cookie_banner_summary_on)
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ updateBiometricsToggleAvailability()
+ updateStealthToggleAvailability()
+ updateExceptionSettingAvailability()
+
+ preferenceManager.sharedPreferences?.registerOnSharedPreferenceChangeListener(this)
+
+ // Update title and icons when returning to fragments.
+ showToolbar(getString(R.string.preference_privacy_and_security_header))
+ }
+
+ override fun onPause() {
+ preferenceManager.sharedPreferences?.unregisterOnSharedPreferenceChangeListener(this)
+ super.onPause()
+ }
+
+ override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String?) {
+ key?.let {
+ recordTelemetry(it, sharedPreferences.all[key])
+ }
+ updateStealthToggleAvailability()
+ }
+
+ private fun recordTelemetry(key: String, newValue: Any?) {
+ when (key) {
+ getString(R.string.pref_key_telemetry) -> PrivacySettings.telemetrySettingChanged.record(
+ PrivacySettings.TelemetrySettingChangedExtra(newValue as? Boolean),
+ )
+ getString(R.string.pref_key_safe_browsing) -> PrivacySettings.safeBrowsingSettingChanged.record(
+ PrivacySettings.SafeBrowsingSettingChangedExtra(newValue as? Boolean),
+ )
+ getString(R.string.pref_key_biometric) -> PrivacySettings.unlockSettingChanged.record(
+ PrivacySettings.UnlockSettingChangedExtra(newValue as? Boolean),
+ )
+ getString(R.string.pref_key_secure) -> PrivacySettings.stealthSettingChanged.record(
+ PrivacySettings.StealthSettingChangedExtra(newValue as? Boolean),
+ )
+ getString(R.string.pref_key_performance_enable_cookies) -> PrivacySettings.blockCookiesChanged.record(
+ PrivacySettings.BlockCookiesChangedExtra(newValue as? String),
+ )
+ else -> {
+ // Telemetry for the change is recorded elsewhere.
+ }
+ }
+ }
+
+ private fun updateBiometricsToggleAvailability() {
+ val switch =
+ preferenceScreen.findPreference(resources.getString(R.string.pref_key_biometric))
+ as? SwitchPreferenceCompat
+
+ if (!requireContext().canUseBiometricFeature()) {
+ switch?.isChecked = false
+ switch?.isEnabled = false
+ preferenceManager.sharedPreferences
+ ?.edit()
+ ?.putBoolean(resources.getString(R.string.pref_key_biometric), false)
+ ?.apply()
+ } else {
+ switch?.isEnabled = true
+ }
+ }
+
+ private fun updateExceptionSettingAvailability() {
+ val exceptionsPreference: Preference? =
+ findPreference(getString(R.string.pref_key_screen_exceptions))
+ exceptionsPreference?.isEnabled = false
+
+ requireComponents.trackingProtectionUseCases.fetchExceptions.invoke { exceptions ->
+ exceptionsPreference?.isEnabled = exceptions.isNotEmpty()
+ }
+ }
+
+ override fun onPreferenceTreeClick(preference: Preference): Boolean {
+ val settings = requireContext().settings
+ val engineSharedPreferencesListener = EngineSharedPreferencesListener(requireContext())
+ when (preference.key) {
+ resources.getString(R.string.pref_key_screen_exceptions) -> {
+ TrackingProtectionExceptions.allowListOpened.record(NoExtras())
+
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(page = Screen.Settings.Page.PrivacyExceptions),
+ )
+ }
+ resources.getString(R.string.pref_key_secure),
+ resources.getString(R.string.pref_key_biometric),
+ -> {
+ // We need to recreate the activity to apply the SECURE flags.
+ requireActivity().recreate()
+ }
+
+ resources.getString(R.string.pref_key_privacy_block_social) ->
+ engineSharedPreferencesListener.updateTrackingProtectionPolicy(
+ EngineSharedPreferencesListener.ChangeSource.SETTINGS.source,
+ EngineSharedPreferencesListener.TrackerChanged.SOCIAL.tracker,
+ settings.shouldBlockSocialTrackers(),
+ )
+
+ resources.getString(R.string.pref_key_privacy_block_ads) ->
+ engineSharedPreferencesListener.updateTrackingProtectionPolicy(
+ EngineSharedPreferencesListener.ChangeSource.SETTINGS.source,
+ EngineSharedPreferencesListener.TrackerChanged.ADVERTISING.tracker,
+ settings.shouldBlockAdTrackers(),
+ )
+
+ resources.getString(R.string.pref_key_privacy_block_analytics) ->
+ engineSharedPreferencesListener.updateTrackingProtectionPolicy(
+ EngineSharedPreferencesListener.ChangeSource.SETTINGS.source,
+ EngineSharedPreferencesListener.TrackerChanged.ANALYTICS.tracker,
+ settings.shouldBlockAnalyticTrackers(),
+ )
+
+ resources.getString(R.string.pref_key_privacy_block_other3) ->
+ engineSharedPreferencesListener.updateTrackingProtectionPolicy(
+ EngineSharedPreferencesListener.ChangeSource.SETTINGS.source,
+ EngineSharedPreferencesListener.TrackerChanged.CONTENT.tracker,
+ settings.shouldBlockOtherTrackers(),
+ )
+ resources.getString(R.string.pref_key_cookie_banner_settings) -> {
+ CookieBanner.visitedSetting.record(NoExtras())
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(
+ page = Screen.Settings.Page.CookieBanner,
+ ),
+ )
+ }
+ resources.getString(R.string.pref_key_site_permissions) ->
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(page = Screen.Settings.Page.SitePermissions),
+ )
+ resources.getString(R.string.pref_key_studies) ->
+ requireComponents.appStore.dispatch(
+ AppAction.OpenSettings(page = Screen.Settings.Page.Studies),
+ )
+ }
+ return super.onPreferenceTreeClick(preference)
+ }
+
+ private fun updateStealthToggleAvailability() {
+ val switch =
+ preferenceScreen.findPreference(resources.getString(R.string.pref_key_secure)) as? SwitchPreferenceCompat
+
+ val sharedPreferences = preferenceManager.sharedPreferences
+
+ if (sharedPreferences?.getBoolean(
+ resources.getString(R.string.pref_key_biometric),
+ false,
+ ) == true
+ ) {
+ sharedPreferences
+ .edit()
+ .putBoolean(resources.getString(R.string.pref_key_secure), true)
+ .apply()
+
+ // Disable the stealth switch
+ switch?.isChecked = true
+ switch?.isEnabled = false
+ } else {
+ // Enable the stealth switch
+ switch?.isEnabled = true
+ }
+ }
+
+ companion object {
+ const val FRAGMENT_TAG = "PrivacySecuritySettings"
+
+ fun newInstance(): PrivacySecuritySettingsFragment {
+ return PrivacySecuritySettingsFragment()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/TrackingProtectionPanel.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/TrackingProtectionPanel.kt
new file mode 100644
index 0000000000..d7ae7cd8f1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/TrackingProtectionPanel.kt
@@ -0,0 +1,215 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.privacy
+
+import android.content.Context
+import android.view.View
+import android.widget.FrameLayout
+import androidx.appcompat.content.res.AppCompatResources
+import androidx.core.view.isVisible
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.setViewTreeLifecycleOwner
+import androidx.savedstate.SavedStateRegistryOwner
+import androidx.savedstate.setViewTreeSavedStateRegistryOwner
+import com.google.android.material.bottomsheet.BottomSheetBehavior
+import com.google.android.material.bottomsheet.BottomSheetDialog
+import mozilla.components.browser.icons.IconRequest
+import mozilla.components.lib.state.ext.observeAsComposableState
+import mozilla.components.support.ktx.android.view.putCompoundDrawablesRelativeWithIntrinsicBounds
+import mozilla.components.support.ktx.kotlin.tryGetHostFromUrl
+import org.mozilla.focus.R
+import org.mozilla.focus.cookiebannerreducer.CookieBannerReducerItem
+import org.mozilla.focus.cookiebannerreducer.CookieBannerReducerStore
+import org.mozilla.focus.databinding.DialogTrackingProtectionSheetBinding
+import org.mozilla.focus.engine.EngineSharedPreferencesListener.TrackerChanged
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.installedDate
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.ui.theme.FocusTheme
+
+@SuppressWarnings("LongParameterList")
+class TrackingProtectionPanel(
+ context: Context,
+ private val lifecycleOwner: LifecycleOwner,
+ private val cookieBannerReducerStore: CookieBannerReducerStore,
+ private val tabUrl: String,
+ private val blockedTrackersCount: Int,
+ private val isTrackingProtectionOn: Boolean,
+ private val isConnectionSecure: Boolean,
+ private val toggleTrackingProtection: (Boolean) -> Unit,
+ private val updateTrackingProtectionPolicy: (String?, Boolean) -> Unit,
+ private val showConnectionInfo: () -> Unit,
+ private val showCookieBannerExceptionsDetailsPanel: () -> Unit,
+) : BottomSheetDialog(context) {
+
+ private var binding: DialogTrackingProtectionSheetBinding =
+ DialogTrackingProtectionSheetBinding.inflate(layoutInflater, null, false)
+
+ init {
+ initWindow()
+ setContentView(binding.root)
+ expand()
+ updateTitle()
+ updateConnectionState()
+ updateTrackingProtection()
+ updateTrackersBlocked()
+ updateTrackersState()
+ updateCookieBannerException()
+ setListeners()
+ }
+
+ private fun initWindow() {
+ this.window?.decorView?.let {
+ it.setViewTreeLifecycleOwner(lifecycleOwner)
+ it.setViewTreeSavedStateRegistryOwner(
+ lifecycleOwner as SavedStateRegistryOwner,
+ )
+ }
+ }
+
+ private fun expand() {
+ val bottomSheet =
+ findViewById<View>(com.google.android.material.R.id.design_bottom_sheet) as FrameLayout
+ BottomSheetBehavior.from(bottomSheet).state = BottomSheetBehavior.STATE_EXPANDED
+ }
+
+ private fun updateTitle() {
+ binding.siteTitle.text = tabUrl.tryGetHostFromUrl()
+ context.components.icons.loadIntoView(
+ binding.siteFavicon,
+ IconRequest(tabUrl, isPrivate = true),
+ )
+ }
+
+ private fun updateCookieBannerException() {
+ binding.cookieBannerException.apply {
+ setContent {
+ FocusTheme {
+ val cookieBannerExceptionStatus =
+ cookieBannerReducerStore.observeAsComposableState { state ->
+ state.cookieBannerReducerStatus
+ }.value
+ val shouldShowCookieBannerItem =
+ cookieBannerReducerStore.observeAsComposableState { state ->
+ state.shouldShowCookieBannerItem
+ }.value
+ if (shouldShowCookieBannerItem == true) {
+ binding.cookieBannerException.visibility = View.VISIBLE
+ } else {
+ binding.cookieBannerException.visibility = View.GONE
+ }
+
+ if (cookieBannerExceptionStatus != null) {
+ CookieBannerReducerItem(
+ cookieBannerReducerStatus = cookieBannerExceptionStatus,
+ preferenceOnClickListener = ::showCookieBannerExceptionsDetailsPanel.invoke(),
+ )
+ }
+ }
+ }
+ isTransitionGroup = true
+ }
+ }
+
+ private fun updateConnectionState() {
+ binding.securityInfo.text = if (isConnectionSecure) {
+ context.getString(R.string.secure_connection)
+ } else {
+ context.getString(R.string.insecure_connection)
+ }
+
+ val nextIcon = AppCompatResources.getDrawable(context, R.drawable.mozac_ic_chevron_right_24)
+
+ val securityIcon = if (isConnectionSecure) {
+ AppCompatResources.getDrawable(context, R.drawable.mozac_ic_lock_24)
+ } else {
+ AppCompatResources.getDrawable(context, R.drawable.mozac_ic_warning_fill_24)
+ }
+
+ binding.securityInfo.putCompoundDrawablesRelativeWithIntrinsicBounds(
+ start = securityIcon,
+ end = nextIcon,
+ top = null,
+ bottom = null,
+ )
+ }
+
+ private fun updateTrackingProtection() {
+ val description = if (isTrackingProtectionOn) {
+ context.getString(R.string.enhanced_tracking_protection_state_on)
+ } else {
+ context.getString(R.string.enhanced_tracking_protection_state_off)
+ }
+
+ val icon = if (isTrackingProtectionOn) {
+ R.drawable.mozac_ic_shield_24
+ } else {
+ R.drawable.mozac_ic_shield_slash_24
+ }
+
+ val iconContentDescription = context.getString(R.string.enhanced_tracking_protection)
+ binding.enhancedTracking.apply {
+ updateDescription(description)
+ updateIcon(icon = icon, iconContentDescription = iconContentDescription)
+ binding.switchWidget.isChecked = isTrackingProtectionOn
+ }
+ }
+
+ private fun updateTrackersBlocked() {
+ binding.trackersCount.text = blockedTrackersCount.toString()
+ binding.trackersCountNote.text =
+ context.getString(R.string.trackers_count_note, context.installedDate)
+ }
+
+ private fun updateTrackersState() {
+ val settings = context.settings
+
+ with(binding) {
+ advertising.isVisible = isTrackingProtectionOn
+ analytics.isVisible = isTrackingProtectionOn
+ social.isVisible = isTrackingProtectionOn
+ content.isVisible = isTrackingProtectionOn
+ trackersAndScriptsHeading.isVisible = isTrackingProtectionOn
+
+ advertising.isChecked = settings.shouldBlockAdTrackers()
+ analytics.isChecked = settings.shouldBlockAnalyticTrackers()
+ social.isChecked = settings.shouldBlockSocialTrackers()
+ content.isChecked = settings.shouldBlockOtherTrackers()
+ }
+ }
+
+ private fun setListeners() {
+ with(binding) {
+ enhancedTracking.binding.switchWidget.setOnCheckedChangeListener { _, isChecked ->
+ toggleTrackingProtection.invoke(isChecked)
+ dismiss()
+ }
+ advertising.onClickListener {
+ updateTrackingProtectionPolicy(
+ TrackerChanged.ADVERTISING.tracker,
+ advertising.isChecked,
+ )
+ }
+
+ analytics.onClickListener {
+ updateTrackingProtectionPolicy(
+ TrackerChanged.ANALYTICS.tracker,
+ analytics.isChecked,
+ )
+ }
+
+ social.onClickListener {
+ updateTrackingProtectionPolicy(TrackerChanged.SOCIAL.tracker, social.isChecked)
+ }
+
+ content.onClickListener {
+ updateTrackingProtectionPolicy(TrackerChanged.CONTENT.tracker, content.isChecked)
+ }
+
+ securityInfo.setOnClickListener {
+ showConnectionInfo.invoke()
+ }
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesAdapter.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesAdapter.kt
new file mode 100644
index 0000000000..57c559bd61
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesAdapter.kt
@@ -0,0 +1,67 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.privacy.studies
+
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.recyclerview.widget.DiffUtil
+import androidx.recyclerview.widget.ListAdapter
+
+class StudiesAdapter(var removeStudyListener: (StudiesListItem.ActiveStudy) -> Unit = {}) :
+ ListAdapter<StudiesListItem, StudiesViewHolder>(StudiesDiffCallback()) {
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): StudiesViewHolder {
+ return when (viewType) {
+ ACTIVE_STUDY_LAYOUT_ID -> {
+ val rootView = LayoutInflater.from(parent.context)
+ .inflate(ACTIVE_STUDY_LAYOUT_ID, parent, false) as ConstraintLayout
+ StudiesViewHolder.ActiveStudiesViewHolder(rootView)
+ }
+ SECTION_LAYOUT_ID -> {
+ val rootView = LayoutInflater.from(parent.context)
+ .inflate(SECTION_LAYOUT_ID, parent, false) as LinearLayout
+ StudiesViewHolder.SectionViewHolder(rootView)
+ }
+ else -> throw IllegalArgumentException("Unrecognized viewType")
+ }
+ }
+
+ override fun onBindViewHolder(holder: StudiesViewHolder, position: Int) {
+ val item = getItem(position)
+
+ when (holder) {
+ is StudiesViewHolder.SectionViewHolder -> holder.bindSection(item as StudiesListItem.Section)
+ is StudiesViewHolder.ActiveStudiesViewHolder -> holder.bindStudy(
+ item as StudiesListItem.ActiveStudy,
+ removeStudyListener,
+ )
+ }
+ }
+
+ override fun getItemViewType(position: Int): Int {
+ return when (getItem(position)) {
+ is StudiesListItem.Section -> SECTION_LAYOUT_ID
+ is StudiesListItem.ActiveStudy -> ACTIVE_STUDY_LAYOUT_ID
+ }
+ }
+
+ class StudiesDiffCallback : DiffUtil.ItemCallback<StudiesListItem>() {
+ override fun areItemsTheSame(oldItem: StudiesListItem, newItem: StudiesListItem): Boolean {
+ return when {
+ oldItem is StudiesListItem.ActiveStudy && newItem is StudiesListItem.ActiveStudy -> {
+ oldItem.value.slug == newItem.value.slug
+ }
+ oldItem is StudiesListItem.Section && newItem is StudiesListItem.Section -> {
+ oldItem.titleId == newItem.titleId
+ }
+ else -> false
+ }
+ }
+
+ override fun areContentsTheSame(oldItem: StudiesListItem, newItem: StudiesListItem) =
+ oldItem == newItem
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesFragment.kt
new file mode 100644
index 0000000000..4753478657
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesFragment.kt
@@ -0,0 +1,158 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.privacy.studies
+
+import android.os.Bundle
+import android.text.SpannableStringBuilder
+import android.text.method.LinkMovementMethod
+import android.text.style.ClickableSpan
+import android.text.style.URLSpan
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.appcompat.app.AlertDialog
+import androidx.core.text.HtmlCompat
+import androidx.core.text.getSpans
+import androidx.lifecycle.ViewModelProvider
+import mozilla.components.browser.state.state.SessionState
+import org.mozilla.focus.R
+import org.mozilla.focus.databinding.FragmentStudiesBinding
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.showToolbar
+import org.mozilla.focus.settings.BaseSettingsLikeFragment
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.utils.SupportUtils
+import kotlin.system.exitProcess
+
+class StudiesFragment : BaseSettingsLikeFragment() {
+ private var _binding: FragmentStudiesBinding? = null
+ private val binding get() = _binding!!
+ private lateinit var viewModel: StudiesViewModel
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?,
+ ): View {
+ _binding = FragmentStudiesBinding.inflate(inflater, container, false)
+ viewModel = ViewModelProvider(
+ this,
+ ).get(StudiesViewModel::class.java)
+ setLearnMore()
+ setStudiesSwitch()
+ setRemoveStudyListener()
+ setObservers()
+ return binding.root
+ }
+
+ override fun onStart() {
+ super.onStart()
+ showToolbar(getString(R.string.preference_studies))
+ }
+
+ private fun setLearnMore() {
+ val sumoUrl =
+ SupportUtils.getGenericSumoURLForTopic(SupportUtils.SumoTopic.STUDIES)
+ val description = getString(R.string.preference_studies_summary)
+ val learnMore = getString(R.string.studies_learn_more)
+ val rawText = "$description <a href=\"$sumoUrl\">$learnMore</a>"
+ val text = HtmlCompat.fromHtml(rawText, HtmlCompat.FROM_HTML_MODE_COMPACT)
+
+ val spannableStringBuilder = SpannableStringBuilder(text)
+ val links = spannableStringBuilder.getSpans<URLSpan>()
+ for (link in links) {
+ addActionToLinks(spannableStringBuilder, link)
+ }
+ binding.studiesDescription.text = spannableStringBuilder
+ binding.studiesDescription.movementMethod = LinkMovementMethod.getInstance()
+ }
+
+ private fun addActionToLinks(spannableStringBuilder: SpannableStringBuilder, link: URLSpan) {
+ val start = spannableStringBuilder.getSpanStart(link)
+ val end = spannableStringBuilder.getSpanEnd(link)
+ val flags = spannableStringBuilder.getSpanFlags(link)
+ val clickable: ClickableSpan = object : ClickableSpan() {
+ override fun onClick(view: View) {
+ view.setOnClickListener {
+ openLearnMore.invoke()
+ }
+ }
+ }
+ spannableStringBuilder.setSpan(clickable, start, end, flags)
+ spannableStringBuilder.removeSpan(link)
+ }
+
+ private val openLearnMore = {
+ val tabId = requireContext().components.tabsUseCases.addTab(
+ url = SupportUtils.getGenericSumoURLForTopic(SupportUtils.SumoTopic.STUDIES),
+ source = SessionState.Source.Internal.Menu,
+ selectTab = true,
+ private = true,
+ )
+ requireContext().components.appStore.dispatch(AppAction.OpenTab(tabId))
+ }
+
+ private fun setStudiesTitleByState(switchState: Boolean) {
+ binding.studiesTitle.text = if (switchState) {
+ getString(R.string.preference_state_on)
+ } else {
+ getString(R.string.preference_state_off)
+ }
+ }
+
+ private fun setStudiesSwitch() {
+ binding.studiesSwitch.setOnClickListener {
+ val builder = AlertDialog.Builder(requireContext())
+ .setPositiveButton(
+ R.string.action_ok,
+ ) { dialog, _ ->
+ viewModel.setStudiesState(binding.studiesSwitch.isChecked)
+ dialog.dismiss()
+ quitTheApp()
+ }
+ .setNegativeButton(
+ R.string.action_cancel,
+ ) { dialog, _ ->
+ binding.studiesSwitch.isChecked = !binding.studiesSwitch.isChecked
+ setStudiesTitleByState(binding.studiesSwitch.isChecked)
+ dialog.dismiss()
+ }
+ .setTitle(R.string.preference_studies)
+ .setMessage(R.string.studies_restart_app)
+ .setCancelable(false)
+ val alertDialog: AlertDialog = builder.create()
+ alertDialog.show()
+ }
+ }
+
+ private fun quitTheApp() {
+ exitProcess(0)
+ }
+
+ private fun setRemoveStudyListener() {
+ binding.studiesList.studiesAdapter.removeStudyListener = { study ->
+ viewModel.removeStudy(study)
+ }
+ }
+
+ private fun setObservers() {
+ viewModel.exposedStudies.observe(
+ viewLifecycleOwner,
+ ) { studies ->
+ binding.studiesList.studiesAdapter.submitList(studies)
+ }
+
+ viewModel.studiesState.observe(
+ viewLifecycleOwner,
+ ) { state ->
+ binding.studiesSwitch.isChecked = state
+ setStudiesTitleByState(state)
+ }
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesListItem.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesListItem.kt
new file mode 100644
index 0000000000..f9a25754d3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesListItem.kt
@@ -0,0 +1,16 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.privacy.studies
+
+import androidx.annotation.StringRes
+import org.mozilla.experiments.nimbus.EnrolledExperiment
+
+sealed class StudiesListItem {
+ data class Section(
+ @StringRes val titleId: Int,
+ val visibleDivider: Boolean = true,
+ ) : StudiesListItem()
+
+ data class ActiveStudy(val value: EnrolledExperiment) : StudiesListItem()
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesRecyclerView.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesRecyclerView.kt
new file mode 100644
index 0000000000..7b6b2d700e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesRecyclerView.kt
@@ -0,0 +1,21 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.privacy.studies
+
+import android.content.Context
+import android.util.AttributeSet
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+
+class StudiesRecyclerView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+) : RecyclerView(context, attrs) {
+ val studiesAdapter: StudiesAdapter = StudiesAdapter()
+
+ init {
+ layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
+ adapter = studiesAdapter
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesViewHolder.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesViewHolder.kt
new file mode 100644
index 0000000000..1fa8baaf3b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesViewHolder.kt
@@ -0,0 +1,74 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.privacy.studies
+
+import android.content.Context
+import android.content.DialogInterface
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import androidx.appcompat.app.AlertDialog
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.core.view.isVisible
+import androidx.recyclerview.widget.RecyclerView
+import com.google.android.material.textview.MaterialTextView
+import org.mozilla.focus.R
+
+const val SECTION_LAYOUT_ID = R.layout.studies_section_item
+const val ACTIVE_STUDY_LAYOUT_ID = R.layout.active_study_item
+sealed class StudiesViewHolder(var viewGroup: ViewGroup) : RecyclerView.ViewHolder(viewGroup) {
+
+ class ActiveStudiesViewHolder(rootView: ConstraintLayout) :
+ StudiesViewHolder(viewGroup = rootView) {
+ private val titleView = rootView.findViewById<MaterialTextView>(R.id.title)
+ private val summaryView = rootView.findViewById<MaterialTextView>(R.id.summary)
+ private val removeButton = rootView.findViewById<MaterialTextView>(R.id.remove)
+
+ fun bindStudy(
+ activeStudy: StudiesListItem.ActiveStudy,
+ removeStudyListener: (StudiesListItem.ActiveStudy) -> Unit,
+ ) {
+ titleView.text = activeStudy.value.userFacingName
+ summaryView.text = activeStudy.value.userFacingDescription
+ removeButton.setOnClickListener { view ->
+ showRemoveDialog(view.context, removeStudyListener, activeStudy)
+ }
+ }
+
+ private fun showRemoveDialog(
+ context: Context,
+ studyListener: (StudiesListItem.ActiveStudy) -> Unit,
+ activeStudy: StudiesListItem.ActiveStudy,
+ ): AlertDialog {
+ val builder = AlertDialog.Builder(context)
+ .setPositiveButton(
+ R.string.action_ok,
+ ) { dialog, _ ->
+ studyListener.invoke(activeStudy)
+ dialog.dismiss()
+ }
+ .setNegativeButton(
+ R.string.action_cancel,
+ ) { dialog: DialogInterface, _ ->
+ dialog.dismiss()
+ }
+ .setTitle(R.string.preference_studies)
+ .setMessage(R.string.studies_restart_app)
+ .setCancelable(false)
+ val alertDialog: AlertDialog = builder.create()
+ alertDialog.show()
+ return alertDialog
+ }
+ }
+
+ class SectionViewHolder(rootView: LinearLayout) : StudiesViewHolder(viewGroup = rootView) {
+ private val titleView = rootView.findViewById<MaterialTextView>(R.id.title)
+ private val dividerView = rootView.findViewById<View>(R.id.divider)
+
+ fun bindSection(section: StudiesListItem.Section) {
+ titleView.text = titleView.context.resources.getString(section.titleId)
+ dividerView.isVisible = section.visibleDivider
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesViewModel.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesViewModel.kt
new file mode 100644
index 0000000000..7a0c293dc0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/privacy/studies/StudiesViewModel.kt
@@ -0,0 +1,65 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.settings.privacy.studies
+
+import android.app.Application
+import androidx.lifecycle.AndroidViewModel
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.viewModelScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import org.mozilla.experiments.nimbus.NimbusInterface
+import org.mozilla.experiments.nimbus.internal.EnrolledExperiment
+import org.mozilla.focus.Components
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.settings
+import kotlin.system.exitProcess
+
+class StudiesViewModel(application: Application) : AndroidViewModel(application) {
+ private var localStudies: MutableList<StudiesListItem> = mutableListOf()
+ val exposedStudies: MutableLiveData<List<StudiesListItem>> = MutableLiveData()
+ val studiesState: MutableLiveData<Boolean> = MutableLiveData()
+ private val appContext = application
+
+ init {
+ getExperiments(application.components)
+ setStudiesState(application.settings.isExperimentationEnabled)
+ }
+
+ private fun getExperiments(components: Components) {
+ viewModelScope.launch(Dispatchers.IO) {
+ localStudies.add(StudiesListItem.Section(R.string.studies_active, true))
+
+ components.experiments.getActiveExperiments().map { activeExperiment ->
+ localStudies.add(StudiesListItem.ActiveStudy(activeExperiment))
+ }
+ localStudies.add(StudiesListItem.Section(R.string.studies_completed, true))
+ exposedStudies.postValue(localStudies)
+ }
+ }
+
+ fun setStudiesState(state: Boolean) {
+ appContext.settings.isExperimentationEnabled = state
+ appContext.components.experiments.globalUserParticipation = state
+ studiesState.postValue(state)
+ }
+
+ fun removeStudy(study: StudiesListItem.ActiveStudy) {
+ viewModelScope.launch(Dispatchers.IO) {
+ localStudies.remove(study)
+ exposedStudies.postValue(localStudies)
+ appContext.components.experiments.register(
+ object : NimbusInterface.Observer {
+ override fun onUpdatesApplied(updated: List<EnrolledExperiment>) {
+ // Wait until the experiment is unrolled from nimbus to restart the app
+ exitProcess(0)
+ }
+ },
+ )
+ appContext.components.experiments.optOut(study.value.slug)
+ appContext.components.experiments.applyPendingExperiments()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/shortcut/HomeScreen.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/shortcut/HomeScreen.kt
new file mode 100644
index 0000000000..6eb105086a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/shortcut/HomeScreen.kt
@@ -0,0 +1,122 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.shortcut
+
+import android.content.Context
+import android.content.Intent
+import android.graphics.Bitmap
+import android.net.Uri
+import android.os.Build
+import android.text.TextUtils
+import androidx.annotation.VisibleForTesting
+import androidx.core.content.pm.ShortcutInfoCompat
+import androidx.core.content.pm.ShortcutManagerCompat
+import androidx.core.graphics.drawable.IconCompat
+import mozilla.components.support.ktx.kotlin.stripCommonSubdomains
+import org.mozilla.focus.activity.MainActivity
+import java.util.UUID
+
+/**
+ * Helper methods for adding shortcuts to device's home screen.
+ */
+object HomeScreen {
+ const val ADD_TO_HOMESCREEN_TAG = "add_to_homescreen"
+ private const val BLOCKING_ENABLED = "blocking_enabled"
+ const val REQUEST_DESKTOP = "request_desktop"
+
+ /**
+ * Create a shortcut for the given website on the device's home screen.
+ */
+ @Suppress("LongParameterList")
+ fun installShortCut(
+ context: Context,
+ icon: Bitmap,
+ url: String,
+ title: String,
+ blockingEnabled: Boolean,
+ requestDesktop: Boolean,
+ ) {
+ val shortcutTitle = if (TextUtils.isEmpty(title.trim { it <= ' ' })) {
+ generateTitleFromUrl(url)
+ } else {
+ title
+ }
+
+ installShortCutViaManager(context, icon, url, shortcutTitle, blockingEnabled, requestDesktop)
+
+ // Creating shortcut flow is different on Android up to 7, so we want to go
+ // to the home screen manually where the user will see the new shortcut appear
+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.N_MR1) {
+ goToHomeScreen(context)
+ }
+ }
+
+ /**
+ * Create a shortcut via the [ShortcutManagerCompat].
+ *
+ * On Android versions up to 7 shortcut will be created via system broadcast internally.
+ *
+ * On Android 8+ the user will have the ability to add the shortcut manually
+ * or let the system place it automatically.
+ */
+ @Suppress("LongParameterList")
+ private fun installShortCutViaManager(
+ context: Context,
+ bitmap: Bitmap,
+ url: String,
+ title: String,
+ blockingEnabled: Boolean,
+ requestDesktop: Boolean,
+ ) {
+ if (ShortcutManagerCompat.isRequestPinShortcutSupported(context)) {
+ val icon = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ IconCompat.createWithAdaptiveBitmap(bitmap)
+ } else {
+ IconCompat.createWithBitmap(bitmap)
+ }
+ val shortcut = ShortcutInfoCompat.Builder(context, UUID.randomUUID().toString())
+ .setShortLabel(title)
+ .setLongLabel(title)
+ .setIcon(icon)
+ .setIntent(createShortcutIntent(context, url, blockingEnabled, requestDesktop))
+ .build()
+ ShortcutManagerCompat.requestPinShortcut(context, shortcut, null)
+ }
+ }
+
+ private fun createShortcutIntent(
+ context: Context,
+ url: String,
+ blockingEnabled: Boolean,
+ requestDesktop: Boolean,
+ ): Intent {
+ val shortcutIntent = Intent(context, MainActivity::class.java)
+ shortcutIntent.action = Intent.ACTION_VIEW
+ shortcutIntent.data = Uri.parse(url)
+ shortcutIntent.putExtra(BLOCKING_ENABLED, blockingEnabled)
+ shortcutIntent.putExtra(REQUEST_DESKTOP, requestDesktop)
+ shortcutIntent.putExtra(ADD_TO_HOMESCREEN_TAG, ADD_TO_HOMESCREEN_TAG)
+ return shortcutIntent
+ }
+
+ /**
+ * Generates a new default title based on the URL.
+ */
+ @VisibleForTesting
+ fun generateTitleFromUrl(url: String): String {
+ // For now we just use the host name and strip common subdomains like "www" or "m".
+ return Uri.parse(url).host?.stripCommonSubdomains() ?: ""
+ }
+
+ /**
+ * Switch to the the default home screen activity (launcher).
+ */
+ private fun goToHomeScreen(context: Context) {
+ val intent = Intent(Intent.ACTION_MAIN)
+ intent.addCategory(Intent.CATEGORY_HOME)
+ intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
+ context.startActivity(intent)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/shortcut/IconGenerator.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/shortcut/IconGenerator.kt
new file mode 100644
index 0000000000..dcfddc6391
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/shortcut/IconGenerator.kt
@@ -0,0 +1,135 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.shortcut
+
+import android.content.Context
+import android.graphics.Bitmap
+import android.graphics.BitmapFactory
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.Paint
+import android.os.Build
+import android.util.TypedValue
+import androidx.core.content.ContextCompat
+import androidx.core.net.toUri
+import mozilla.components.support.ktx.kotlin.stripCommonSubdomains
+import org.mozilla.focus.R
+
+class IconGenerator {
+
+ companion object {
+ private val TEXT_SIZE_DP = 36f
+ private val DEFAULT_ICON_CHAR = '?'
+
+ /**
+ * See [generateAdaptiveLauncherIcon] for more details.
+ */
+ @JvmStatic
+ fun generateLauncherIcon(context: Context, url: String?): Bitmap {
+ val startingChar = getRepresentativeCharacter(url)
+ return generateCharacterIcon(context, startingChar)
+ }
+
+ /**
+ * Generate an icon with the given character. The icon will be drawn
+ * on top of a generic launcher icon shape that we provide.
+ */
+ private fun generateCharacterIcon(context: Context, character: Char) =
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ generateAdaptiveLauncherIcon(context, character)
+ } else {
+ generateLauncherIconPreOreo(context, character)
+ }
+
+ /*
+ * This method needs to be separate from generateAdaptiveLauncherIcon so that we can generate
+ * the pre-Oreo icon to display in the Add To Home screen Dialog
+ */
+ @JvmStatic
+ fun generateLauncherIconPreOreo(context: Context, character: Char): Bitmap {
+ val options = BitmapFactory.Options()
+ options.inMutable = true
+ val shape = BitmapFactory.decodeResource(context.resources, R.drawable.ic_homescreen_shape, options)
+ return drawCharacterOnBitmap(context, character, shape)
+ }
+
+ /**
+ * Generates a launcher icon for versions of Android that support Adaptive Icons (Oreo+):
+ * https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive.html
+ */
+ private fun generateAdaptiveLauncherIcon(context: Context, character: Char): Bitmap {
+ val res = context.resources
+ val adaptiveIconDimen = res.getDimensionPixelSize(R.dimen.adaptive_icon_drawable_dimen)
+
+ val bitmap = Bitmap.createBitmap(adaptiveIconDimen, adaptiveIconDimen, Bitmap.Config.ARGB_8888)
+ val canvas = Canvas(bitmap)
+
+ // Adaptive Icons have two layers: a background that fills the canvas and
+ // a foreground that's centered. First, we draw the background...
+ canvas.drawColor(ContextCompat.getColor(context, R.color.add_to_homescreen_icon_background))
+
+ // Then draw the foreground
+ return drawCharacterOnBitmap(context, character, bitmap)
+ }
+
+ private fun drawCharacterOnBitmap(context: Context, character: Char, bitmap: Bitmap): Bitmap {
+ val canvas = Canvas(bitmap)
+
+ val paint = Paint()
+
+ val textSize = TypedValue.applyDimension(
+ TypedValue.COMPLEX_UNIT_DIP,
+ TEXT_SIZE_DP,
+ context.resources.displayMetrics,
+ )
+
+ paint.color = Color.WHITE
+ paint.textAlign = Paint.Align.CENTER
+ paint.textSize = textSize
+ paint.isAntiAlias = true
+
+ canvas.drawText(
+ character.toString(),
+ canvas.width / 2.0f,
+ canvas.height / 2.0f - (paint.descent() + paint.ascent()) / 2.0f,
+ paint,
+ )
+
+ return bitmap
+ }
+
+ /**
+ * Get a representative character for the given URL.
+ *
+ * For example this method will return "f" for "http://m.facebook.com/foobar".
+ */
+ @JvmStatic
+ fun getRepresentativeCharacter(url: String?): Char {
+ val firstChar = getRepresentativeSnippet(url)?.find { it.isLetterOrDigit() }?.uppercaseChar()
+ return (firstChar ?: DEFAULT_ICON_CHAR)
+ }
+
+ /**
+ * Get the representative part of the URL. Usually this is the host (without common prefixes).
+ *
+ * @return the representative snippet or null if one could not be found.
+ */
+ private fun getRepresentativeSnippet(url: String?): String? {
+ if (url == null || url.isEmpty()) return null
+
+ val uri = url.toUri()
+ val snippet = if (!uri.host.isNullOrEmpty()) {
+ uri.host // cached by Uri class.
+ } else if (!uri.path.isNullOrEmpty()) { // The uri may not have a host for e.g. file:// uri
+ uri.path // cached by Uri class.
+ } else {
+ return null
+ }
+
+ // Strip common prefixes that we do not want to use to determine the representative characters
+ return snippet?.stripCommonSubdomains()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppAction.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppAction.kt
new file mode 100644
index 0000000000..ca932e3d93
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppAction.kt
@@ -0,0 +1,124 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.state
+
+import android.os.Bundle
+import mozilla.components.feature.top.sites.TopSite
+import mozilla.components.lib.state.Action
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermission
+
+/**
+ * An [Action] to be dispatched on the [AppStore].
+ */
+sealed class AppAction : Action {
+ /**
+ * The selected tab has changed.
+ */
+ data class SelectionChanged(
+ val tabId: String,
+ ) : AppAction()
+
+ /**
+ * Action for editing the URL of the tab with the given [tabId].
+ */
+ data class EditAction(
+ val tabId: String,
+ ) : AppAction()
+
+ /**
+ * All tabs have been removed.
+ */
+ object NoTabs : AppAction()
+
+ /**
+ * The user finished editing the URL of the tab with the given [tabId].
+ */
+ data class FinishEdit(
+ val tabId: String,
+ ) : AppAction()
+
+ /**
+ * Hide the tabs tray.
+ */
+ object HideTabs : AppAction()
+
+ /**
+ * The user finished the first run onboarding.
+ */
+ data class FinishFirstRun(val tabId: String?) : AppAction()
+
+ /**
+ * The app should get locked.
+ */
+ data class Lock(val bundle: Bundle? = null) : AppAction()
+
+ /**
+ * The app should get unlocked.
+ */
+ data class Unlock(val tabId: String?) : AppAction()
+
+ data class OpenSettings(val page: Screen.Settings.Page) : AppAction()
+
+ data class OpenSitePermissionOptionsScreen(val sitePermission: SitePermission) : AppAction()
+
+ data class NavigateUp(val tabId: String?) : AppAction()
+
+ /**
+ * Forces showing the first run screen.
+ */
+ internal object ShowFirstRun : AppAction()
+
+ internal object ShowOnboardingSecondScreen : AppAction()
+
+ /**
+ * Forces showing the home screen.
+ */
+ internal object ShowHomeScreen : AppAction()
+
+ /**
+ * Opens the tab with the given [tabId] and actively switches to the browser screen if needed.
+ */
+ data class OpenTab(val tabId: String) : AppAction()
+
+ /**
+ * The list of [TopSite] has changed.
+ */
+ data class TopSitesChange(val topSites: List<TopSite>) : AppAction()
+
+ /**
+ * Site permissions autoplay rules has changed.
+ */
+ data class SitePermissionOptionChange(val value: Boolean) : AppAction()
+
+ /**
+ * State of secret settings has changed.
+ */
+ data class SecretSettingsStateChange(val enabled: Boolean) : AppAction()
+
+ /**
+ * State of erase tabs CFR has changed
+ */
+ data class ShowEraseTabsCfrChange(val value: Boolean) : AppAction()
+
+ /**
+ * State of show Tracking Protection CFR has changed
+ */
+ data class ShowTrackingProtectionCfrChange(val value: Map<String, Boolean>) : AppAction()
+
+ /**
+ * State of Snackbar for promote search widget has changed
+ */
+ data class ShowSearchWidgetSnackBar(val value: Boolean) : AppAction()
+
+ /**
+ * State of start browsing CFR has changed
+ */
+ data class ShowStartBrowsingCfrChange(val value: Boolean) : AppAction()
+
+ /**
+ * State of start Cookie Banner CFR has changed
+ */
+ data class ShowCookieBannerCfrChange(val value: Boolean) : AppAction()
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppReducer.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppReducer.kt
new file mode 100644
index 0000000000..721d6f6516
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppReducer.kt
@@ -0,0 +1,311 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+@file:Suppress("TooManyFunctions")
+
+package org.mozilla.focus.state
+
+import mozilla.components.feature.top.sites.TopSite
+import mozilla.components.lib.state.Reducer
+
+/**
+ * Reducer creating a new [AppState] for dispatched [AppAction]s.
+ */
+@Suppress("ComplexMethod")
+object AppReducer : Reducer<AppState, AppAction> {
+ override fun invoke(state: AppState, action: AppAction): AppState {
+ return when (action) {
+ is AppAction.SelectionChanged -> selectionChanged(state, action)
+ is AppAction.NoTabs -> noTabs(state)
+ is AppAction.EditAction -> editAction(state, action)
+ is AppAction.FinishEdit -> finishEditing(state, action)
+ is AppAction.HideTabs -> hideTabs(state)
+ is AppAction.ShowFirstRun -> showFirstRun(state)
+ is AppAction.FinishFirstRun -> finishFirstRun(state, action)
+ is AppAction.Lock -> lock(state, action)
+ is AppAction.Unlock -> unlock(state, action)
+ is AppAction.OpenSettings -> openSettings(state, action)
+ is AppAction.NavigateUp -> navigateUp(state, action)
+ is AppAction.OpenTab -> openTab(state, action)
+ is AppAction.TopSitesChange -> topSitesChanged(state, action)
+ is AppAction.SitePermissionOptionChange -> sitePermissionOptionChanged(state, action)
+ is AppAction.SecretSettingsStateChange -> secretSettingsStateChanged(
+ state,
+ action,
+ )
+ is AppAction.ShowEraseTabsCfrChange -> showEraseTabsCfrChanged(state, action)
+ is AppAction.ShowStartBrowsingCfrChange -> showStartBrowsingCfrChanged(state, action)
+ is AppAction.ShowTrackingProtectionCfrChange -> showTrackingProtectionCfrChanged(
+ state,
+ action,
+ )
+ is AppAction.OpenSitePermissionOptionsScreen -> openSitePermissionOptionsScreen(
+ state,
+ action,
+ )
+ is AppAction.ShowHomeScreen -> showHomeScreen(state)
+ is AppAction.ShowOnboardingSecondScreen -> showOnBoardingSecondScreen(state)
+ is AppAction.ShowSearchWidgetSnackBar -> showSearchWidgetSnackBarChanged(state, action)
+ is AppAction.ShowCookieBannerCfrChange -> showCookieBannerCfrChanged(state, action)
+ }
+ }
+}
+
+/**
+ * The currently selected tab has changed.
+ */
+private fun selectionChanged(state: AppState, action: AppAction.SelectionChanged): AppState {
+ if (state.screen is Screen.FirstRun || state.screen is Screen.Locked) {
+ return state
+ }
+
+ return state.copy(
+ screen = Screen.Browser(tabId = action.tabId, showTabs = false),
+ )
+}
+
+/**
+ * All tabs have been closed.
+ */
+private fun noTabs(state: AppState): AppState {
+ if (state.screen is Screen.Home || state.screen is Screen.FirstRun || state.screen is Screen.Locked) {
+ return state
+ }
+ return state.copy(screen = Screen.Home)
+}
+
+/**
+ * The user wants to edit the URL of a tab.
+ */
+private fun editAction(state: AppState, action: AppAction.EditAction): AppState {
+ return state.copy(
+ screen = Screen.EditUrl(action.tabId),
+ )
+}
+
+/**
+ * The user finished editing the URL.
+ */
+private fun finishEditing(state: AppState, action: AppAction.FinishEdit): AppState {
+ return state.copy(
+ screen = Screen.Browser(tabId = action.tabId, showTabs = false),
+ )
+}
+
+/**
+ * Hide the tabs tray.
+ */
+private fun hideTabs(state: AppState): AppState {
+ return if (state.screen is Screen.Browser) {
+ state.copy(screen = state.screen.copy(showTabs = false))
+ } else {
+ state
+ }
+}
+
+/**
+ * The user finished the first run onboarding.
+ */
+private fun finishFirstRun(state: AppState, action: AppAction.FinishFirstRun): AppState {
+ return if (action.tabId != null) {
+ state.copy(screen = Screen.Browser(action.tabId, showTabs = false))
+ } else {
+ state.copy(screen = Screen.Home)
+ }
+}
+
+/**
+ * Force showing the first run screen (for testing).
+ */
+private fun showFirstRun(state: AppState): AppState {
+ return state.copy(screen = Screen.FirstRun)
+}
+
+private fun showOnBoardingSecondScreen(state: AppState): AppState {
+ return state.copy(screen = Screen.OnboardingSecondScreen)
+}
+
+/**
+ * Force showing the home screen.
+ */
+private fun showHomeScreen(state: AppState): AppState {
+ return state.copy(screen = Screen.Home)
+}
+
+/**
+ * Lock the application.
+ */
+private fun lock(state: AppState, action: AppAction.Lock): AppState {
+ return state.copy(screen = Screen.Locked(action.bundle))
+}
+
+/**
+ * Unlock the application.
+ */
+private fun unlock(state: AppState, action: AppAction.Unlock): AppState {
+ if (state.screen !is Screen.Locked) {
+ return state
+ }
+
+ return if (action.tabId != null) {
+ state.copy(screen = Screen.Browser(action.tabId, showTabs = false))
+ } else {
+ state.copy(screen = Screen.Home)
+ }
+}
+
+private fun openSettings(state: AppState, action: AppAction.OpenSettings): AppState {
+ return state.copy(
+ screen = Screen.Settings(page = action.page),
+ )
+}
+
+private fun openTab(state: AppState, action: AppAction.OpenTab): AppState {
+ return state.copy(
+ screen = Screen.Browser(tabId = action.tabId, showTabs = false),
+ )
+}
+
+/**
+ * The list of [TopSite] has changed.
+ */
+private fun topSitesChanged(state: AppState, action: AppAction.TopSitesChange): AppState {
+ return state.copy(topSites = action.topSites)
+}
+
+/**
+ * The rules of site permissions autoplay has changed.
+ */
+private fun sitePermissionOptionChanged(
+ state: AppState,
+ action: AppAction.SitePermissionOptionChange,
+): AppState {
+ return state.copy(sitePermissionOptionChange = action.value)
+}
+
+/**
+ * The state of secret settings has changed.
+ */
+private fun secretSettingsStateChanged(
+ state: AppState,
+ action: AppAction.SecretSettingsStateChange,
+): AppState {
+ return state.copy(secretSettingsEnabled = action.enabled)
+}
+
+/**
+ * The state of erase tabs CFR changed
+ */
+private fun showEraseTabsCfrChanged(
+ state: AppState,
+ action: AppAction.ShowEraseTabsCfrChange,
+): AppState {
+ return state.copy(showEraseTabsCfr = action.value)
+}
+
+/**
+ * Update whether the start browsing CFR should be shown or not
+ */
+private fun showStartBrowsingCfrChanged(
+ state: AppState,
+ action: AppAction.ShowStartBrowsingCfrChange,
+): AppState {
+ return state.copy(showStartBrowsingTabsCfr = action.value)
+}
+
+/**
+ * The state of search widget snackBar changed
+ */
+private fun showSearchWidgetSnackBarChanged(
+ state: AppState,
+ action: AppAction.ShowSearchWidgetSnackBar,
+): AppState {
+ return state.copy(showSearchWidgetSnackbar = action.value)
+}
+
+/**
+ * The state of tracking protection CFR changed
+ */
+private fun showTrackingProtectionCfrChanged(
+ state: AppState,
+ action: AppAction.ShowTrackingProtectionCfrChange,
+): AppState {
+ return state.copy(showTrackingProtectionCfrForTab = action.value)
+}
+
+/**
+ * The state of cookie banner CFR changed
+ */
+private fun showCookieBannerCfrChanged(
+ state: AppState,
+ action: AppAction.ShowCookieBannerCfrChange,
+): AppState {
+ return state.copy(showCookieBannerCfr = action.value)
+}
+
+private fun openSitePermissionOptionsScreen(
+ state: AppState,
+ action: AppAction.OpenSitePermissionOptionsScreen,
+): AppState {
+ return state.copy(screen = Screen.SitePermissionOptionsScreen(sitePermission = action.sitePermission))
+}
+
+@Suppress("ComplexMethod", "ReturnCount")
+private fun navigateUp(state: AppState, action: AppAction.NavigateUp): AppState {
+ if (state.screen is Screen.Browser) {
+ val screen = if (action.tabId != null) {
+ Screen.Browser(tabId = action.tabId, showTabs = false)
+ } else {
+ Screen.Home
+ }
+ return state.copy(screen = screen)
+ }
+
+ if (state.screen is Screen.SitePermissionOptionsScreen) {
+ return state.copy(screen = Screen.Settings(page = Screen.Settings.Page.SitePermissions))
+ }
+
+ if (state.screen !is Screen.Settings) {
+ return state
+ }
+
+ val screen = when (state.screen.page) {
+ Screen.Settings.Page.Start -> if (action.tabId != null) {
+ Screen.Browser(tabId = action.tabId, showTabs = false)
+ } else {
+ Screen.Home
+ }
+
+ Screen.Settings.Page.General -> Screen.Settings(page = Screen.Settings.Page.Start)
+ Screen.Settings.Page.Privacy -> Screen.Settings(page = Screen.Settings.Page.Start)
+ Screen.Settings.Page.Search -> Screen.Settings(page = Screen.Settings.Page.Start)
+ Screen.Settings.Page.Advanced -> Screen.Settings(page = Screen.Settings.Page.Start)
+ Screen.Settings.Page.Mozilla -> Screen.Settings(page = Screen.Settings.Page.Start)
+
+ Screen.Settings.Page.PrivacyExceptions -> Screen.Settings(page = Screen.Settings.Page.Privacy)
+ Screen.Settings.Page.PrivacyExceptionsRemove -> Screen.Settings(page = Screen.Settings.Page.PrivacyExceptions)
+ Screen.Settings.Page.SitePermissions -> Screen.Settings(page = Screen.Settings.Page.Privacy)
+ Screen.Settings.Page.Studies -> Screen.Settings(page = Screen.Settings.Page.Privacy)
+ Screen.Settings.Page.SecretSettings -> Screen.Settings(page = Screen.Settings.Page.Advanced)
+
+ Screen.Settings.Page.SearchList -> Screen.Settings(page = Screen.Settings.Page.Search)
+ Screen.Settings.Page.SearchRemove -> Screen.Settings(page = Screen.Settings.Page.SearchList)
+ Screen.Settings.Page.SearchAdd -> Screen.Settings(page = Screen.Settings.Page.SearchList)
+ Screen.Settings.Page.SearchAutocomplete -> Screen.Settings(page = Screen.Settings.Page.Search)
+ Screen.Settings.Page.SearchAutocompleteList -> Screen.Settings(page = Screen.Settings.Page.SearchAutocomplete)
+
+ Screen.Settings.Page.SearchAutocompleteAdd -> Screen.Settings(
+ page = Screen.Settings.Page.SearchAutocompleteList,
+ )
+ Screen.Settings.Page.SearchAutocompleteRemove -> Screen.Settings(
+ page = Screen.Settings.Page.SearchAutocompleteList,
+ )
+ Screen.Settings.Page.About -> Screen.Settings(page = Screen.Settings.Page.Mozilla)
+ Screen.Settings.Page.Licenses -> Screen.Settings(page = Screen.Settings.Page.Mozilla)
+ Screen.Settings.Page.Locale -> Screen.Settings(page = Screen.Settings.Page.General)
+ Screen.Settings.Page.CookieBanner -> Screen.Settings(page = Screen.Settings.Page.Privacy)
+ }
+
+ return state.copy(screen = screen)
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppState.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppState.kt
new file mode 100644
index 0000000000..92604fbad0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppState.kt
@@ -0,0 +1,124 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.state
+
+import android.os.Bundle
+import mozilla.components.feature.top.sites.TopSite
+import mozilla.components.lib.state.State
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermission
+import java.util.UUID
+
+/**
+ * Global state of the application.
+ *
+ * @property screen The currently displayed screen.
+ * @property topSites The list of [TopSite] to display on the Home screen.
+ * @property sitePermissionOptionChange A flag which reflects the state of site permission rules,
+ * whether they have been updated or not
+ * @property secretSettingsEnabled A flag which reflects the state of debug secret settings
+ * @property showEraseTabsCfr A flag which reflects the state erase tabs CFR
+ * @property showStartBrowsingTabsCfr A flag which reflects the state of start browsing CFR
+ * @property showSearchWidgetSnackbar A flag which reflects the state of search widget snackbar
+ * @property showCookieBannerCfr A flag witch reflects the state of cookie banner CFR
+ */
+data class AppState(
+ val screen: Screen,
+ val topSites: List<TopSite> = emptyList(),
+ val sitePermissionOptionChange: Boolean = false,
+ val secretSettingsEnabled: Boolean = false,
+ val showEraseTabsCfr: Boolean = false,
+ val showSearchWidgetSnackbar: Boolean = false,
+ val showTrackingProtectionCfrForTab: Map<String, Boolean> = emptyMap(),
+ val showStartBrowsingTabsCfr: Boolean = false,
+ val showCookieBannerCfr: Boolean = false,
+) : State
+
+/**
+ * A group of screens that the app can display.
+ *
+ * @property id A unique ID for identifying a screen. Only if this ID changes the screen is
+ * considered a new screen that requires a navigation (as opposed to the state of the screen
+ * changing).
+ */
+sealed class Screen {
+ open val id = UUID.randomUUID().toString()
+
+ /**
+ * First run onboarding.
+ */
+ object FirstRun : Screen()
+
+ /**
+ * Second screen from new onboarding flow.
+ */
+ object OnboardingSecondScreen : Screen()
+
+ /**
+ * The home screen.
+ */
+ object Home : Screen()
+
+ /**
+ * Browser screen.
+ *
+ * @property tabId The ID of the displayed tab.
+ * @property showTabs Whether to show the tabs tray.
+ */
+ data class Browser(
+ val tabId: String,
+ val showTabs: Boolean,
+ ) : Screen() {
+ // Whenever the showTabs property changes we want to treat this as a new screen and force
+ // a navigation.
+ override val id: String = "${super.id}_$showTabs}"
+ }
+
+ /**
+ * Editing the URL of a tab.
+ */
+ data class EditUrl(
+ val tabId: String,
+ ) : Screen()
+
+ /**
+ * The application is locked (and requires unlocking).
+ *
+ * @param bundle it is used for app navigation. If the user can unlock with success he should
+ * be redirected to a certain screen.It comes from the external intent.
+ */
+ data class Locked(val bundle: Bundle? = null) : Screen()
+ data class SitePermissionOptionsScreen(val sitePermission: SitePermission) : Screen()
+ data class Settings(
+ val page: Page = Page.Start,
+ ) : Screen() {
+ enum class Page {
+ Start,
+
+ General,
+ Privacy,
+ Search,
+ Advanced,
+ Mozilla,
+ About,
+ Licenses,
+ Locale,
+
+ PrivacyExceptions,
+ PrivacyExceptionsRemove,
+ CookieBanner,
+ SitePermissions,
+ Studies,
+ SecretSettings,
+
+ SearchList,
+ SearchRemove,
+ SearchAdd,
+ SearchAutocomplete,
+ SearchAutocompleteList,
+ SearchAutocompleteAdd,
+ SearchAutocompleteRemove,
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppStore.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppStore.kt
new file mode 100644
index 0000000000..b86cba96da
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/state/AppStore.kt
@@ -0,0 +1,14 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.state
+
+import mozilla.components.lib.state.Store
+
+/**
+ * A [Store] keeping track of the global app state.
+ */
+class AppStore(
+ initialState: AppState,
+) : Store<AppState, AppAction>(initialState, AppReducer)
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/ActivationPing.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/ActivationPing.kt
new file mode 100644
index 0000000000..efeb9579cc
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/ActivationPing.kt
@@ -0,0 +1,84 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry
+
+import android.content.Context
+import android.content.SharedPreferences
+import androidx.annotation.VisibleForTesting
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import mozilla.components.support.base.log.logger.Logger
+import org.mozilla.focus.GleanMetrics.Activation
+import org.mozilla.focus.GleanMetrics.Pings
+
+/**
+ * Ensures that only one activation ping is ever sent.
+ *
+ * (Taken from Fenix)
+ */
+class ActivationPing(private val context: Context) {
+
+ private val prefs: SharedPreferences by lazy {
+ context.getSharedPreferences(
+ "ActivationPing.prefs",
+ Context.MODE_PRIVATE,
+ )
+ }
+
+ /**
+ * Checks whether or not the activation ping was already
+ * triggered by the application.
+ *
+ * Note that this only tells us that Fenix triggered the
+ * ping and then delegated the transmission to Glean. We
+ * have no way to tell if it was actually sent or not.
+ *
+ * @return true if it was already triggered, false otherwise.
+ */
+ @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+ internal fun wasAlreadyTriggered(): Boolean {
+ return prefs.getBoolean("ping_sent", false)
+ }
+
+ /**
+ * Marks the "activation" ping as triggered by the application.
+ * This ensures the ping is not triggered again at the next app
+ * start.
+ */
+ @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+ internal fun markAsTriggered() {
+ prefs.edit().putBoolean("ping_sent", true).apply()
+ }
+
+ /**
+ * Fills the metrics and triggers the 'activation' ping.
+ * This is a separate function to simplify unit-testing.
+ */
+ @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+ internal fun triggerPing() {
+ // Generate the activation_id.
+ Activation.activationId.generateAndSet()
+
+ CoroutineScope(Dispatchers.IO).launch {
+ Pings.activation.submit()
+ markAsTriggered()
+ }
+ }
+
+ /**
+ * Trigger sending the `activation` ping if it wasn't sent already.
+ * Then, mark it so that it doesn't get triggered next time Fenix
+ * starts.
+ */
+ fun checkAndSend() {
+ if (wasAlreadyTriggered()) {
+ Logger.debug("ActivationPing - already generated")
+ return
+ }
+
+ triggerPing()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/BrowsersCache.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/BrowsersCache.kt
new file mode 100644
index 0000000000..1f70b9b679
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/BrowsersCache.kt
@@ -0,0 +1,41 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry
+
+import android.content.Context
+import androidx.annotation.VisibleForTesting
+import mozilla.components.support.utils.Browsers
+
+/**
+ * Caches the list of browsers installed on a user's device.
+ *
+ * BrowsersCache caches the list of installed browsers is gathered lazily when it is first accessed
+ * after initial creation or invalidation. For that reason, a context is required every time
+ * the cache is accessed.
+ *
+ * Users are responsible for invalidating the cache at the appropriate time. It is left up to the
+ * user to determine appropriate policies for maintaining the validity of the cache. If, when the
+ * cache is accessed, it is filled, the contents will be returned. As mentioned above, the cache
+ * will be lazily refilled after invalidation. In other words, invalidation is O(1).
+ *
+ * This cache is threadsafe.
+ */
+object BrowsersCache {
+ @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+ internal var cachedBrowsers: Browsers? = null
+
+ @Synchronized
+ fun all(context: Context): Browsers {
+ run {
+ val cachedBrowsers = cachedBrowsers
+ if (cachedBrowsers != null) {
+ return cachedBrowsers
+ }
+ }
+ return Browsers.all(context).also {
+ cachedBrowsers = it
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/FactsProcessor.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/FactsProcessor.kt
new file mode 100644
index 0000000000..c3c60136bb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/FactsProcessor.kt
@@ -0,0 +1,82 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry
+
+import androidx.annotation.VisibleForTesting
+import mozilla.components.browser.menu.facts.BrowserMenuFacts
+import mozilla.components.feature.contextmenu.facts.ContextMenuFacts
+import mozilla.components.feature.customtabs.CustomTabsFacts
+import mozilla.components.feature.search.telemetry.ads.AdsTelemetry
+import mozilla.components.feature.search.telemetry.incontent.InContentTelemetry
+import mozilla.components.service.glean.private.NoExtras
+import mozilla.components.support.base.Component
+import mozilla.components.support.base.facts.Fact
+import mozilla.components.support.base.facts.FactProcessor
+import mozilla.components.support.base.facts.Facts
+import org.mozilla.focus.GleanMetrics.Browser
+import org.mozilla.focus.GleanMetrics.BrowserSearch
+import org.mozilla.focus.GleanMetrics.ContextMenu
+import org.mozilla.focus.GleanMetrics.CustomTabsToolbar
+
+/**
+ * Processes all [Fact]s emitted from Android Components based on which the appropriate telemetry
+ * will be collected.
+ */
+object FactsProcessor {
+ fun initialize() {
+ Facts.registerProcessor(
+ object : FactProcessor {
+ override fun process(fact: Fact) {
+ fact.process()
+ }
+ },
+ )
+ }
+
+ @VisibleForTesting
+ internal fun Fact.process() = when (Pair(component, item)) {
+ Component.FEATURE_SEARCH to AdsTelemetry.SERP_ADD_CLICKED -> {
+ BrowserSearch.adClicks[value!!].add()
+ }
+ Component.FEATURE_SEARCH to AdsTelemetry.SERP_SHOWN_WITH_ADDS -> {
+ BrowserSearch.withAds[value!!].add()
+ }
+ Component.FEATURE_SEARCH to InContentTelemetry.IN_CONTENT_SEARCH -> {
+ BrowserSearch.inContent[value!!].add()
+ }
+
+ Component.FEATURE_CUSTOMTABS to CustomTabsFacts.Items.CLOSE -> {
+ CustomTabsToolbar.closeTabTapped.record(NoExtras())
+ }
+
+ Component.FEATURE_CUSTOMTABS to CustomTabsFacts.Items.ACTION_BUTTON -> {
+ CustomTabsToolbar.actionButtonTapped.record(NoExtras())
+ }
+
+ Component.FEATURE_CONTEXTMENU to ContextMenuFacts.Items.ITEM -> {
+ ContextMenu.itemTapped.record(ContextMenu.ItemTappedExtra(toContextMenuExtraKey()))
+ }
+
+ Component.BROWSER_MENU to BrowserMenuFacts.Items.WEB_EXTENSION_MENU_ITEM -> {
+ if (metadata?.get("id") == "webcompat-reporter@mozilla.org") {
+ Browser.reportSiteIssueCounter.add()
+ } else {
+ // other extension action was emitted
+ }
+ }
+
+ else -> Unit
+ }
+}
+
+/**
+ * Extracts an extraKey from a context menu Fact.
+ */
+fun Fact.toContextMenuExtraKey() =
+ if (component == Component.FEATURE_CONTEXTMENU) {
+ metadata?.get("item").toString().removePrefix("mozac.feature.contextmenu.")
+ } else {
+ throw IllegalArgumentException("Fact is not a context menu fact")
+ }
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/FenixProductDetector.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/FenixProductDetector.kt
new file mode 100644
index 0000000000..2c7de5af7e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/FenixProductDetector.kt
@@ -0,0 +1,49 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry
+
+import android.content.Context
+import android.content.pm.ActivityInfo
+import android.content.pm.PackageManager
+import mozilla.components.support.utils.ext.getPackageInfoCompat
+
+object FenixProductDetector {
+ enum class FenixVersion(val packageName: String) {
+ FIREFOX("org.mozilla.firefox"),
+ FIREFOX_NIGHTLY("org.mozilla.fenix"),
+ FIREFOX_BETA("org.mozilla.firefox_beta"),
+ }
+
+ fun getInstalledFenixVersions(context: Context): List<String> {
+ val fenixVersions = mutableListOf<String>()
+
+ for (product in FenixVersion.values()) {
+ if (packageIsInstalled(context, product.packageName)) {
+ fenixVersions.add(product.packageName)
+ }
+ }
+
+ return fenixVersions
+ }
+
+ fun isFenixDefaultBrowser(defaultBrowser: ActivityInfo?): Boolean {
+ if (defaultBrowser == null) return false
+
+ for (product in FenixVersion.values()) {
+ if (product.packageName == defaultBrowser.packageName) return true
+ }
+ return false
+ }
+
+ private fun packageIsInstalled(context: Context, packageName: String): Boolean {
+ try {
+ context.packageManager.getPackageInfoCompat(packageName, 0)
+ } catch (e: PackageManager.NameNotFoundException) {
+ return false
+ }
+
+ return true
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/GleanMetricsService.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/GleanMetricsService.kt
new file mode 100644
index 0000000000..1b6aec961c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/GleanMetricsService.kt
@@ -0,0 +1,243 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry
+
+import android.content.Context
+import android.os.Build
+import android.os.RemoteException
+import android.os.StrictMode
+import androidx.annotation.VisibleForTesting
+import androidx.core.app.NotificationManagerCompat
+import androidx.preference.PreferenceManager
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.DelicateCoroutinesApi
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.Dispatchers.IO
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.async
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+import mozilla.components.browser.state.search.SearchEngine
+import mozilla.components.browser.state.state.selectedOrDefaultSearchEngine
+import mozilla.components.feature.search.ext.waitForSelectedOrDefaultSearchEngine
+import mozilla.components.feature.search.telemetry.SearchProviderModel
+import mozilla.components.feature.search.telemetry.SerpTelemetryRepository
+import mozilla.components.service.glean.net.ConceptFetchHttpUploader
+import mozilla.components.support.base.log.logger.Logger
+import mozilla.components.support.ktx.android.content.res.readJSONObject
+import mozilla.telemetry.glean.Glean
+import mozilla.telemetry.glean.config.Configuration
+import org.mozilla.focus.BuildConfig
+import org.mozilla.focus.Components
+import org.mozilla.focus.GleanMetrics.Browser
+import org.mozilla.focus.GleanMetrics.GleanBuildInfo
+import org.mozilla.focus.GleanMetrics.Metrics
+import org.mozilla.focus.GleanMetrics.MozillaProducts
+import org.mozilla.focus.GleanMetrics.Notifications
+import org.mozilla.focus.GleanMetrics.Pings
+import org.mozilla.focus.GleanMetrics.Preferences
+import org.mozilla.focus.GleanMetrics.Shortcuts
+import org.mozilla.focus.GleanMetrics.TrackingProtection
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.topsites.DefaultTopSitesStorage.Companion.TOP_SITES_MAX_LIMIT
+import org.mozilla.focus.utils.AppConstants
+import org.mozilla.focus.utils.Settings
+
+/**
+ * Glean telemetry service.
+ *
+ * To track events, use Glean's generated bindings directly.
+ */
+class GleanMetricsService(context: Context) : MetricsService {
+
+ @Suppress("UnusedPrivateMember")
+ private val activationPing = ActivationPing(context)
+
+ companion object {
+ // collection name to fetch from server for SERP telemetry
+ const val COLLECTION_NAME = "search-telemetry-v2"
+
+ // urls for prod and stage remote settings server
+ internal const val REMOTE_PROD_ENDPOINT_URL = "https://firefox.settings.services.mozilla.com"
+ internal const val REMOTE_STAGE_ENDPOINT_URL = "https://firefox.settings.services.allizom.org"
+
+ private val isEnabledByDefault: Boolean
+ get() = !AppConstants.isKlarBuild
+
+ private fun isDeviceWithTelemetryDisabled(): Boolean {
+ val brand = "blackberry"
+ val device = "bbf100"
+
+ return Build.BRAND == brand && Build.DEVICE == device
+ }
+
+ /**
+ * Determines whether or not telemetry is enabled.
+ */
+ @JvmStatic
+ fun isTelemetryEnabled(context: Context): Boolean {
+ if (isDeviceWithTelemetryDisabled()) { return false }
+
+ // The first access to shared preferences will require a disk read.
+ val threadPolicy = StrictMode.allowThreadDiskReads()
+ try {
+ val resources = context.resources
+ val preferences = PreferenceManager.getDefaultSharedPreferences(context)
+
+ return preferences.getBoolean(
+ resources.getString(R.string.pref_key_telemetry),
+ isEnabledByDefault,
+ ) && !AppConstants.isDevBuild
+ } finally {
+ StrictMode.setThreadPolicy(threadPolicy)
+ }
+ }
+ }
+
+ @OptIn(DelicateCoroutinesApi::class)
+ override fun initialize(context: Context) {
+ val components = context.components
+ val settings = context.settings
+ val telemetryEnabled = isTelemetryEnabled(context)
+
+ Glean.initialize(
+ applicationContext = context,
+ uploadEnabled = telemetryEnabled,
+ configuration = Configuration(
+ channel = BuildConfig.FLAVOR,
+ httpClient = ConceptFetchHttpUploader(
+ client = lazy(LazyThreadSafetyMode.NONE) { components.client },
+ usePrivateRequest = true,
+ ),
+ ),
+ buildInfo = GleanBuildInfo.buildInfo,
+ )
+
+ Glean.registerPings(Pings)
+
+ if (telemetryEnabled) {
+ CoroutineScope(Dispatchers.Main).launch {
+ val readJson = { context.assets.readJSONObject("search/search_telemetry_v2.json") }
+ val providerList = withContext(Dispatchers.IO) {
+ SerpTelemetryRepository(
+ rootStorageDirectory = context.filesDir,
+ readJson = readJson,
+ collectionName = COLLECTION_NAME,
+ serverUrl = if (context.settings.useProductionRemoteSettingsServer) {
+ REMOTE_PROD_ENDPOINT_URL
+ } else {
+ REMOTE_STAGE_ENDPOINT_URL
+ },
+ ).updateProviderList()
+ }
+ installSearchTelemetryExtensions(components, providerList)
+ }
+ }
+
+ // Do this immediately after init.
+ GlobalScope.launch(IO) {
+ // Wait for preferences to be collected before we send the activation ping.
+ collectPrefMetricsAsync(components, settings, context).await()
+
+ components.store.waitForSelectedOrDefaultSearchEngine { searchEngine ->
+ if (searchEngine != null) {
+ Browser.defaultSearchEngine.set(getDefaultSearchEngineIdentifierForTelemetry(context))
+ }
+
+ activationPing.checkAndSend()
+ }
+ }
+ }
+
+ private fun collectPrefMetricsAsync(
+ components: Components,
+ settings: Settings,
+ context: Context,
+ ) = CoroutineScope(IO).async {
+ val installedBrowsers = BrowsersCache.all(context)
+ val hasFenixInstalled = FenixProductDetector.getInstalledFenixVersions(context).isNotEmpty()
+ val isFenixDefaultBrowser = FenixProductDetector.isFenixDefaultBrowser(installedBrowsers.defaultBrowser)
+ val isFocusDefaultBrowser = installedBrowsers.isDefaultBrowser
+
+ Metrics.searchWidgetInstalled.set(settings.searchWidgetInstalled)
+
+ Browser.isDefault.set(isFocusDefaultBrowser)
+ Browser.localeOverride.set(components.store.state.locale?.displayName ?: "none")
+ val shortcutsOnHomeNumber = components.topSitesStorage.getTopSites(
+ totalSites = TOP_SITES_MAX_LIMIT,
+ frecencyConfig = null,
+ ).size
+ Shortcuts.shortcutsOnHomeNumber.set(shortcutsOnHomeNumber.toLong())
+
+ val installSourcePackage = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+ context.packageManager.getInstallSourceInfo(context.packageName).installingPackageName
+ } else {
+ @Suppress("DEPRECATION")
+ context.packageManager.getInstallerPackageName(context.packageName)
+ }
+
+ Browser.installSource.set(installSourcePackage.orEmpty())
+
+ // Fenix telemetry
+ MozillaProducts.hasFenixInstalled.set(hasFenixInstalled)
+ MozillaProducts.isFenixDefaultBrowser.set(isFenixDefaultBrowser)
+
+ // tracking protection metrics
+ TrackingProtection.hasAdvertisingBlocked.set(settings.hasAdvertisingBlocked())
+ TrackingProtection.hasAnalyticsBlocked.set(settings.hasAnalyticsBlocked())
+ TrackingProtection.hasContentBlocked.set(settings.shouldBlockOtherTrackers())
+ TrackingProtection.hasSocialBlocked.set(settings.hasSocialBlocked())
+
+ // theme telemetry
+ val currentTheme =
+ when {
+ settings.lightThemeSelected -> {
+ "Light"
+ }
+ settings.darkThemeSelected -> {
+ "Dark"
+ }
+
+ settings.useDefaultThemeSelected -> {
+ "Follow device"
+ }
+ else -> ""
+ }
+ if (currentTheme.isNotEmpty()) {
+ Preferences.userTheme.set(currentTheme)
+ }
+
+ try {
+ Notifications.permissionGranted.set(
+ NotificationManagerCompat.from(context).areNotificationsEnabled(),
+ )
+ } catch (e: RemoteException) {
+ Logger.warn("Failed to check notifications state", e)
+ }
+ }
+
+ private fun getDefaultSearchEngineIdentifierForTelemetry(context: Context): String {
+ val searchEngine = context.components.store.state.search.selectedOrDefaultSearchEngine
+ return if (searchEngine?.type == SearchEngine.Type.CUSTOM) {
+ "custom"
+ } else {
+ searchEngine?.name ?: "<none>"
+ }
+ }
+
+ @VisibleForTesting
+ internal suspend fun installSearchTelemetryExtensions(
+ components: Components,
+ providerList: List<SearchProviderModel>,
+ ) {
+ val engine = components.engine
+ components.store.apply {
+ components.adsTelemetry.install(engine, this@apply, providerList)
+ components.searchTelemetry.install(engine, this@apply, providerList)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/MetricsService.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/MetricsService.kt
new file mode 100644
index 0000000000..e43f3e0330
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/MetricsService.kt
@@ -0,0 +1,18 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry
+
+import android.content.Context
+
+/**
+ * A service for tracking telemetry events in various parts of the app.
+ */
+interface MetricsService {
+
+ /**
+ * Perform any initialization that the service may require.
+ */
+ fun initialize(context: Context)
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/ProfilerMarkerFactProcessor.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/ProfilerMarkerFactProcessor.kt
new file mode 100644
index 0000000000..48980560b1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/ProfilerMarkerFactProcessor.kt
@@ -0,0 +1,85 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry
+
+import android.os.Handler
+import android.os.Looper
+import androidx.annotation.VisibleForTesting
+import androidx.annotation.VisibleForTesting.Companion.PRIVATE
+import mozilla.components.concept.base.profiler.Profiler
+import mozilla.components.support.base.facts.Action
+import mozilla.components.support.base.facts.Fact
+import mozilla.components.support.base.facts.FactProcessor
+
+/**
+ * A fact processor that adds Gecko profiler markers for [Fact]s matching a specific format.
+ * We look for the following format:
+ * ```
+ * Fact(
+ * action = Action.IMPLEMENTATION_DETAIL
+ * item = <marker name>
+ * )
+ * ```
+ *
+ * This allows us to add profiler markers from android-components code. Using the Fact API for this
+ * purpose, rather than calling [Profiler.addMarker] directly inside components, has trade-offs. Its
+ * downsides are that it is less explicit and tooling does not work as well on it. However, we felt
+ * it was worthwhile because:
+ *
+ * 1. we don't know what profiler markers are useful so we want to be able to iterate quickly.
+ * Adding dependencies on the Profiler and landing these changes across two repos hinders that
+ * 2. we want to instrument the code as close to specific method calls as possible (e.g.
+ * GeckoSession.loadUrl) but it's not always easy to do so (e.g. in the previous example, passing a
+ * Profiler reference to GeckoEngineSession is difficult because GES is not a global dependency)
+ * 3. we can only add Profiler markers from the main thread so adding markers will become more
+ * difficult if we have to understand the threading needs of each Profiler call site
+ *
+ * An additional benefit with having this infrastructure is that it's easy to add Profiler markers
+ * for local debugging.
+ *
+ * That being said, if we find a location where it would be valuable to have a long term Profiler
+ * marker, we should consider instrumenting it via the [Profiler] API.
+ */
+class ProfilerMarkerFactProcessor
+@VisibleForTesting(otherwise = PRIVATE)
+constructor(
+ // We use a provider to defer accessing the profiler until we need it, because the property is a
+ // child of the engine property and we don't want to initialize it earlier than we intend to.
+ private val profilerProvider: () -> Profiler?,
+ private val mainHandler: Handler = Handler(Looper.getMainLooper()),
+ private val getMyLooper: () -> Looper? = { Looper.myLooper() },
+) : FactProcessor {
+
+ override fun process(fact: Fact) {
+ if (fact.action != Action.IMPLEMENTATION_DETAIL) {
+ return
+ }
+
+ val markerName = fact.item
+
+ // Java profiler markers can only be added from the main thread so, for now, we push all
+ // markers to the the main thread (which also groups all the markers together,
+ // making it easier to read).
+ val profiler = profilerProvider()
+ if (getMyLooper() == mainHandler.looper) {
+ profiler?.addMarker(markerName)
+ } else {
+ // To reduce the performance burden, we could early return if the profiler isn't active.
+ // However, this would change the performance characteristics from when the profiler is
+ // active and when it's inactive so we always post instead.
+ val now = profiler?.getProfilerTime()
+ mainHandler.post {
+ // We set now to both start and end time because we want a marker of without duration
+ // and if end is omitted, the duration is created implicitly.
+ profiler?.addMarker(markerName, now, now, null)
+ }
+ }
+ }
+
+ companion object {
+ fun create(profilerProvider: () -> Profiler?) =
+ ProfilerMarkerFactProcessor(profilerProvider)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/TelemetryMiddleware.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/TelemetryMiddleware.kt
new file mode 100644
index 0000000000..7f716820eb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/TelemetryMiddleware.kt
@@ -0,0 +1,148 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry
+
+import mozilla.components.browser.state.action.BrowserAction
+import mozilla.components.browser.state.action.ContentAction
+import mozilla.components.browser.state.action.CustomTabListAction
+import mozilla.components.browser.state.action.DownloadAction
+import mozilla.components.browser.state.action.TabListAction
+import mozilla.components.browser.state.selector.findTab
+import mozilla.components.browser.state.state.BrowserState
+import mozilla.components.browser.state.state.CustomTabConfig
+import mozilla.components.browser.state.state.SessionState
+import mozilla.components.browser.state.state.TabSessionState
+import mozilla.components.browser.state.state.content.DownloadState
+import mozilla.components.concept.engine.window.WindowRequest
+import mozilla.components.lib.state.Middleware
+import mozilla.components.lib.state.MiddlewareContext
+import mozilla.components.service.glean.private.NoExtras
+import org.mozilla.focus.GleanMetrics.AppOpened
+import org.mozilla.focus.GleanMetrics.Browser
+import org.mozilla.focus.GleanMetrics.Downloads
+import org.mozilla.focus.GleanMetrics.TabCount
+import kotlin.collections.forEach as withEach
+
+class TelemetryMiddleware : Middleware<BrowserState, BrowserAction> {
+ override fun invoke(
+ context: MiddlewareContext<BrowserState, BrowserAction>,
+ next: (BrowserAction) -> Unit,
+ action: BrowserAction,
+ ) {
+ next(action)
+
+ when (action) {
+ is TabListAction.AddTabAction -> {
+ collectTelemetry(action.tab, context)
+ }
+ is TabListAction.AddMultipleTabsAction -> action.tabs.withEach {
+ collectTelemetry(it, context)
+ }
+
+ is CustomTabListAction.TurnCustomTabIntoNormalTabAction -> {
+ TabCount.newTabOpened.record(
+ TabCount.NewTabOpenedExtra(context.state.tabs.size, "custom tab"),
+ )
+ }
+
+ is ContentAction.UpdateLoadingStateAction -> {
+ context.state.findTab(action.sessionId)?.let { tab ->
+ // Record UriOpened event when a page finishes loading
+ if (!tab.content.loading && !action.loading) {
+ Browser.totalUriCount.add()
+ }
+ }
+ }
+ is DownloadAction.AddDownloadAction -> {
+ Downloads.downloadStarted.record(NoExtras())
+ }
+ is DownloadAction.UpdateDownloadAction -> {
+ if (action.download.status == DownloadState.Status.CANCELLED) {
+ Downloads.downloadCanceled.record(NoExtras())
+ }
+ }
+ else -> {
+ // no-op
+ }
+ }
+ }
+
+ private fun collectTelemetry(
+ tab: SessionState,
+ context: MiddlewareContext<BrowserState, BrowserAction>,
+ ) {
+ val tabCount = context.state.tabs.size
+
+ when (tab.source) {
+ is SessionState.Source.External.ActionView -> {
+ AppOpened.browseIntent.record(NoExtras())
+ }
+ is SessionState.Source.External.ActionSend -> {
+ AppOpened.shareIntent.record(
+ AppOpened.ShareIntentExtra(tab.content.searchTerms.isNotEmpty()),
+ )
+ }
+ SessionState.Source.Internal.TextSelection -> {
+ AppOpened.textSelectionIntent.record(NoExtras())
+ }
+ SessionState.Source.Internal.HomeScreen -> {
+ AppOpened.fromLauncherSiteShortcut.record(NoExtras())
+ }
+ SessionState.Source.Internal.NewTab -> {
+ val parentTab = (tab as TabSessionState).parentId?.let { context.state.findTab(it) }
+ if (parentTab?.content?.windowRequest?.type == WindowRequest.Type.OPEN) {
+ TabCount.newTabOpened.record(
+ TabCount.NewTabOpenedExtra(tabCount, "Window.open()"),
+ )
+ } else {
+ TabCount.newTabOpened.record(
+ TabCount.NewTabOpenedExtra(tabCount, "context menu"),
+ )
+ }
+ }
+
+ else -> {
+ // For other session types we create events at the place where we create the sessions.
+ }
+ }
+ }
+
+ /**
+ * This method creates a list of options used to share with Telemetry and was migrated from A-C.
+ *
+ * @param customTabConfig The customTabConfig to use
+ * @return A list of strings representing the customTabConfig
+ */
+ @Suppress("ComplexMethod")
+ private fun generateOptions(customTabConfig: CustomTabConfig): List<String> {
+ val options = mutableListOf<String>()
+
+ if (customTabConfig.colorSchemes?.defaultColorSchemeParams?.toolbarColor != null) {
+ options.add(TOOLBAR_COLOR_OPTION)
+ }
+ if (customTabConfig.closeButtonIcon != null) options.add(CLOSE_BUTTON_OPTION)
+ if (customTabConfig.enableUrlbarHiding) options.add(DISABLE_URLBAR_HIDING_OPTION)
+ if (customTabConfig.actionButtonConfig != null) options.add(ACTION_BUTTON_OPTION)
+ if (customTabConfig.showShareMenuItem) options.add(SHARE_MENU_ITEM_OPTION)
+ if (customTabConfig.menuItems.isNotEmpty()) options.add(CUSTOMIZED_MENU_OPTION)
+ if (customTabConfig.actionButtonConfig?.tint == true) options.add(ACTION_BUTTON_TINT_OPTION)
+ if (customTabConfig.exitAnimations != null) options.add(EXIT_ANIMATION_OPTION)
+ if (customTabConfig.titleVisible) options.add(PAGE_TITLE_OPTION)
+
+ return options
+ }
+
+ companion object {
+ internal const val TOOLBAR_COLOR_OPTION = "hasToolbarColor"
+ internal const val CLOSE_BUTTON_OPTION = "hasCloseButton"
+ internal const val DISABLE_URLBAR_HIDING_OPTION = "disablesUrlbarHiding"
+ internal const val ACTION_BUTTON_OPTION = "hasActionButton"
+ internal const val SHARE_MENU_ITEM_OPTION = "hasShareItem"
+ internal const val CUSTOMIZED_MENU_OPTION = "hasCustomizedMenu"
+ internal const val ACTION_BUTTON_TINT_OPTION = "hasActionButtonTint"
+ internal const val EXIT_ANIMATION_OPTION = "hasExitAnimation"
+ internal const val PAGE_TITLE_OPTION = "hasPageTitle"
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/AppStartReasonProvider.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/AppStartReasonProvider.kt
new file mode 100644
index 0000000000..c1453e4e75
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/AppStartReasonProvider.kt
@@ -0,0 +1,99 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry.startuptelemetry
+
+import android.app.Activity
+import android.app.Application
+import android.os.Bundle
+import android.os.Handler
+import android.os.Looper
+import androidx.lifecycle.DefaultLifecycleObserver
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.ProcessLifecycleOwner
+import mozilla.components.support.base.log.logger.Logger
+import org.mozilla.focus.GleanMetrics.Metrics
+import org.mozilla.focus.telemetry.startuptelemetry.AppStartReasonProvider.StartReason
+
+private val logger = Logger("AppStartReasonProvider")
+
+/**
+ * Provides the reason this [Application] instance was started: see [StartReason] for options
+ * and [reason] for details.
+ *
+ * This class relies on specific lifecycle method call orders and main thread Runnable scheduling
+ * that could potentially change between OEMs and OS versions: **be careful when using it.** This
+ * implementation was tested on the Moto G5 Android 8.1.0 and the Pixel 2 Android 11.
+ */
+class AppStartReasonProvider {
+
+ enum class StartReason {
+ /** We don't know yet what caused this [Application] instance to be started. */
+ TO_BE_DETERMINED,
+
+ /** This [Application] instance was started due to an Activity trying to start. */
+ ACTIVITY,
+
+ /**
+ * This [Application] instance was started due to a component that is not an Activity:
+ * this may include Services, BroadcastReceivers, and ContentProviders. It may be possible
+ * to distinguish between these but it hasn't been necessary to do so yet.
+ */
+ NON_ACTIVITY,
+ }
+
+ /**
+ * The reason this [Application] instance was started. This will not be set immediately
+ * but is expected to be available by the time the first frame is drawn for the foreground Activity.
+ */
+ var reason = StartReason.TO_BE_DETERMINED
+ private set
+
+ /**
+ * Registers the handlers needed by this class: this is expected to be called from
+ * [Application.onCreate].
+ */
+ fun registerInAppOnCreate(application: Application) {
+ ProcessLifecycleOwner.get().lifecycle.addObserver(ProcessLifecycleObserver())
+ application.registerActivityLifecycleCallbacks(ActivityLifecycleCallbacks())
+ }
+
+ private inner class ProcessLifecycleObserver : DefaultLifecycleObserver {
+ override fun onCreate(owner: LifecycleOwner) {
+ Handler(Looper.getMainLooper()).post {
+ // If the Application was started by an Activity, this Runnable should execute
+ // after we learn the Activity was created. If the App was started by a Service,
+ // this Runnable should execute before the first Activity is created.
+ reason = when (reason) {
+ StartReason.TO_BE_DETERMINED -> StartReason.NON_ACTIVITY
+ StartReason.ACTIVITY -> reason // the start reason is already known: do nothing.
+ StartReason.NON_ACTIVITY -> {
+ Metrics.startReasonProcessError.set(true)
+ logger.error("AppStartReasonProvider.Process...onCreate unexpectedly called twice")
+ reason
+ }
+ }
+ }
+
+ owner.lifecycle.removeObserver(this) // we don't update the state further.
+ }
+ }
+
+ private inner class ActivityLifecycleCallbacks : DefaultActivityLifecycleCallbacks {
+ override fun onActivityCreated(activity: Activity, bundle: Bundle?) {
+ // See ProcessLifecycleObserver.onCreate for details.
+ reason = when (reason) {
+ StartReason.TO_BE_DETERMINED -> StartReason.ACTIVITY
+ StartReason.NON_ACTIVITY -> reason // the start reason is already known: do nothing.
+ StartReason.ACTIVITY -> {
+ Metrics.startReasonActivityError.set(true)
+ logger.error("AppStartReasonProvider.Activity...onCreate unexpectedly called twice")
+ reason
+ }
+ }
+
+ activity.application.unregisterActivityLifecycleCallbacks(this) // we don't update the state further.
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/DefaultActivityLifecycleCallbacks.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/DefaultActivityLifecycleCallbacks.kt
new file mode 100644
index 0000000000..94dddd416c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/DefaultActivityLifecycleCallbacks.kt
@@ -0,0 +1,25 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry.startuptelemetry
+
+import android.app.Activity
+import android.app.Application
+import android.os.Bundle
+
+/**
+ * An inheritance of [Application.ActivityLifecycleCallbacks] where each method has a default
+ * implementation that does nothing. This allows classes that extend this interface to have
+ * more concise definitions if they don't implement some methods; this is in the spirit of
+ * other `Default*` classes, such as [androidx.lifecycle.DefaultLifecycleObserver].
+ */
+interface DefaultActivityLifecycleCallbacks : Application.ActivityLifecycleCallbacks {
+ override fun onActivityCreated(activity: Activity, bundle: Bundle?) {}
+ override fun onActivityStarted(activity: Activity) {}
+ override fun onActivityResumed(activity: Activity) {}
+ override fun onActivityPaused(activity: Activity) {}
+ override fun onActivityStopped(activity: Activity) {}
+ override fun onActivitySaveInstanceState(activity: Activity, bundle: Bundle) {}
+ override fun onActivityDestroyed(activity: Activity) {}
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupActivityLog.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupActivityLog.kt
new file mode 100644
index 0000000000..eb8546ef1e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupActivityLog.kt
@@ -0,0 +1,106 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry.startuptelemetry
+
+import android.app.Activity
+import android.app.Application
+import android.os.Bundle
+import androidx.annotation.VisibleForTesting
+import androidx.annotation.VisibleForTesting.Companion.NONE
+import androidx.annotation.VisibleForTesting.Companion.PRIVATE
+import androidx.lifecycle.DefaultLifecycleObserver
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.ProcessLifecycleOwner
+import mozilla.components.support.base.log.Log
+import mozilla.components.support.base.log.logger.Logger
+
+private val logger = Logger("StartupActivityLog")
+
+/**
+ * A record of the [Activity] created, started, and stopped events as well as [Application]
+ * foreground and background events. See [log] for the log. This class is expected to be
+ * registered in [Application.onCreate] by calling [registerInAppOnCreate].
+ *
+ * To prevent this list from growing infinitely, we clear the list when the application is stopped.
+ * This is acceptable from the current requirements: we never need to inspect more than the current
+ * start up.
+ */
+class StartupActivityLog {
+
+ private val _log = mutableListOf<LogEntry>()
+ val log: List<LogEntry> = _log
+
+ fun registerInAppOnCreate(
+ application: Application,
+ processLifecycleOwner: LifecycleOwner = ProcessLifecycleOwner.get(),
+ ) {
+ processLifecycleOwner.lifecycle.addObserver(StartupLogAppLifecycleObserver())
+ application.registerActivityLifecycleCallbacks(StartupLogActivityLifecycleCallbacks())
+ }
+
+ @VisibleForTesting(otherwise = NONE)
+ fun getObserversForTesting() = Pair(StartupLogAppLifecycleObserver(), StartupLogActivityLifecycleCallbacks())
+
+ @VisibleForTesting(otherwise = PRIVATE)
+ fun logEntries(loggerArg: Logger = logger, logLevel: Log.Priority = Log.logLevel) {
+ // Optimization: we want to avoid the potentially expensive conversions
+ // to Strings if we're not going to log anyway.
+ if (logLevel > Log.Priority.DEBUG) {
+ return
+ }
+
+ val transformedEntries = log.map {
+ when (it) {
+ is LogEntry.AppStarted -> "App-STARTED"
+ is LogEntry.AppStopped -> "App-STOPPED"
+ is LogEntry.ActivityCreated -> "${it.activityClass.simpleName}-CREATED"
+ is LogEntry.ActivityStarted -> "${it.activityClass.simpleName}-STARTED"
+ is LogEntry.ActivityStopped -> "${it.activityClass.simpleName}-STOPPED"
+ }
+ }
+
+ loggerArg.debug(transformedEntries.toString())
+ }
+
+ @VisibleForTesting(otherwise = PRIVATE)
+ inner class StartupLogAppLifecycleObserver : DefaultLifecycleObserver {
+ override fun onStart(owner: LifecycleOwner) {
+ _log.add(LogEntry.AppStarted)
+ }
+
+ override fun onStop(owner: LifecycleOwner) {
+ logEntries()
+ _log.clear() // Optimization: see class kdoc for details.
+ _log.add(LogEntry.AppStopped)
+ }
+ }
+
+ @VisibleForTesting(otherwise = PRIVATE)
+ inner class StartupLogActivityLifecycleCallbacks : DefaultActivityLifecycleCallbacks {
+ override fun onActivityCreated(activity: Activity, bundle: Bundle?) {
+ _log.add(LogEntry.ActivityCreated(activity::class.java))
+ }
+
+ override fun onActivityStarted(activity: Activity) {
+ _log.add(LogEntry.ActivityStarted(activity::class.java))
+ }
+
+ override fun onActivityStopped(activity: Activity) {
+ _log.add(LogEntry.ActivityStopped(activity::class.java))
+ }
+ }
+
+ /**
+ * A log entry with its detailed information for the [StartupActivityLog].
+ */
+ sealed class LogEntry {
+ object AppStarted : LogEntry()
+ object AppStopped : LogEntry()
+
+ data class ActivityCreated(val activityClass: Class<out Activity>) : LogEntry()
+ data class ActivityStarted(val activityClass: Class<out Activity>) : LogEntry()
+ data class ActivityStopped(val activityClass: Class<out Activity>) : LogEntry()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupPathProvider.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupPathProvider.kt
new file mode 100644
index 0000000000..92db3eab13
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupPathProvider.kt
@@ -0,0 +1,98 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry.startuptelemetry
+
+import android.app.Activity
+import android.content.Intent
+import androidx.annotation.VisibleForTesting
+import androidx.annotation.VisibleForTesting.Companion.NONE
+import androidx.annotation.VisibleForTesting.Companion.PRIVATE
+import androidx.lifecycle.DefaultLifecycleObserver
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleOwner
+
+/**
+ * This should be a member variable of [Activity] because its data is tied to the lifecycle of an
+ * Activity. Call [attachOnActivityOnCreate] & [onIntentReceived] for this class to work correctly.
+ */
+class StartupPathProvider {
+
+ enum class StartupPath {
+ MAIN,
+ VIEW,
+
+ /**
+ * The start up path if we received an Intent but we're unable to categorize it into other buckets.
+ */
+ UNKNOWN,
+
+ /**
+ * The start up path has not been set. This state includes:
+ * - this API is accessed before it is set
+ * - if no intent is received before the activity is STARTED (e.g. app switcher)
+ */
+ NOT_SET,
+ }
+
+ /**
+ * Returns the [StartupPath] for the currently started activity. This value will be set
+ * after an [Intent] is received that causes this activity to move into the STARTED state.
+ */
+ var startupPathForActivity = StartupPath.NOT_SET
+ private set
+
+ private var wasResumedSinceStartedState = false
+
+ fun attachOnActivityOnCreate(lifecycle: Lifecycle, intent: Intent?) {
+ lifecycle.addObserver(StartupPathLifecycleObserver())
+ onIntentReceived(intent)
+ }
+
+ // N.B.: this method duplicates the actual logic for determining what page to open.
+ // Unfortunately, it's difficult to re-use that logic because it occurs in many places throughout
+ // the code so we do the simple thing for now and duplicate it. It's noticeably different from
+ // what you might expect: e.g. ACTION_MAIN can open a URL and if ACTION_VIEW provides an invalid
+ // URL, it'll perform a MAIN action. However, it's fairly representative of what users *intended*
+ // to do when opening the app and shouldn't change much because it's based on Android system-wide
+ // conventions, so it's probably fine for our purposes.
+ private fun getStartupPathFromIntent(intent: Intent): StartupPath = when (intent.action) {
+ Intent.ACTION_MAIN -> StartupPath.MAIN
+ Intent.ACTION_VIEW -> StartupPath.VIEW
+ else -> StartupPath.UNKNOWN
+ }
+
+ /**
+ * Expected to be called when a new [Intent] is received by the [Activity]: i.e.
+ * [Activity.onCreate] and [Activity.onNewIntent].
+ */
+ fun onIntentReceived(intent: Intent?) {
+ // We want to set a path only if the intent causes the Activity to move into the STARTED state.
+ // This means we want to discard any intents that are received when the app is foregrounded.
+ // However, we can't use the Lifecycle.currentState to determine this because:
+ // - the app is briefly paused (state becomes STARTED) before receiving the Intent in
+ // the foreground so we can't say <= STARTED
+ // - onIntentReceived can be called from the CREATED or STARTED state so we can't say == CREATED
+ // So we're forced to track this state ourselves.
+ if (!wasResumedSinceStartedState && intent != null) {
+ startupPathForActivity = getStartupPathFromIntent(intent)
+ }
+ }
+
+ @VisibleForTesting(otherwise = NONE)
+ fun getTestCallbacks() = StartupPathLifecycleObserver()
+
+ @VisibleForTesting(otherwise = PRIVATE)
+ inner class StartupPathLifecycleObserver : DefaultLifecycleObserver {
+ override fun onResume(owner: LifecycleOwner) {
+ wasResumedSinceStartedState = true
+ }
+
+ override fun onStop(owner: LifecycleOwner) {
+ // Clear existing state.
+ startupPathForActivity = StartupPath.NOT_SET
+ wasResumedSinceStartedState = false
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupStateProvider.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupStateProvider.kt
new file mode 100644
index 0000000000..44664e5bdd
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupStateProvider.kt
@@ -0,0 +1,137 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry.startuptelemetry
+
+import android.app.Activity
+import org.mozilla.focus.telemetry.startuptelemetry.AppStartReasonProvider.StartReason
+import org.mozilla.focus.telemetry.startuptelemetry.StartupActivityLog.LogEntry
+
+/**
+ * Identifies the "state" of start up where state can be COLD/WARM/HOT and possibly others.
+ *
+ * This class is nuanced: **please read the kdoc carefully before using it.** Consider contacting
+ * the perf team with your use case.
+ *
+ * For this class, we use the terminology from the [StartupActivityLog] such as STARTED and STOPPED.
+ * However, we're assuming STARTED means foregrounded and STOPPED means backgrounded. If this
+ * assumption is false, the logic in this class may be incorrect.
+ */
+class StartupStateProvider(
+ private val startupLog: StartupActivityLog,
+ private val startReasonProvider: AppStartReasonProvider,
+) {
+
+ enum class StartupState {
+ COLD, WARM, HOT,
+
+ /**
+ * A start up state where we weren't able to bucket it into the other categories.
+ * This includes, but is not limited to:
+ * - if the activity this is called from is not currently started
+ * - if the currently started activity is not the first started activity
+ */
+ UNKNOWN,
+ }
+
+ /**
+ * Returns the [StartupState] for the currently started activity. Note: the state will be
+ * [StartupState.UNKNOWN] if the currently started activity is not the first started activity.
+ *
+ * This method must be called after the foreground Activity is STARTED.
+ */
+ fun getStartupStateForStartedActivity(activityClass: Class<out Activity>): StartupState = when {
+ isColdStartForStartedActivity(activityClass) -> StartupState.COLD
+ isWarmStartForStartedActivity(activityClass) -> StartupState.WARM
+ isHotStartForStartedActivity(activityClass) -> StartupState.HOT
+ else -> StartupState.UNKNOWN
+ }
+
+ /**
+ * Returns true if the current startup state is COLD and the currently started activity is the
+ * first started activity (i.e. we can use it for performance measurements).
+ *
+ * This method must be called after the foreground Activity is STARTED.
+ */
+ fun isColdStartForStartedActivity(activityClass: Class<out Activity>): Boolean {
+ // A cold start means:
+ // - the process was started for the first started activity (e.g. not a service)
+ // - the first started activity ever is still active
+ //
+ // Thus, for the activity log we expect:
+ // [... Activity-STARTED, App-STARTED]
+ // since if another Activity was started, it would appear after App-STARTED. This is where:
+ // - the app has not been stopped ever
+ if (startReasonProvider.reason != StartReason.ACTIVITY) {
+ return false
+ }
+
+ val isLastStartedActivityStillStarted = startupLog.log.takeLast(2) == listOf(
+ LogEntry.ActivityStarted(activityClass),
+ LogEntry.AppStarted,
+ )
+ return !startupLog.log.contains(LogEntry.AppStopped) && isLastStartedActivityStillStarted
+ }
+
+ /**
+ * Returns true if the current startup state is WARM and the currently started activity is the
+ * first started activity for this start up (i.e. we can use it for performance measurements).
+ *
+ * This method must be called after the foreground activity is STARTED.
+ */
+ fun isWarmStartForStartedActivity(activityClass: Class<out Activity>): Boolean {
+ // A warm start means:
+ // - the app was backgrounded and has since been started
+ // - the first started activity since the app was started is still active.
+ // - that activity was created before being started
+ //
+ // For the activity log, we expect:
+ // [... App-STOPPED, ... Activity-CREATED, Activity-STARTED, App-STARTED]
+ // where:
+ // - App-STOPPED is the last STOPPED seen
+ // - we're assuming App-STARTED will only be last if one activity is started (as observed)
+ if (!startupLog.log.contains(LogEntry.AppStopped)) {
+ return false // if the app hasn't been stopped, it's not a warm start.
+ }
+ val afterLastStopped = startupLog.log.takeLastWhile { it != LogEntry.AppStopped }
+
+ @Suppress("MagicNumber")
+ return afterLastStopped.takeLast(3) == listOf(
+ LogEntry.ActivityCreated(activityClass),
+ LogEntry.ActivityStarted(activityClass),
+ LogEntry.AppStarted,
+ )
+ }
+
+ /**
+ * Returns true if the current startup state is HOT and the currently started activity is the
+ * first started activity for this start up (i.e. we can use it for performance measurements).
+ *
+ * This method must be called after the foreground activity is STARTED.
+ */
+ fun isHotStartForStartedActivity(activityClass: Class<out Activity>): Boolean {
+ // A hot start means:
+ // - the app was backgrounded and has since been started
+ // - the first started activity since the app was started is still active.
+ // - that activity was not created before being started
+ //
+ // For the activity log, we expect:
+ // [... App-STOPPED, ... Activity-STARTED, App-STARTED]
+ // where:
+ // - App-STOPPED is the last STOPPED seen
+ // - App-CREATED is NOT called for this activity
+ // - we're assuming App-STARTED will only be last if one activity is started (as observed)
+ if (!startupLog.log.contains(LogEntry.AppStopped)) {
+ return false // if the app hasn't been stopped, it's not a hot start.
+ }
+ val afterLastStopped = startupLog.log.takeLastWhile { it != LogEntry.AppStopped }
+
+ val isLastActivityStartedStillStarted = afterLastStopped.takeLast(2) == listOf(
+ LogEntry.ActivityStarted(activityClass),
+ LogEntry.AppStarted,
+ )
+ return !afterLastStopped.contains(LogEntry.ActivityCreated(activityClass)) &&
+ isLastActivityStartedStillStarted
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupTypeTelemetry.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupTypeTelemetry.kt
new file mode 100644
index 0000000000..1101d63a8c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/telemetry/startuptelemetry/StartupTypeTelemetry.kt
@@ -0,0 +1,110 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry.startuptelemetry
+
+import androidx.annotation.VisibleForTesting
+import androidx.annotation.VisibleForTesting.Companion.NONE
+import androidx.annotation.VisibleForTesting.Companion.PRIVATE
+import androidx.lifecycle.DefaultLifecycleObserver
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleOwner
+import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.DelicateCoroutinesApi
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
+import mozilla.components.support.base.log.logger.Logger
+import org.mozilla.focus.GleanMetrics.PerfStartup
+import org.mozilla.focus.activity.MainActivity
+import org.mozilla.focus.telemetry.startuptelemetry.StartupPathProvider.StartupPath
+import org.mozilla.focus.telemetry.startuptelemetry.StartupStateProvider.StartupState
+
+private val activityClass = MainActivity::class.java
+
+private val logger = Logger("StartupTypeTelemetry")
+
+/**
+ * Records telemetry for the number of start ups. See the
+ * [Fenix perf glossary](https://wiki.mozilla.org/index.php?title=Performance/Fenix/Glossary)
+ * for specific definitions.
+ *
+ * This should be a member variable of [MainActivity] because its data is tied to the lifecycle of an
+ * Activity. Call [attachOnMainActivityOnCreate] for this class to work correctly.
+ *
+ * N.B.: this class is lightly hardcoded to MainActivity.
+ */
+class StartupTypeTelemetry(
+ private val startupStateProvider: StartupStateProvider,
+ private val startupPathProvider: StartupPathProvider,
+) {
+
+ fun attachOnMainActivityOnCreate(lifecycle: Lifecycle) {
+ lifecycle.addObserver(StartupTypeLifecycleObserver())
+ }
+
+ private fun getTelemetryLabel(startupState: StartupState, startupPath: StartupPath): String {
+ // We don't use the enum name directly to avoid unintentional changes when refactoring.
+ val stateLabel = when (startupState) {
+ StartupState.COLD -> "cold"
+ StartupState.WARM -> "warm"
+ StartupState.HOT -> "hot"
+ StartupState.UNKNOWN -> "unknown"
+ }
+
+ val pathLabel = when (startupPath) {
+ StartupPath.MAIN -> "main"
+ StartupPath.VIEW -> "view"
+
+ // To avoid combinatorial explosion in label names, we bucket NOT_SET into UNKNOWN.
+ StartupPath.NOT_SET,
+ StartupPath.UNKNOWN,
+ -> "unknown"
+ }
+
+ return "${stateLabel}_$pathLabel"
+ }
+
+ @VisibleForTesting(otherwise = NONE)
+ fun getTestCallbacks() = StartupTypeLifecycleObserver()
+
+ /**
+ * Record startup telemetry based on the available [startupStateProvider] and [startupPathProvider].
+ *
+ * @param dispatcher used to control the thread on which telemetry will be recorded. Defaults to [Dispatchers.IO].
+ */
+ @VisibleForTesting(otherwise = PRIVATE)
+ fun record(dispatcher: CoroutineDispatcher = Dispatchers.IO) {
+ val startupState = startupStateProvider.getStartupStateForStartedActivity(activityClass)
+ val startupPath = startupPathProvider.startupPathForActivity
+ val label = getTelemetryLabel(startupState, startupPath)
+
+ @OptIn(DelicateCoroutinesApi::class)
+ GlobalScope.launch(dispatcher) {
+ PerfStartup.startupType[label].add(1)
+ logger.info("Recorded start up: $label")
+ }
+ }
+
+ @VisibleForTesting(otherwise = PRIVATE)
+ inner class StartupTypeLifecycleObserver : DefaultLifecycleObserver {
+ private var shouldRecordStart = false
+
+ override fun onStart(owner: LifecycleOwner) {
+ shouldRecordStart = true
+ }
+
+ override fun onResume(owner: LifecycleOwner) {
+ // We must record in onResume because the StartupStateProvider can only be called for
+ // STARTED activities and we can't guarantee our onStart is called before its.
+ //
+ // We only record if start was called for this resume to avoid recording
+ // for onPause -> onResume states.
+ if (shouldRecordStart) {
+ record()
+ shouldRecordStart = false
+ }
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/theme/Theme.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/theme/Theme.kt
new file mode 100644
index 0000000000..8ef1eab498
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/theme/Theme.kt
@@ -0,0 +1,14 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.theme
+
+import android.content.res.Resources
+import android.util.TypedValue
+
+fun Resources.Theme.resolveAttribute(attribute: Int): Int {
+ val typedValue = TypedValue()
+ resolveAttribute(attribute, typedValue, true)
+ return typedValue.resourceId
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/DefaultTopSitesStorage.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/DefaultTopSitesStorage.kt
new file mode 100644
index 0000000000..a04c4feb70
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/DefaultTopSitesStorage.kt
@@ -0,0 +1,64 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.topsites
+
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import mozilla.components.feature.top.sites.PinnedSiteStorage
+import mozilla.components.feature.top.sites.TopSite
+import mozilla.components.feature.top.sites.TopSitesFrecencyConfig
+import mozilla.components.feature.top.sites.TopSitesProviderConfig
+import mozilla.components.feature.top.sites.TopSitesStorage
+import mozilla.components.support.base.observer.Observable
+import mozilla.components.support.base.observer.ObserverRegistry
+import kotlin.coroutines.CoroutineContext
+
+/**
+ * Default implementation of [TopSitesStorage].
+ *
+ * @param pinnedSitesStorage An instance of [PinnedSiteStorage], used for storing pinned sites.
+ */
+class DefaultTopSitesStorage(
+ private val pinnedSitesStorage: PinnedSiteStorage,
+ coroutineContext: CoroutineContext = Dispatchers.IO,
+) : TopSitesStorage, Observable<TopSitesStorage.Observer> by ObserverRegistry() {
+
+ private var scope = CoroutineScope(coroutineContext)
+
+ override fun addTopSite(title: String, url: String, isDefault: Boolean) {
+ scope.launch {
+ pinnedSitesStorage.addPinnedSite(title, url, isDefault)
+
+ notifyObservers { onStorageUpdated() }
+ }
+ }
+
+ override fun removeTopSite(topSite: TopSite) {
+ scope.launch {
+ pinnedSitesStorage.removePinnedSite(topSite)
+
+ notifyObservers { onStorageUpdated() }
+ }
+ }
+
+ override fun updateTopSite(topSite: TopSite, title: String, url: String) {
+ scope.launch {
+ pinnedSitesStorage.updatePinnedSite(topSite, title, url)
+
+ notifyObservers { onStorageUpdated() }
+ }
+ }
+
+ override suspend fun getTopSites(
+ totalSites: Int,
+ frecencyConfig: TopSitesFrecencyConfig?,
+ providerConfig: TopSitesProviderConfig?,
+ ): List<TopSite> = pinnedSitesStorage.getPinnedSites().take(totalSites)
+
+ companion object {
+ const val TOP_SITES_MAX_LIMIT = 4
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/DefaultTopSitesView.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/DefaultTopSitesView.kt
new file mode 100644
index 0000000000..db0b7272db
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/DefaultTopSitesView.kt
@@ -0,0 +1,22 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.topsites
+
+import mozilla.components.feature.top.sites.TopSite
+import mozilla.components.feature.top.sites.view.TopSitesView
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.AppStore
+
+/**
+ * The default implementation of [TopSitesView] for displaying the top site UI.
+ *
+ * @param store [AppStore] instance for dispatching the top sites changes.
+ */
+class DefaultTopSitesView(private val store: AppStore) : TopSitesView {
+
+ override fun displayTopSites(topSites: List<TopSite>) {
+ store.dispatch(AppAction.TopSitesChange(topSites))
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/RenameTopSiteDialog.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/RenameTopSiteDialog.kt
new file mode 100644
index 0000000000..4eed0f8efa
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/RenameTopSiteDialog.kt
@@ -0,0 +1,47 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.topsites
+
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.res.stringResource
+import org.mozilla.focus.R
+import org.mozilla.focus.ui.dialog.DialogInputField
+import org.mozilla.focus.ui.dialog.FocusDialog
+
+/**
+ * Display a dialog for renaming a top site
+ *
+ * @param currentName (event) Current top site name.
+ * @param onConfirm (event) Perform top site rename.
+ * @param onDismiss (event) Action to perform on dialog dismissal.
+ */
+@Composable
+fun RenameTopSiteDialog(
+ currentName: String,
+ onConfirm: (String) -> Unit,
+ onDismiss: () -> Unit,
+) {
+ var text by remember { mutableStateOf(currentName) }
+
+ FocusDialog(
+ dialogTitle = stringResource(R.string.rename_top_site),
+ dialogTextComposable = {
+ DialogInputField(
+ text = text,
+ placeholder = { Text(stringResource(id = R.string.placeholder_rename_top_site)) },
+ ) { newText -> text = newText }
+ },
+ onDismissRequest = { onDismiss.invoke() },
+ onConfirmRequest = { onConfirm.invoke(text) },
+ confirmButtonText = stringResource(android.R.string.ok),
+ dismissButtonText = stringResource(android.R.string.cancel),
+ isConfirmButtonEnabled = text.isNotEmpty(),
+ )
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/TopSites.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/TopSites.kt
new file mode 100644
index 0000000000..d754938b42
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/TopSites.kt
@@ -0,0 +1,166 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.topsites
+
+import androidx.compose.foundation.ExperimentalFoundationApi
+import androidx.compose.foundation.combinedClickable
+import androidx.compose.foundation.interaction.MutableInteractionSource
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material.Card
+import androidx.compose.material.Surface
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.style.TextOverflow
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import mozilla.components.feature.top.sites.TopSite
+import mozilla.components.support.ktx.kotlin.getRepresentativeCharacter
+import org.mozilla.focus.R
+import org.mozilla.focus.ui.menu.CustomDropdownMenu
+import org.mozilla.focus.ui.menu.MenuItem
+import org.mozilla.focus.ui.theme.focusColors
+
+/**
+ * A list of top sites.
+ *
+ * @param topSites List of [TopSite] to display.
+ * @param onTopSiteClicked Invoked when the user clicked the top site
+ * @param onRemoveTopSiteClicked Invoked when the user clicked 'Remove' item from drop down menu
+ * @param onRenameTopSiteClicked Invoked when the user clicked 'Rename' item from drop down menu
+ */
+
+@Composable
+fun TopSites(
+ topSites: List<TopSite>,
+ onTopSiteClicked: (TopSite) -> Unit,
+ onRemoveTopSiteClicked: (TopSite) -> Unit,
+ onRenameTopSiteClicked: (TopSite) -> Unit,
+) {
+ Row(
+ modifier = Modifier
+ .padding(horizontal = 10.dp)
+ .size(width = 324.dp, height = 84.dp),
+ verticalAlignment = Alignment.CenterVertically,
+ horizontalArrangement = Arrangement.spacedBy(28.dp),
+ ) {
+ topSites.forEach { topSite ->
+ TopSiteItem(
+ topSite = topSite,
+ menuItems = listOfNotNull(
+ MenuItem(
+ title = stringResource(R.string.rename_top_site_item),
+ onClick = { onRenameTopSiteClicked(topSite) },
+ ),
+ MenuItem(
+ title = stringResource(R.string.remove_top_site),
+ onClick = { onRemoveTopSiteClicked(topSite) },
+ ),
+ ),
+ onTopSiteClick = { item -> onTopSiteClicked(item) },
+ )
+ }
+ }
+}
+
+/**
+ * A top site item.
+ *
+ * @param topSite The [TopSite] to display.
+ * @param menuItems List of [MenuItem] to display in a top site dropdown menu.
+ * @param onTopSiteClick Invoked when the user clicks on a top site.
+ */
+@OptIn(ExperimentalFoundationApi::class)
+@Composable
+private fun TopSiteItem(
+ topSite: TopSite,
+ menuItems: List<MenuItem>,
+ onTopSiteClick: (TopSite) -> Unit = {},
+) {
+ var menuExpanded by remember { mutableStateOf(false) }
+
+ Box {
+ Column(
+ modifier = Modifier
+ .combinedClickable(
+ interactionSource = remember { MutableInteractionSource() },
+ indication = null,
+ onClick = { onTopSiteClick(topSite) },
+ onLongClick = { menuExpanded = true },
+ )
+ .size(width = 60.dp, height = 84.dp),
+ horizontalAlignment = Alignment.CenterHorizontally,
+ ) {
+ TopSiteFaviconCard(topSite = topSite)
+
+ Text(
+ text = topSite.title ?: topSite.url,
+ modifier = Modifier.padding(top = 8.dp),
+ color = focusColors.topSiteTitle,
+ fontSize = 12.sp,
+ overflow = TextOverflow.Ellipsis,
+ maxLines = 1,
+ )
+
+ CustomDropdownMenu(
+ menuItems = menuItems,
+ isExpanded = menuExpanded,
+ onDismissClicked = { menuExpanded = false },
+ )
+ }
+ }
+}
+
+/**
+ * The top site favicon card.
+ *
+ * @param topSite The [TopSite] to display.
+ */
+@Composable
+private fun TopSiteFaviconCard(topSite: TopSite) {
+ Card(
+ modifier = Modifier.size(60.dp),
+ shape = RoundedCornerShape(8.dp),
+ backgroundColor = focusColors.topSiteBackground,
+ ) {
+ Column(
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally,
+ ) {
+ Surface(
+ modifier = Modifier.size(36.dp),
+ shape = RoundedCornerShape(4.dp),
+ color = focusColors.surface,
+ ) {
+ Column(
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally,
+ ) {
+ Text(
+ text = if (topSite.title.isNullOrEmpty()) {
+ topSite.url.getRepresentativeCharacter()
+ } else {
+ topSite.title?.get(0).toString()
+ },
+ color = focusColors.topSiteFaviconText,
+ fontSize = 20.sp,
+ )
+ }
+ }
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/TopSitesOverlay.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/TopSitesOverlay.kt
new file mode 100644
index 0000000000..916e8f2edc
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/topsites/TopSitesOverlay.kt
@@ -0,0 +1,112 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.topsites
+
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.height
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.MutableState
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.unit.dp
+import kotlinx.coroutines.DelicateCoroutinesApi
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
+import mozilla.components.browser.state.state.SessionState
+import mozilla.components.feature.top.sites.TopSite
+import mozilla.components.lib.state.ext.observeAsComposableState
+import org.mozilla.focus.Components
+import org.mozilla.focus.GleanMetrics.Shortcuts
+import org.mozilla.focus.components
+import org.mozilla.focus.state.AppAction
+
+@OptIn(DelicateCoroutinesApi::class)
+@Composable
+fun TopSitesOverlay(modifier: Modifier = Modifier) {
+ val components = components
+ val topSitesState = components.appStore.observeAsComposableState { state -> state.topSites }
+ val topSites = topSitesState.value ?: listOf()
+ val showRenameDialog: MutableState<Boolean> = remember { mutableStateOf(false) }
+ val topSiteItem: MutableState<TopSite?> = remember { mutableStateOf(null) }
+
+ if (!topSites.isNullOrEmpty()) {
+ Column(
+ modifier = modifier,
+ horizontalAlignment = Alignment.CenterHorizontally,
+ ) {
+ Spacer(modifier = Modifier.height(24.dp))
+
+ TopSites(
+ topSites = topSites,
+ onTopSiteClicked = { item -> openTopSite(item, components) },
+ onRemoveTopSiteClicked = { item ->
+ removeTopSite(item, components)
+ },
+ onRenameTopSiteClicked = { topSite ->
+ showRenameDialog.value = true
+ topSiteItem.value = topSite
+ },
+ )
+ Spacer(modifier = Modifier.height(24.dp))
+ }
+
+ if (showRenameDialog.value) {
+ topSiteItem.value?.let { selectedTopSite ->
+ RenameTopSiteDialog(
+ currentName = selectedTopSite.title ?: "",
+ onConfirm = { newTitle ->
+ renameTopSite(selectedTopSite, newTitle, components)
+ showRenameDialog.value = false
+ topSiteItem.value = null
+ },
+ onDismiss = {
+ showRenameDialog.value = false
+ topSiteItem.value = null
+ },
+ )
+ }
+ }
+ }
+}
+
+private fun openTopSite(item: TopSite, components: Components) {
+ val currentTabId = components.store.state.selectedTabId
+ if (currentTabId.isNullOrEmpty()) {
+ components.tabsUseCases.addTab(
+ url = item.url,
+ source = SessionState.Source.Internal.HomeScreen,
+ selectTab = true,
+ private = true,
+ )
+ } else {
+ components.sessionUseCases.loadUrl(item.url, currentTabId)
+ components.appStore.dispatch(AppAction.FinishEdit(currentTabId))
+ }
+
+ Shortcuts.shortcutOpenedCounter.add()
+}
+
+@OptIn(DelicateCoroutinesApi::class)
+fun removeTopSite(item: TopSite, components: Components) {
+ Shortcuts.shortcutRemovedCounter["removed_from_home_screen"].add()
+
+ GlobalScope.launch(Dispatchers.IO) {
+ components.topSitesUseCases.removeTopSites(item)
+ }
+}
+
+@OptIn(DelicateCoroutinesApi::class)
+fun renameTopSite(selectedTopSite: TopSite, newTitle: String, components: Components) {
+ GlobalScope.launch(Dispatchers.IO) {
+ components.topSitesUseCases.updateTopSites.invoke(
+ selectedTopSite,
+ newTitle,
+ selectedTopSite.url,
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/dialog/FocusDialog.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/dialog/FocusDialog.kt
new file mode 100644
index 0000000000..590077356f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/dialog/FocusDialog.kt
@@ -0,0 +1,209 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ui.dialog
+
+import android.content.res.Configuration
+import androidx.compose.foundation.layout.wrapContentHeight
+import androidx.compose.material.AlertDialog
+import androidx.compose.material.MaterialTheme
+import androidx.compose.material.Text
+import androidx.compose.material.TextButton
+import androidx.compose.material.TextField
+import androidx.compose.material.TextFieldDefaults
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.tooling.preview.Preview
+import org.mozilla.focus.ui.theme.FocusTheme
+import org.mozilla.focus.ui.theme.focusColors
+import org.mozilla.focus.ui.theme.focusTypography
+
+/**
+ * Reusable composable for an alert dialog.
+ *
+ * @param dialogTitle (mandatory) text displayed as the dialog title.
+ * @param dialogTextComposable (optional) A composable displayed as dialog text
+ * @param dialogText (optional) A text displayed as dialog text when [dialogTextComposable] is null.
+ * @param onConfirmRequest (event) Action to perform on dialog confirm action.
+ * @param onDismissRequest (event) Action to perform on dialog dismissal.
+ * @param isConfirmButtonEnabled (optional) whether the confirm [DialogTextButton] is enabled. Default value is true.
+ * @param isDismissButtonEnabled (optional) whether the confirm [DialogTextButton] is enabled. Default value is true.
+ * @param isConfirmButtonVisible (optional) whether the confirm [DialogTextButton] is visible. Default value is true.
+ * @param isDismissButtonVisible (optional)whether the confirm [DialogTextButton] is visible. Default value is true.
+ *
+ */
+@Suppress("LongParameterList")
+@Composable
+fun FocusDialog(
+ dialogTitle: String,
+ dialogTextComposable: @Composable (() -> Unit)? = null,
+ dialogText: String = "",
+ onConfirmRequest: () -> Unit,
+ onDismissRequest: () -> Unit,
+ confirmButtonText: String = "null",
+ dismissButtonText: String = "null",
+ isConfirmButtonEnabled: Boolean = true,
+ isDismissButtonEnabled: Boolean = true,
+ isConfirmButtonVisible: Boolean = true,
+ isDismissButtonVisible: Boolean = true,
+) {
+ AlertDialog(
+ onDismissRequest = onDismissRequest,
+ title = { DialogTitle(text = dialogTitle) },
+ text = dialogTextComposable ?: { DialogText(text = dialogText) },
+ confirmButton = {
+ if (isConfirmButtonVisible) {
+ DialogTextButton(
+ text = confirmButtonText,
+ onClick = onConfirmRequest,
+ enabled = isConfirmButtonEnabled,
+ )
+ }
+ },
+ dismissButton = {
+ if (isDismissButtonVisible) {
+ DialogTextButton(
+ text = dismissButtonText,
+ onClick = onDismissRequest,
+ enabled = isDismissButtonEnabled,
+ )
+ }
+ },
+ backgroundColor = focusColors.secondary,
+ shape = MaterialTheme.shapes.medium,
+ )
+}
+
+/**
+ * Reusable composable for a dialog title.
+ */
+@Composable
+fun DialogTitle(
+ modifier: Modifier = Modifier,
+ text: String,
+) {
+ Text(
+ modifier = modifier,
+ color = focusColors.onPrimary,
+ text = text,
+ style = focusTypography.dialogTitle,
+ )
+}
+
+/**
+ * Reusable composable for a dialog text.
+ */
+@Composable
+fun DialogText(
+ modifier: Modifier = Modifier,
+ text: String,
+) {
+ Text(
+ modifier = modifier,
+ color = focusColors.onPrimary,
+ text = text,
+ style = focusTypography.dialogInput,
+ )
+}
+
+/**
+ * Reusable composable for a dialog button with text.
+ */
+@Composable
+fun DialogTextButton(
+ text: String,
+ modifier: Modifier = Modifier,
+ enabled: Boolean = true,
+ onClick: () -> Unit,
+) {
+ TextButton(
+ onClick = onClick,
+ modifier = modifier,
+ enabled = enabled,
+ shape = MaterialTheme.shapes.large,
+ ) {
+ Text(
+ modifier = modifier,
+ color = if (enabled) {
+ focusColors.dialogActiveControls
+ } else {
+ focusColors.dialogActiveControls.copy(alpha = 0.5f)
+ },
+ text = text,
+ style = MaterialTheme.typography.button,
+ )
+ }
+}
+
+/**
+ * Reusable composable for a dialog input field.
+ */
+@Composable
+fun DialogInputField(
+ modifier: Modifier = Modifier,
+ text: String,
+ placeholder: @Composable () -> Unit,
+ onValueChange: (String) -> Unit,
+) {
+ TextField(
+ modifier = modifier
+ .wrapContentHeight(),
+ value = text,
+ placeholder = placeholder,
+ onValueChange = onValueChange,
+ textStyle = focusTypography.dialogInput,
+ colors = TextFieldDefaults.textFieldColors(
+ backgroundColor = focusColors.secondary,
+ textColor = focusColors.onSecondary,
+ cursorColor = focusColors.onPrimary,
+ focusedIndicatorColor = focusColors.dialogActiveControls,
+ unfocusedIndicatorColor = focusColors.dialogActiveControls,
+ ),
+ singleLine = true,
+ shape = MaterialTheme.shapes.large,
+ )
+}
+
+@Preview(
+ name = "dark theme",
+ showBackground = true,
+ backgroundColor = 0xFF393473,
+ uiMode = Configuration.UI_MODE_NIGHT_MASK,
+)
+@Composable
+fun DialogTitlePreviewDark() {
+ FocusTheme {
+ FocusDialogSample()
+ }
+}
+
+@Preview(
+ name = "light theme",
+ showBackground = true,
+ backgroundColor = 0xFFFBFBFE,
+ uiMode = Configuration.UI_MODE_NIGHT_NO,
+)
+@Composable
+fun DialogTitlePreviewLight() {
+ FocusTheme {
+ FocusDialogSample()
+ }
+}
+
+@Composable
+fun FocusDialogSample() {
+ FocusDialog(
+ dialogTitle = "Sample dialog",
+ dialogTextComposable = null,
+ dialogText = "Sample dialog text",
+ onConfirmRequest = { },
+ onDismissRequest = { },
+ confirmButtonText = "OK",
+ dismissButtonText = "CANCEL",
+ isConfirmButtonEnabled = true,
+ isDismissButtonEnabled = true,
+ isConfirmButtonVisible = true,
+ isDismissButtonVisible = true,
+ )
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/menu/CustomDropdownMenu.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/menu/CustomDropdownMenu.kt
new file mode 100644
index 0000000000..f9ae7a5b41
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/menu/CustomDropdownMenu.kt
@@ -0,0 +1,46 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.ui.menu
+
+import androidx.compose.foundation.background
+import androidx.compose.material.DropdownMenu
+import androidx.compose.material.DropdownMenuItem
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import org.mozilla.focus.ui.theme.focusColors
+
+/**
+ * Menu used to offer a list of options in a drop-down manner when its parent is clicked
+ *
+ * @param menuItems The list of options
+ * @param isExpanded True if the menu is open
+ * @param onDismissClicked Invoked when the user dismiss the menu
+ */
+@Composable
+fun CustomDropdownMenu(
+ menuItems: List<MenuItem>,
+ isExpanded: Boolean,
+ onDismissClicked: () -> Unit,
+) {
+ DropdownMenu(
+ expanded = isExpanded,
+ onDismissRequest = onDismissClicked,
+ modifier = Modifier.background(color = focusColors.menuBackground),
+ ) {
+ for (item in menuItems) {
+ DropdownMenuItem(
+ onClick = {
+ item.onClick()
+ onDismissClicked.invoke()
+ },
+ ) {
+ Text(
+ text = item.title,
+ color = focusColors.menuText,
+ )
+ }
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/menu/MenuItem.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/menu/MenuItem.kt
new file mode 100644
index 0000000000..6659c1b237
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/menu/MenuItem.kt
@@ -0,0 +1,16 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ui.menu
+
+/**
+ * A menu item in dropdown menu.
+ *
+ * @property title The menu item title.
+ * @property onClick Invoked when the user clicks on the menu item.
+ */
+data class MenuItem(
+ val title: String,
+ val onClick: () -> Unit,
+)
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusColors.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusColors.kt
new file mode 100644
index 0000000000..1ee2406016
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusColors.kt
@@ -0,0 +1,49 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ui.theme
+
+import androidx.compose.material.Colors
+import androidx.compose.ui.graphics.Color
+
+/**
+ * Custom Focus colors, other than baseline Material color theme.
+ * Colors here should be added with consideration, only when an existing Material baseline color is not suitable.
+ */
+data class FocusColors(
+ val material: Colors,
+ val dialogActiveControls: Color,
+ val topSiteBackground: Color,
+ val topSiteFaviconText: Color,
+ val topSiteTitle: Color,
+ val menuBackground: Color,
+ val menuText: Color,
+ val aboutPageText: Color,
+ val aboutPageLink: Color,
+ val radioButtonSelected: Color,
+ val toolbarColor: Color,
+ val privacySecuritySettingsToolTip: Color,
+ val onboardingButtonBackground: Color,
+ val onboardingKeyFeatureImageTint: Color,
+ val onboardingSemiBoldText: Color,
+ val onboardingNormalText: Color,
+ val settingsTextColor: Color,
+ val settingsTextSummaryColor: Color,
+ val closeIcon: Color,
+ val dialogTextColor: Color,
+) {
+ val primary: Color get() = material.primary
+ val primaryVariant: Color get() = material.primaryVariant
+ val secondary: Color get() = material.secondary
+ val secondaryVariant: Color get() = material.secondaryVariant
+ val background: Color get() = material.background
+ val surface: Color get() = material.surface
+ val error: Color get() = material.error
+ val onPrimary: Color get() = material.onPrimary
+ val onSecondary: Color get() = material.onSecondary
+ val onBackground: Color get() = material.onBackground
+ val onSurface: Color get() = material.onSurface
+ val onError: Color get() = material.onError
+ val isLight: Boolean get() = material.isLight
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusDimensions.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusDimensions.kt
new file mode 100644
index 0000000000..8c79ef17cc
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusDimensions.kt
@@ -0,0 +1,15 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.ui.theme
+
+import androidx.compose.ui.unit.TextUnit
+
+/**
+ * Custom Focus dimensions
+ */
+data class FocusDimensions(
+ val onboardingTitle: TextUnit,
+ val onboardingSubtitleOne: TextUnit,
+ val onboardingSubtitleTwo: TextUnit,
+)
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusTheme.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusTheme.kt
new file mode 100644
index 0000000000..bbc7609c16
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusTheme.kt
@@ -0,0 +1,138 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ui.theme
+
+import androidx.compose.foundation.isSystemInDarkTheme
+import androidx.compose.material.Colors
+import androidx.compose.material.MaterialTheme
+import androidx.compose.material.darkColors
+import androidx.compose.material.lightColors
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.CompositionLocalProvider
+import androidx.compose.runtime.ReadOnlyComposable
+import androidx.compose.runtime.staticCompositionLocalOf
+import androidx.compose.ui.platform.LocalConfiguration
+import androidx.compose.ui.unit.sp
+import mozilla.components.ui.colors.PhotonColors
+
+private const val TABLET_SIZE = 600
+
+val localColors = staticCompositionLocalOf { lightColorPalette() }
+val localDimensions = staticCompositionLocalOf { phoneDimensions() }
+
+/**
+ * The theme used for Firefox Focus/Klar for Android.
+ */
+@Composable
+fun FocusTheme(
+ darkTheme: Boolean = isSystemInDarkTheme(),
+ content: @Composable () -> Unit,
+) {
+ val dimensions = if (LocalConfiguration.current.screenWidthDp <= TABLET_SIZE) {
+ phoneDimensions()
+ } else {
+ tabletDimensions()
+ }
+
+ val colors = if (darkTheme) {
+ darkColorPalette()
+ } else {
+ lightColorPalette()
+ }
+
+ CompositionLocalProvider(localColors provides colors, localDimensions provides dimensions) {
+ MaterialTheme(
+ colors = colors.material,
+ typography = focusTypography.materialTypography,
+ content = content,
+ )
+ }
+}
+
+val focusColors: FocusColors
+ @Composable
+ @ReadOnlyComposable
+ get() = localColors.current
+
+val focusDimensions: FocusDimensions
+ @Composable
+ @ReadOnlyComposable
+ get() = localDimensions.current
+
+private fun darkColorPalette(): FocusColors = FocusColors(
+ material = darkColorsMaterial(),
+ dialogActiveControls = PhotonColors.Pink40,
+ topSiteBackground = PhotonColors.Ink05,
+ topSiteFaviconText = PhotonColors.LightGrey05,
+ topSiteTitle = PhotonColors.LightGrey05,
+ menuBackground = PhotonColors.Ink05,
+ menuText = PhotonColors.White,
+ aboutPageText = PhotonColors.White,
+ aboutPageLink = PhotonColors.Pink70,
+ radioButtonSelected = PhotonColors.Pink70,
+ toolbarColor = PhotonColors.White,
+ privacySecuritySettingsToolTip = PhotonColors.White,
+ onboardingKeyFeatureImageTint = PhotonColors.LightGrey05,
+ onboardingButtonBackground = PhotonColors.Violet50,
+ onboardingSemiBoldText = PhotonColors.LightGrey05,
+ onboardingNormalText = PhotonColors.LightGrey50,
+ settingsTextColor = PhotonColors.White,
+ settingsTextSummaryColor = PhotonColors.LightGrey50,
+ closeIcon = PhotonColors.LightGrey70,
+ dialogTextColor = PhotonColors.White,
+)
+
+private fun lightColorPalette(): FocusColors = FocusColors(
+ material = lightColorsMaterial(),
+ dialogActiveControls = PhotonColors.Pink70,
+ topSiteBackground = PhotonColors.White,
+ topSiteFaviconText = PhotonColors.Ink50,
+ topSiteTitle = PhotonColors.DarkGrey05,
+ menuBackground = PhotonColors.White,
+ menuText = PhotonColors.Black,
+ aboutPageText = PhotonColors.Black,
+ aboutPageLink = PhotonColors.Pink70,
+ radioButtonSelected = PhotonColors.Pink70,
+ toolbarColor = PhotonColors.Black,
+ privacySecuritySettingsToolTip = PhotonColors.White,
+ settingsTextColor = PhotonColors.Black,
+ settingsTextSummaryColor = PhotonColors.DarkGrey05,
+ onboardingKeyFeatureImageTint = PhotonColors.DarkGrey90,
+ onboardingButtonBackground = PhotonColors.Ink20,
+ onboardingSemiBoldText = PhotonColors.DarkGrey90,
+ onboardingNormalText = PhotonColors.DarkGrey05,
+ closeIcon = PhotonColors.LightGrey90,
+ dialogTextColor = PhotonColors.Black,
+)
+
+/**
+ * Material baseline colors can be overridden here.
+ */
+private fun darkColorsMaterial(): Colors = darkColors(
+ secondary = PhotonColors.Ink05,
+ surface = PhotonColors.Ink60,
+ onSurface = PhotonColors.LightGrey05,
+ onBackground = PhotonColors.LightGrey05,
+ onPrimary = PhotonColors.LightGrey05,
+)
+
+private fun lightColorsMaterial(): Colors = lightColors(
+ secondary = PhotonColors.LightGrey05,
+ surface = PhotonColors.Violet05,
+ onSurface = PhotonColors.Ink50,
+ onBackground = PhotonColors.Ink50,
+ onPrimary = PhotonColors.Ink50,
+)
+fun phoneDimensions() = FocusDimensions(
+ onboardingTitle = 24.sp,
+ onboardingSubtitleOne = 16.sp,
+ onboardingSubtitleTwo = 14.sp,
+)
+
+fun tabletDimensions() = FocusDimensions(
+ onboardingTitle = 28.sp,
+ onboardingSubtitleOne = 18.sp,
+ onboardingSubtitleTwo = 18.sp,
+)
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusTypography.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusTypography.kt
new file mode 100644
index 0000000000..f8b34ce5ad
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/ui/theme/FocusTypography.kt
@@ -0,0 +1,136 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ui.theme
+
+import androidx.compose.material.Typography
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.ReadOnlyComposable
+import androidx.compose.ui.text.TextStyle
+import androidx.compose.ui.text.font.Font
+import androidx.compose.ui.text.font.FontFamily
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.text.style.TextDecoration
+import androidx.compose.ui.unit.sp
+import mozilla.components.ui.colors.PhotonColors
+import org.mozilla.focus.R
+
+val metropolis = FontFamily(
+ Font(R.font.metropolis, FontWeight.Normal),
+ Font(R.font.metropolis_bold, FontWeight.Bold),
+ Font(R.font.metropolis_semibold, FontWeight.SemiBold),
+)
+
+/**
+ * Custom Focus typography, other than baseline Material typography.
+ * Custom text styles should be added with consideration,
+ * only when an existing Material style is not suitable.
+ */
+data class FocusTypography(
+ val materialTypography: Typography,
+ val links: TextStyle,
+ val dialogTitle: TextStyle,
+ val dialogInput: TextStyle,
+ val dialogContent: TextStyle,
+ val onboardingTitle: TextStyle,
+ val onboardingSubtitle: TextStyle,
+ val onboardingDescription: TextStyle,
+ val onboardingFeatureTitle: TextStyle,
+ val onboardingFeatureDescription: TextStyle,
+ val onboardingButton: TextStyle,
+ val cfrTextStyle: TextStyle,
+ val cfrCookieBannerTextStyle: TextStyle,
+) {
+ val h1: TextStyle get() = materialTypography.h1
+ val h2: TextStyle get() = materialTypography.h2
+ val h3: TextStyle get() = materialTypography.h3
+ val h4: TextStyle get() = materialTypography.h4
+ val h5: TextStyle get() = materialTypography.h5
+ val h6: TextStyle get() = materialTypography.h6
+ val subtitle1: TextStyle get() = materialTypography.subtitle1
+ val subtitle2: TextStyle get() = materialTypography.subtitle2
+ val body1: TextStyle get() = materialTypography.body1
+ val body2: TextStyle get() = materialTypography.body2
+ val button: TextStyle get() = materialTypography.button
+ val caption: TextStyle get() = materialTypography.caption
+ val overline: TextStyle get() = materialTypography.overline
+}
+
+val focusTypography: FocusTypography
+ @Composable
+ @ReadOnlyComposable
+ get() = FocusTypography(
+ materialTypography = Typography(
+ body1 = TextStyle(
+ fontSize = 16.sp,
+ lineHeight = 24.sp,
+ ),
+ ),
+ links = TextStyle(
+ fontSize = 16.sp,
+ textDecoration = TextDecoration.Underline,
+ lineHeight = 24.sp,
+ ),
+ dialogTitle = TextStyle(
+ fontFamily = metropolis,
+ fontWeight = FontWeight.SemiBold,
+ fontSize = 20.sp,
+ ),
+ dialogInput = TextStyle(
+ fontFamily = metropolis,
+ fontSize = 20.sp,
+ color = focusColors.onPrimary,
+ ),
+ dialogContent = TextStyle(
+ fontFamily = metropolis,
+ fontWeight = FontWeight.Normal,
+ fontSize = 14.sp,
+ ),
+ onboardingTitle = TextStyle(
+ fontFamily = metropolis,
+ fontWeight = FontWeight.SemiBold,
+ fontSize = focusDimensions.onboardingTitle,
+ color = focusColors.onboardingSemiBoldText,
+ ),
+ onboardingSubtitle = TextStyle(
+ fontFamily = metropolis,
+ fontWeight = FontWeight.Normal,
+ fontSize = focusDimensions.onboardingSubtitleOne,
+ color = focusColors.onboardingSemiBoldText,
+ ),
+ onboardingDescription = TextStyle(
+ fontFamily = metropolis,
+ fontWeight = FontWeight.Normal,
+ fontSize = focusDimensions.onboardingSubtitleTwo,
+ color = focusColors.onboardingNormalText,
+ ),
+ onboardingFeatureTitle = TextStyle(
+ fontFamily = metropolis,
+ fontWeight = FontWeight.SemiBold,
+ fontSize = 14.sp,
+ color = focusColors.onboardingSemiBoldText,
+ ),
+ onboardingFeatureDescription = TextStyle(
+ fontFamily = metropolis,
+ fontWeight = FontWeight.Normal,
+ fontSize = 14.sp,
+ color = focusColors.onboardingNormalText,
+ ),
+ onboardingButton = TextStyle(
+ fontFamily = metropolis,
+ fontWeight = FontWeight.SemiBold,
+ fontSize = 14.sp,
+ color = PhotonColors.LightGrey05,
+ ),
+ cfrTextStyle = TextStyle(
+ fontSize = 16.sp,
+ letterSpacing = 0.5.sp,
+ lineHeight = 24.sp,
+ ),
+ cfrCookieBannerTextStyle = TextStyle(
+ fontSize = 14.sp,
+ letterSpacing = 0.25.sp,
+ lineHeight = 20.sp,
+ ),
+ )
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/AppConstants.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/AppConstants.kt
new file mode 100644
index 0000000000..312253a2eb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/AppConstants.kt
@@ -0,0 +1,33 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils
+
+import org.mozilla.focus.BuildConfig
+
+object AppConstants {
+ private const val BUILD_TYPE_RELEASE = "release"
+ private const val BUILD_TYPE_BETA = "beta"
+ private const val BUILD_TYPE_DEBUG = "debug"
+ private const val BUILD_TYPE_NIGHTLY = "nightly"
+ private const val PRODUCT_FLAVOR_KLAR = "klar"
+
+ val isKlarBuild: Boolean
+ get() = PRODUCT_FLAVOR_KLAR == BuildConfig.FLAVOR
+
+ val isReleaseBuild: Boolean
+ get() = BUILD_TYPE_RELEASE == BuildConfig.BUILD_TYPE
+
+ val isBetaBuild: Boolean
+ get() = BUILD_TYPE_BETA == BuildConfig.BUILD_TYPE
+
+ val isNightlyBuild: Boolean
+ get() = BUILD_TYPE_NIGHTLY == BuildConfig.BUILD_TYPE
+
+ val isDevBuild: Boolean
+ get() = BUILD_TYPE_DEBUG == BuildConfig.BUILD_TYPE
+
+ val isDevOrNightlyBuild: Boolean
+ get() = isDevBuild || isNightlyBuild
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/ClickableSubstringLink.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/ClickableSubstringLink.kt
new file mode 100644
index 0000000000..c811e086c2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/ClickableSubstringLink.kt
@@ -0,0 +1,112 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils
+
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.text.ClickableText
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.text.SpanStyle
+import androidx.compose.ui.text.TextStyle
+import androidx.compose.ui.text.buildAnnotatedString
+import androidx.compose.ui.text.style.TextDecoration
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.sp
+import org.mozilla.focus.R
+import org.mozilla.focus.ui.theme.FocusTheme
+import org.mozilla.focus.ui.theme.focusTypography
+
+/**
+ * [Text] containing a substring styled as an URL informing when this is clicked.
+ *
+ * @param text Full text that will be displayed
+ * @param textColor [Color] of the normal text. The URL substring will have a default URL style applied.
+ * @param linkTextColor [Color] of the link text.
+ * @param style of the text
+ * @param linkTextDecoration The decorations to paint on the link text (e.g., an underline).
+ * @param clickableStartIndex [text] index at which the URL substring starts.
+ * @param clickableEndIndex [text] index at which the URL substring ends.
+ * @param onClick Callback to be invoked only when the URL substring is clicked.
+ */
+@Composable
+fun ClickableSubstringLink(
+ text: String,
+ textColor: Color = colorResource(R.color.cfr_text_color),
+ linkTextColor: Color = colorResource(R.color.cfr_text_color),
+ style: TextStyle = focusTypography.body1,
+ linkTextDecoration: TextDecoration? = null,
+ clickableStartIndex: Int,
+ clickableEndIndex: Int,
+ onClick: () -> Unit,
+) {
+ val annotatedText = buildAnnotatedString {
+ append(text)
+
+ addStyle(
+ SpanStyle(textColor),
+ start = 0,
+ end = clickableStartIndex,
+ )
+
+ addStyle(
+ SpanStyle(
+ color = linkTextColor,
+ textDecoration = linkTextDecoration,
+ ),
+ start = clickableStartIndex,
+ end = clickableEndIndex,
+ )
+
+ addStyle(
+ SpanStyle(textColor),
+ start = clickableEndIndex,
+ end = text.length,
+ )
+
+ addStyle(
+ SpanStyle(fontSize = 12.sp),
+ start = 0,
+ end = clickableEndIndex,
+ )
+
+ addStringAnnotation(
+ tag = "link",
+ annotation = "",
+ start = clickableStartIndex,
+ end = clickableEndIndex,
+ )
+ }
+
+ ClickableText(
+ text = annotatedText,
+ style = style,
+ onClick = {
+ annotatedText
+ .getStringAnnotations("link", it, it)
+ .firstOrNull()?.let {
+ onClick()
+ }
+ },
+ )
+}
+
+@Composable
+@Preview
+private fun ClickableSubstringTextPreview() {
+ val text = "This text contains a link"
+
+ FocusTheme {
+ Box {
+ ClickableSubstringLink(
+ text = text,
+ linkTextDecoration = TextDecoration.Underline,
+ clickableStartIndex = text.indexOf("link"),
+ clickableEndIndex = text.length,
+ ) { }
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/Features.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/Features.kt
new file mode 100644
index 0000000000..45c601f060
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/Features.kt
@@ -0,0 +1,15 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils
+
+/**
+ * Simple feature flags.
+ */
+object Features {
+ /**
+ * Delete all shortcuts when New Session Button from FingerPrint LockScreen is clicked
+ */
+ var DELETE_TOP_SITES_WHEN_NEW_SESSION_BUTTON_CLICKED: Boolean = AppConstants.isDevOrNightlyBuild
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/FocusSnackbar.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/FocusSnackbar.kt
new file mode 100644
index 0000000000..44fee6d98b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/FocusSnackbar.kt
@@ -0,0 +1,146 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils
+
+import android.content.Context
+import android.graphics.Color
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.FrameLayout
+import androidx.coordinatorlayout.widget.CoordinatorLayout
+import androidx.core.view.isVisible
+import androidx.core.view.updatePadding
+import com.google.android.material.snackbar.BaseTransientBottomBar
+import com.google.android.material.snackbar.ContentViewCallback
+import com.google.android.material.snackbar.Snackbar
+import org.mozilla.focus.databinding.FocusSnackbarBinding
+import org.mozilla.focus.ext.settings
+
+class FocusSnackbar private constructor(
+ parent: ViewGroup,
+ private val binding: FocusSnackbarBinding,
+ contentViewCallback: FocusSnackbarCallback,
+) : BaseTransientBottomBar<FocusSnackbar>(parent, binding.root, contentViewCallback) {
+
+ init {
+ view.setBackgroundColor(Color.TRANSPARENT)
+ view.setPadding(0, 0, 0, 0)
+ }
+
+ fun setText(text: String) = apply {
+ binding.snackbarText.text = text
+ }
+
+ /**
+ * Sets an action to be performed on clicking [FocusSnackbar]'s action button.
+ */
+ fun setAction(text: String, action: (Context) -> Unit) = apply {
+ binding.snackbarAction.apply {
+ setText(text)
+ isVisible = true
+ setOnClickListener {
+ action.invoke(it.context)
+ dismiss()
+ }
+ }
+ }
+
+ companion object {
+ const val LENGTH_LONG = Snackbar.LENGTH_LONG
+ const val LENGTH_SHORT = Snackbar.LENGTH_SHORT
+ private const val LENGTH_ACCESSIBLE = 15000 // 15 seconds in ms
+
+ /**
+ * Display a custom Focus Snackbar in the given view with duration and proper styling.
+ */
+ fun make(
+ view: View,
+ duration: Int = LENGTH_LONG,
+ ): FocusSnackbar {
+ val parent = findSuitableParent(view) ?: run {
+ throw IllegalArgumentException(
+ "No suitable parent found from the given view. Please provide a valid view.",
+ )
+ }
+
+ val inflater = LayoutInflater.from(parent.context)
+ val binding = FocusSnackbarBinding.inflate(inflater, parent, false)
+
+ val durationOrAccessibleDuration =
+ if (parent.context.settings.isAccessibilityEnabled()) {
+ LENGTH_ACCESSIBLE
+ } else {
+ duration
+ }
+
+ val callback = FocusSnackbarCallback(binding.root)
+
+ return FocusSnackbar(parent, binding, callback).also {
+ it.duration = durationOrAccessibleDuration
+ it.view.updatePadding(
+ bottom = 0,
+ )
+ }
+ }
+
+ // Use the same implementation of Android `Snackbar`
+ @SuppressWarnings("FunctionParameterNaming")
+ private fun findSuitableParent(_view: View?): ViewGroup? {
+ var view = _view
+ var fallback: ViewGroup? = null
+
+ do {
+ if (view is CoordinatorLayout) {
+ return view
+ }
+
+ if (view is FrameLayout) {
+ if (view.id == android.R.id.content) {
+ return view
+ }
+
+ fallback = view
+ }
+
+ if (view != null) {
+ val parent = view.parent
+ view = if (parent is View) parent else null
+ }
+ } while (view != null)
+
+ return fallback
+ }
+ }
+}
+
+private class FocusSnackbarCallback(
+ private val content: View,
+) : ContentViewCallback {
+
+ override fun animateContentIn(delay: Int, duration: Int) {
+ content.translationY = (content.height).toFloat()
+ content.animate().apply {
+ translationY(defaultYTranslation)
+ setDuration(animateInDuration)
+ startDelay = delay.toLong()
+ }
+ }
+
+ override fun animateContentOut(delay: Int, duration: Int) {
+ content.translationY = defaultYTranslation
+ content.animate().apply {
+ translationY((content.height).toFloat())
+ setDuration(animateOutDuration)
+ startDelay = delay.toLong()
+ }
+ }
+
+ companion object {
+ private const val defaultYTranslation = 0f
+ private const val animateInDuration = 200L
+ private const val animateOutDuration = 150L
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/FocusSnackbarDelegate.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/FocusSnackbarDelegate.kt
new file mode 100644
index 0000000000..2c0cc13a49
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/FocusSnackbarDelegate.kt
@@ -0,0 +1,37 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils
+
+import android.view.View
+import androidx.annotation.StringRes
+import mozilla.components.ui.widgets.SnackbarDelegate
+
+class FocusSnackbarDelegate(private val view: View) : SnackbarDelegate {
+
+ override fun show(
+ snackBarParentView: View,
+ @StringRes text: Int,
+ duration: Int,
+ @StringRes action: Int,
+ listener: ((v: View) -> Unit)?,
+ ) {
+ if (listener != null && action != 0) {
+ FocusSnackbar.make(
+ view = view,
+ duration = FocusSnackbar.LENGTH_LONG,
+ )
+ .setText(view.context.getString(text))
+ .setAction(view.context.getString(action)) { listener.invoke(view) }
+ .show()
+ } else {
+ FocusSnackbar.make(
+ view,
+ duration = FocusSnackbar.LENGTH_SHORT,
+ )
+ .setText(view.context.getString(text))
+ .show()
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/HtmlLoader.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/HtmlLoader.kt
new file mode 100644
index 0000000000..c8b287ad9e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/HtmlLoader.kt
@@ -0,0 +1,121 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.utils
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.util.Base64
+import androidx.annotation.DrawableRes
+import androidx.annotation.RawRes
+import java.io.BufferedReader
+import java.io.IOException
+import java.io.InputStream
+import java.io.InputStreamReader
+import java.nio.charset.StandardCharsets
+
+private const val MINIMUM_DRAWABLE_SIZE_BYTES = 8
+
+// Base64 encodes 3 bytes at a time, make sure we have a multiple of 3 here
+// I don't know what a sensible chunk size is, let's just go with 300b.
+private const val BYTE_ARRAY_READ_SIZE = 3 * 100
+
+/**
+ * HtmlLoader for loading localized content.
+ */
+object HtmlLoader {
+ /**
+ * Load a given (html or css) resource file into a String. The input can contain tokens that will
+ * be replaced with localised strings.
+ *
+ * @param substitutionTable A table of substitions, e.g. %shortMessage% -> "Error loading page..."
+ * Can be null, in which case no substitutions will be made.
+ * @return The file content, with all substitutions having being made.
+ */
+ fun loadResourceFile(
+ context: Context,
+ @RawRes resourceID: Int,
+ substitutionTable: Map<String, String>,
+ ): String {
+ try {
+ BufferedReader(
+ InputStreamReader(
+ context.resources.openRawResource(resourceID),
+ StandardCharsets.UTF_8,
+ ),
+ ).use { fileReader ->
+ return readFromResource(fileReader, substitutionTable)
+ }
+ } catch (e: IOException) {
+ throw IllegalStateException("Unable to load error page data", e)
+ }
+ }
+
+ /**
+ * Reads from a given resource and returns a String
+ */
+ private fun readFromResource(
+ fileReader: BufferedReader,
+ substitutionTable: Map<String, String>,
+ ): String {
+ val outputBuffer = StringBuilder()
+ var line = ""
+ while (fileReader.readLine()?.let { line = it } != null) {
+ for ((key, value) in substitutionTable) {
+ line = line.replace(key, value)
+ }
+ outputBuffer.append(line)
+ }
+ return outputBuffer.toString()
+ }
+
+ private val pngHeader = byteArrayOf(-119, 80, 78, 71, 13, 10, 26, 10)
+
+ /**
+ * Loads a given DRAWABLE resource file into a String.
+ */
+ // We are copying the approach BitmapFactory.decodeResource(Resources, int, Options)
+ // uses - you are explicitly allowed to open Drawables, but the method has a @RawRes
+ // annotation (despite officially supporting Drawables).
+ @SuppressLint("ResourceType")
+ fun loadPngAsDataURI(
+ context: Context,
+ @DrawableRes resourceID: Int,
+ ): String {
+ val builder = StringBuilder()
+ builder.append("data:image/png;base64,")
+
+ try {
+ context.resources.openRawResource(resourceID).use { pngInputStream ->
+ return readPngInputStream(pngInputStream, builder)
+ }
+ } catch (e: IOException) {
+ throw IllegalStateException("Unable to load png data")
+ }
+ }
+
+ /**
+ * Reads a PNG input stream and returns a String
+ */
+ private fun readPngInputStream(
+ pngInputStream: InputStream,
+ builder: StringBuilder,
+ ): String {
+ val data = ByteArray(BYTE_ARRAY_READ_SIZE)
+ var bytesRead: Int
+ var headerVerified = false
+ while (pngInputStream.read(data).also { bytesRead = it } > 0) {
+ // Sanity check: lets make sure this is still a png (i.e. make sure the build system
+ // or Android haven't broken / change the image format).
+ if (!headerVerified) {
+ check(bytesRead >= MINIMUM_DRAWABLE_SIZE_BYTES) { "Loaded drawable is improbably small" }
+ for (i in pngHeader.indices) {
+ check(data[i] == pngHeader[i]) { "Invalid png detected" }
+ }
+ headerVerified = true
+ }
+ builder.append(Base64.encodeToString(data, 0, bytesRead, 0))
+ }
+ return builder.toString()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/IntentUtils.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/IntentUtils.kt
new file mode 100644
index 0000000000..296f301166
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/IntentUtils.kt
@@ -0,0 +1,82 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.utils
+
+import android.app.PendingIntent
+import android.content.ComponentName
+import android.content.Context
+import android.content.Intent
+import android.content.pm.LabeledIntent
+import android.os.Build
+import android.os.Parcelable
+import mozilla.components.support.utils.ext.queryIntentActivitiesCompat
+
+object IntentUtils {
+
+ /**
+ * Since Android 12 we need to set PendingIntent mutability explicitly, but Android 6 can be the minimum version
+ * This additional requirement improves your app's security.
+ * FLAG_IMMUTABLE -> Flag indicating that the created PendingIntent should be immutable.
+ */
+ fun defaultIntentPendingFlags(buildVersion: Int = Build.VERSION.SDK_INT): Int =
+ if (buildVersion >= Build.VERSION_CODES.M) {
+ PendingIntent.FLAG_IMMUTABLE
+ } else {
+ 0 // No flags. Default behavior.
+ }
+
+ /**
+ * Method for creating an intent chooser but without the current app
+ */
+ fun getIntentChooser(
+ context: Context,
+ intent: Intent,
+ chooserTitle: CharSequence? = null,
+ ): Intent {
+ val chooserIntent: Intent
+ val resolveInfos = context.packageManager.queryIntentActivitiesCompat(intent, 0).toHashSet()
+
+ val excludedComponentNames = resolveInfos
+ .map { it.activityInfo }
+ .filter { it.packageName == context.packageName }
+ .map { ComponentName(it.packageName, it.name) }
+
+ // Starting with Android N we can use Intent.EXTRA_EXCLUDE_COMPONENTS to exclude components
+ // other way we are constrained to use Intent.EXTRA_INITIAL_INTENTS.
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ chooserIntent = Intent.createChooser(intent, chooserTitle)
+ .putExtra(Intent.EXTRA_EXCLUDE_COMPONENTS, excludedComponentNames.toTypedArray())
+ } else {
+ var targetIntents = resolveInfos
+ .filterNot { it.activityInfo.packageName == context.packageName }
+ .map { resolveInfo ->
+ val activityInfo = resolveInfo.activityInfo
+ val targetIntent = Intent(intent).apply {
+ component = ComponentName(activityInfo.packageName, activityInfo.name)
+ }
+ LabeledIntent(
+ targetIntent,
+ activityInfo.packageName,
+ resolveInfo.labelRes,
+ resolveInfo.icon,
+ )
+ }
+
+ // Sometimes on Android M and below an empty chooser is displayed, problem reported also here
+ // https://issuetracker.google.com/issues/37085761
+ // To fix that we are creating a chooser with an empty intent
+ chooserIntent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ Intent.createChooser(Intent(), chooserTitle)
+ } else {
+ targetIntents = targetIntents.toMutableList()
+ Intent.createChooser(targetIntents.removeAt(0), chooserTitle)
+ }
+ chooserIntent.putExtra(
+ Intent.EXTRA_INITIAL_INTENTS,
+ targetIntents.toTypedArray<Parcelable>(),
+ )
+ }
+ return chooserIntent
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/OneShotOnPreDrawListener.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/OneShotOnPreDrawListener.kt
new file mode 100644
index 0000000000..280e50f53e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/OneShotOnPreDrawListener.kt
@@ -0,0 +1,27 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils
+
+import android.view.View
+import android.view.ViewTreeObserver
+
+/**
+ * A OnPreDrawListener implementation that will execute a callback once and then unsubscribe itself.
+ */
+class OneShotOnPreDrawListener<V : View> (
+ private val view: V,
+ private inline val onPreDraw: (view: V) -> Boolean,
+) : ViewTreeObserver.OnPreDrawListener {
+
+ init {
+ view.viewTreeObserver.addOnPreDrawListener(this)
+ }
+
+ override fun onPreDraw(): Boolean {
+ view.viewTreeObserver.removeOnPreDrawListener(this)
+
+ return onPreDraw(view)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/SearchUtils.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/SearchUtils.kt
new file mode 100644
index 0000000000..396fc7f320
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/SearchUtils.kt
@@ -0,0 +1,19 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils
+
+import android.content.Context
+import mozilla.components.browser.state.state.selectedOrDefaultSearchEngine
+import mozilla.components.feature.search.ext.buildSearchUrl
+import org.mozilla.focus.ext.components
+
+object SearchUtils {
+ fun createSearchUrl(context: Context?, text: String): String {
+ val searchEngine = context?.components?.store?.state?.search?.selectedOrDefaultSearchEngine
+ ?: return text
+
+ return searchEngine.buildSearchUrl(text)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/Settings.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/Settings.kt
new file mode 100644
index 0000000000..3b16490aa4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/Settings.kt
@@ -0,0 +1,507 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils
+
+import android.accessibilityservice.AccessibilityServiceInfo
+import android.content.Context
+import android.content.SharedPreferences
+import android.content.res.Configuration
+import android.content.res.Resources
+import android.view.accessibility.AccessibilityManager
+import androidx.annotation.VisibleForTesting
+import androidx.preference.PreferenceManager
+import mozilla.components.concept.engine.Engine
+import mozilla.components.concept.engine.EngineSession
+import mozilla.components.concept.engine.mediaquery.PreferredColorScheme
+import mozilla.components.support.ktx.android.content.PreferencesHolder
+import mozilla.components.support.ktx.android.content.booleanPreference
+import org.mozilla.focus.R
+import org.mozilla.focus.cookiebanner.CookieBannerOption
+import org.mozilla.focus.nimbus.FocusNimbus
+import org.mozilla.focus.searchsuggestions.SearchSuggestionsPreferences
+import org.mozilla.focus.utils.AppConstants.isKlarBuild
+
+/**
+ * A simple wrapper for SharedPreferences that makes reading preference a little bit easier.
+ * This class is designed to have a lot of (simple) functions
+ */
+@Suppress("TooManyFunctions", "LargeClass")
+class Settings(
+ private val context: Context,
+) : PreferencesHolder {
+
+ companion object {
+ // Default value is block cross site cookies.
+ const val DEFAULT_COOKIE_OPTION_INDEX = 3
+ const val NO_VALUE = "no value"
+ }
+
+ private val accessibilityManager =
+ context.getSystemService(Context.ACCESSIBILITY_SERVICE) as AccessibilityManager?
+
+ /**
+ * Check each active accessibility service to see if it can perform gestures, if any can,
+ * then it is *likely* a switch service is enabled.
+ */
+ private val switchServiceIsEnabled: Boolean
+ get() {
+ accessibilityManager?.getEnabledAccessibilityServiceList(0)?.let { activeServices ->
+ for (service in activeServices) {
+ if (service.capabilities.and(AccessibilityServiceInfo.CAPABILITY_CAN_PERFORM_GESTURES) == 1) {
+ return true
+ }
+ }
+ }
+
+ return false
+ }
+
+ fun createTrackingProtectionPolicy(
+ shouldBlockCookiesValue: String = shouldBlockCookiesValue(),
+ ): EngineSession.TrackingProtectionPolicy {
+ val trackingCategories: MutableList<EngineSession.TrackingProtectionPolicy.TrackingCategory> =
+ mutableListOf(EngineSession.TrackingProtectionPolicy.TrackingCategory.SCRIPTS_AND_SUB_RESOURCES)
+
+ if (shouldBlockSocialTrackers()) {
+ trackingCategories.add(EngineSession.TrackingProtectionPolicy.TrackingCategory.SOCIAL)
+ }
+ if (shouldBlockAdTrackers()) {
+ trackingCategories.add(EngineSession.TrackingProtectionPolicy.TrackingCategory.AD)
+ }
+ if (shouldBlockAnalyticTrackers()) {
+ trackingCategories.add(EngineSession.TrackingProtectionPolicy.TrackingCategory.ANALYTICS)
+ }
+ if (shouldBlockOtherTrackers()) {
+ trackingCategories.add(EngineSession.TrackingProtectionPolicy.TrackingCategory.CONTENT)
+ }
+
+ val cookiePolicy = getCookiePolicy(shouldBlockCookiesValue)
+
+ return EngineSession.TrackingProtectionPolicy.select(
+ cookiePolicy = cookiePolicy,
+ trackingCategories = trackingCategories.toTypedArray(),
+ strictSocialTrackingProtection = shouldBlockSocialTrackers(),
+ )
+ }
+
+ private fun getCookiePolicy(shouldBlockCookiesValue: String) =
+ when (shouldBlockCookiesValue) {
+ context.getString(R.string.yes) ->
+ EngineSession.TrackingProtectionPolicy.CookiePolicy.ACCEPT_NONE
+
+ context.getString(R.string.third_party_tracker) ->
+ EngineSession.TrackingProtectionPolicy.CookiePolicy.ACCEPT_NON_TRACKERS
+
+ context.getString(R.string.third_party_only) ->
+ EngineSession.TrackingProtectionPolicy.CookiePolicy.ACCEPT_ONLY_FIRST_PARTY
+
+ context.getString(R.string.cross_site) ->
+ EngineSession.TrackingProtectionPolicy.CookiePolicy.ACCEPT_FIRST_PARTY_AND_ISOLATE_OTHERS
+
+ context.getString(R.string.no) -> {
+ EngineSession.TrackingProtectionPolicy.CookiePolicy.ACCEPT_ALL
+ }
+
+ NO_VALUE -> {
+ // Ending up here means that the cookie preference has not been yet modified.
+ // We should set it to the default value.
+ setBlockCookiesValue(
+ resources.getStringArray(R.array.cookies_options_entry_values)[DEFAULT_COOKIE_OPTION_INDEX],
+ )
+ EngineSession.TrackingProtectionPolicy.CookiePolicy.ACCEPT_FIRST_PARTY_AND_ISOLATE_OTHERS
+ }
+
+ else -> {
+ // Ending up here means that the cookie preference has already been stored in another locale.
+ // We will have identify the existing option and set the preference to the corresponding value.
+ // See https://github.com/mozilla-mobile/focus-android/issues/5996.
+
+ val cookieOptionIndex =
+ resources.getStringArray(R.array.cookies_options_entries)
+ .asList().indexOf(shouldBlockCookiesValue())
+
+ val correspondingValue =
+ resources.getStringArray(R.array.cookies_options_entry_values).getOrNull(cookieOptionIndex)
+ ?: resources.getStringArray(R.array.cookies_options_entry_values)[DEFAULT_COOKIE_OPTION_INDEX]
+
+ setBlockCookiesValue(correspondingValue)
+
+ // Get the updated cookie policy for the corresponding value
+ when (shouldBlockCookiesValue) {
+ context.getString(R.string.yes) ->
+ EngineSession.TrackingProtectionPolicy.CookiePolicy.ACCEPT_NONE
+
+ context.getString(R.string.third_party_tracker) ->
+ EngineSession.TrackingProtectionPolicy.CookiePolicy.ACCEPT_NON_TRACKERS
+
+ context.getString(R.string.third_party_only) ->
+ EngineSession.TrackingProtectionPolicy.CookiePolicy.ACCEPT_ONLY_FIRST_PARTY
+
+ context.getString(R.string.cross_site) ->
+ EngineSession.TrackingProtectionPolicy.CookiePolicy.ACCEPT_FIRST_PARTY_AND_ISOLATE_OTHERS
+
+ else -> {
+ // Fallback to the default value.
+ EngineSession.TrackingProtectionPolicy.CookiePolicy.ACCEPT_ALL
+ }
+ }
+ }
+ }
+
+ fun setupSafeBrowsing(engine: Engine, shouldUseSafeBrowsing: Boolean = shouldUseSafeBrowsing()) {
+ if (shouldUseSafeBrowsing) {
+ engine.settings.safeBrowsingPolicy = arrayOf(EngineSession.SafeBrowsingPolicy.RECOMMENDED)
+ } else {
+ engine.settings.safeBrowsingPolicy = arrayOf(EngineSession.SafeBrowsingPolicy.NONE)
+ }
+ }
+
+ private val resources: Resources = context.resources
+
+ @Deprecated("This is no longer used. Read search engines from BrowserStore instead")
+ val defaultSearchEngineName: String
+ get() = preferences.getString(getPreferenceKey(R.string.pref_key_search_engine), "")!!
+
+ val openLinksInExternalApp: Boolean
+ get() = preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_open_links_in_external_app),
+ false,
+ )
+
+ var isExperimentationEnabled: Boolean
+ get() = preferences.getBoolean(getPreferenceKey(R.string.pref_key_studies), !isKlarBuild)
+ set(value) {
+ preferences.edit()
+ .putBoolean(getPreferenceKey(R.string.pref_key_studies), value)
+ .commit()
+ }
+
+ var shouldShowCookieBannerCfr: Boolean
+ get() = preferences.getBoolean(
+ getPreferenceKey(R.string.pref_cfr_visibility_for_cookie_banner),
+ true,
+ )
+ set(value) {
+ preferences.edit()
+ .putBoolean(
+ getPreferenceKey(R.string.pref_cfr_visibility_for_cookie_banner),
+ value,
+ )
+ .apply()
+ }
+
+ var shouldShowCfrForTrackingProtection: Boolean
+ get() = preferences.getBoolean(getPreferenceKey(R.string.pref_cfr_visibility_for_tracking_protection), true)
+ set(value) {
+ preferences.edit()
+ .putBoolean(getPreferenceKey(R.string.pref_cfr_visibility_for_tracking_protection), value)
+ .apply()
+ }
+
+ var shouldShowStartBrowsingCfr: Boolean
+ get() = preferences.getBoolean(getPreferenceKey(R.string.pref_cfr_visibility_for_start_browsing), true)
+ set(value) {
+ preferences.edit()
+ .putBoolean(getPreferenceKey(R.string.pref_cfr_visibility_for_start_browsing), value)
+ .apply()
+ }
+
+ var isFirstRun: Boolean
+ get() = preferences.getBoolean(getPreferenceKey(R.string.firstrun_shown), true)
+ set(value) {
+ preferences.edit()
+ .putBoolean(getPreferenceKey(R.string.firstrun_shown), value)
+ .apply()
+ }
+
+ /**
+ * This is needed for GUI Testing. If the value is not set in the sharePref
+ * the default value will be the one from Nimbus.
+ */
+ var isNewOnboardingEnable: Boolean
+ get() = preferences.getBoolean(
+ getPreferenceKey(R.string.new_onboarding_enabled),
+ FocusNimbus.features.onboarding.value().isEnabled,
+ )
+ set(value) {
+ preferences.edit()
+ .putBoolean(getPreferenceKey(R.string.new_onboarding_enabled), value)
+ .apply()
+ }
+
+ var shouldShowPrivacySecuritySettingsToolTip: Boolean
+ get() = preferences.getBoolean(getPreferenceKey(R.string.pref_tool_tip_privacy_security_settings), true)
+ set(value) {
+ preferences.edit()
+ .putBoolean(getPreferenceKey(R.string.pref_tool_tip_privacy_security_settings), value)
+ .apply()
+ }
+
+ fun shouldEnableRemoteDebugging(): Boolean =
+ preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_remote_debugging),
+ false,
+ )
+
+ fun shouldShowSearchSuggestions(): Boolean =
+ preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_show_search_suggestions),
+ false,
+ )
+
+ fun shouldBlockWebFonts(): Boolean =
+ preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_performance_block_webfonts),
+ false,
+ )
+
+ fun shouldBlockJavaScript(): Boolean =
+ preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_performance_block_javascript),
+ false,
+ )
+
+ fun shouldBlockCookiesValue(): String =
+ preferences.getString(
+ getPreferenceKey(
+ R.string
+ .pref_key_performance_enable_cookies,
+ ),
+ NO_VALUE,
+ )!!
+
+ private fun setBlockCookiesValue(newValue: String) {
+ preferences.edit()
+ .putString(getPreferenceKey(R.string.pref_key_performance_enable_cookies), newValue)
+ .apply()
+ }
+
+ fun shouldUseBiometrics(): Boolean =
+ preferences.getBoolean(getPreferenceKey(R.string.pref_key_biometric), false)
+
+ fun shouldUseSecureMode(): Boolean =
+ preferences.getBoolean(getPreferenceKey(R.string.pref_key_secure), false)
+
+ fun setDefaultSearchEngineByName(name: String) {
+ preferences.edit()
+ .putString(getPreferenceKey(R.string.pref_key_search_engine), name)
+ .apply()
+ }
+
+ fun shouldAutocompleteFromShippedDomainList() =
+ preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_autocomplete_preinstalled),
+ true,
+ )
+
+ fun shouldAutocompleteFromCustomDomainList() =
+ preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_autocomplete_custom),
+ true,
+ )
+
+ fun shouldBlockAdTrackers() =
+ preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_privacy_block_ads),
+ true,
+ )
+
+ private fun shouldUseSafeBrowsing() =
+ preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_safe_browsing),
+ true,
+ )
+
+ fun shouldBlockAnalyticTrackers() =
+ preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_privacy_block_analytics),
+ true,
+ )
+
+ fun shouldBlockSocialTrackers() =
+ preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_privacy_block_social),
+ true,
+ )
+
+ fun shouldBlockOtherTrackers() =
+ preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_privacy_block_other3),
+ false,
+ )
+
+ /**
+ * This is automatically inferred based on the current system status. Not a setting in our app.
+ */
+ fun isAccessibilityEnabled() =
+ accessibilityManager?.isTouchExplorationEnabled ?: false || switchServiceIsEnabled
+
+ fun userHasToggledSearchSuggestions(): Boolean =
+ preferences.getBoolean(SearchSuggestionsPreferences.TOGGLED_SUGGESTIONS_PREF, false)
+
+ fun userHasDismissedNoSuggestionsMessage(): Boolean =
+ preferences.getBoolean(SearchSuggestionsPreferences.DISMISSED_NO_SUGGESTIONS_PREF, false)
+
+ fun hasRequestedDesktop() = preferences.getBoolean(
+ getPreferenceKey(R.string.has_requested_desktop),
+ false,
+ )
+
+ fun getAppLaunchCount() = preferences.getInt(
+ getPreferenceKey(R.string.app_launch_count),
+ 0,
+ )
+
+ fun getTotalBlockedTrackersCount() = preferences.getInt(
+ getPreferenceKey(R.string.pref_key_privacy_total_trackers_blocked_count),
+ 0,
+ )
+
+ fun hasSocialBlocked() = preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_privacy_block_social),
+ true,
+ )
+
+ fun hasAdvertisingBlocked() = preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_privacy_block_ads),
+ true,
+ )
+
+ fun hasAnalyticsBlocked() = preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_privacy_block_analytics),
+ true,
+ )
+
+ var lightThemeSelected by booleanPreference(
+ getPreferenceKey(R.string.pref_key_light_theme),
+ false,
+ )
+
+ var darkThemeSelected by booleanPreference(
+ getPreferenceKey(R.string.pref_key_dark_theme),
+ false,
+ )
+
+ var useDefaultThemeSelected by booleanPreference(
+ getPreferenceKey(R.string.pref_key_default_theme),
+ false,
+ )
+
+ /**
+ * Sets Preferred Color scheme based on Dark/Light Theme Settings or Current Configuration
+ */
+ fun getPreferredColorScheme(): PreferredColorScheme {
+ val inDark =
+ (context.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK) ==
+ Configuration.UI_MODE_NIGHT_YES
+ return when {
+ darkThemeSelected -> PreferredColorScheme.Dark
+ lightThemeSelected -> PreferredColorScheme.Light
+ inDark -> PreferredColorScheme.Dark
+ else -> PreferredColorScheme.Light
+ }
+ }
+
+ var shouldUseNimbusPreview: Boolean
+ get() = preferences.getBoolean(getPreferenceKey(R.string.pref_key_use_nimbus_preview), false)
+ set(value) {
+ preferences.edit()
+ .putBoolean(getPreferenceKey(R.string.pref_key_use_nimbus_preview), value)
+ .commit()
+ }
+
+ var useProductionRemoteSettingsServer: Boolean
+ get() = preferences.getBoolean(getPreferenceKey(R.string.pref_key_remote_server_prod), true)
+ set(value) {
+ preferences.edit()
+ .putBoolean(getPreferenceKey(R.string.pref_key_remote_server_prod), value)
+ .commit()
+ }
+
+ fun addSearchWidgetInstalled(count: Int) {
+ val key = getPreferenceKey(R.string.pref_key_search_widget_installed)
+ val newValue = preferences.getInt(key, 0) + count
+ preferences.edit()
+ .putInt(key, newValue)
+ .apply()
+ }
+
+ val searchWidgetInstalled: Boolean
+ get() = 0 < preferences.getInt(
+ getPreferenceKey(R.string.pref_key_search_widget_installed),
+ 0,
+ )
+
+ /**
+ * This is used for promote search widget dialog to appear only at the first data clearing and
+ * at the 5th one.
+ */
+ fun addClearBrowsingSessions(count: Int) {
+ val key = getPreferenceKey(R.string.pref_key_clear_browsing_sessions)
+ val newValue = preferences.getInt(key, 0) + count
+ preferences.edit()
+ .putInt(key, newValue)
+ .apply()
+ }
+
+ fun getClearBrowsingSessions() = preferences.getInt(
+ getPreferenceKey(R.string.pref_key_clear_browsing_sessions),
+ 0,
+ )
+
+ fun getHttpsOnlyMode(): Engine.HttpsOnlyMode {
+ return if (preferences.getBoolean(getPreferenceKey(R.string.pref_key_https_only), true)) {
+ Engine.HttpsOnlyMode.ENABLED
+ } else {
+ Engine.HttpsOnlyMode.DISABLED
+ }
+ }
+
+ /**
+ * This is needed for GUI Testing. If the value is not set in the sharePref
+ * the default value will be the one from Nimbus.
+ */
+ @VisibleForTesting
+ var isCookieBannerEnable: Boolean
+ get() = preferences.getBoolean(
+ getPreferenceKey(R.string.pref_key_cookie_banner_enabled),
+ FocusNimbus.features.cookieBanner.value().isCookieHandlingEnabled,
+ )
+ set(value) {
+ preferences.edit()
+ .putBoolean(getPreferenceKey(R.string.pref_key_cookie_banner_enabled), value)
+ .apply()
+ }
+
+ fun saveCurrentCookieBannerOptionInSharePref(
+ cookieBannerOption: CookieBannerOption,
+ ) {
+ preferences.edit()
+ .putString(
+ context.getString(R.string.pref_key_cookie_banner_settings),
+ context.getString(cookieBannerOption.prefKeyId),
+ ).apply()
+ }
+
+ fun getCurrentCookieBannerOptionFromSharePref(): CookieBannerOption {
+ val optionValue = preferences.getString(
+ context.getString(R.string.pref_key_cookie_banner_settings),
+ context.getString(CookieBannerOption.CookieBannerRejectAll().prefKeyId),
+ )
+ return when (optionValue) {
+ context.getString(CookieBannerOption.CookieBannerDisabled().prefKeyId) ->
+ CookieBannerOption.CookieBannerDisabled()
+ context.getString(CookieBannerOption.CookieBannerRejectAll().prefKeyId) ->
+ CookieBannerOption.CookieBannerRejectAll()
+ else -> CookieBannerOption.CookieBannerDisabled()
+ }
+ }
+
+ private fun getPreferenceKey(resourceId: Int): String =
+ context.getString(resourceId)
+
+ override val preferences: SharedPreferences
+ get() = PreferenceManager.getDefaultSharedPreferences(context)
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/SupportUtils.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/SupportUtils.kt
new file mode 100644
index 0000000000..dbaf7d84aa
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/SupportUtils.kt
@@ -0,0 +1,133 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils
+
+import android.content.Context
+import android.content.Intent
+import android.content.pm.PackageManager
+import androidx.browser.customtabs.CustomTabsIntent
+import androidx.core.content.ContextCompat
+import androidx.core.net.toUri
+import androidx.fragment.app.FragmentActivity
+import mozilla.components.browser.state.state.SessionState
+import mozilla.components.feature.customtabs.createCustomTabConfigFromIntent
+import mozilla.components.support.utils.ext.getPackageInfoCompat
+import org.mozilla.focus.BuildConfig
+import org.mozilla.focus.R
+import org.mozilla.focus.activity.CustomTabActivity
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.locale.Locales
+import org.mozilla.focus.state.AppAction
+import java.io.UnsupportedEncodingException
+import java.net.URLEncoder
+import java.util.Locale
+
+object SupportUtils {
+ const val HELP_URL = "https://support.mozilla.org/kb/what-firefox-focus-android"
+ const val FOCUS_PLAY_STORE_URL = "https://play.google.com/store/apps/details?id=${BuildConfig.APPLICATION_ID}"
+ const val RATE_APP_URL = "market://details?id=" + BuildConfig.APPLICATION_ID
+ const val DEFAULT_BROWSER_URL = "https://support.mozilla.org/kb/set-firefox-focus-default-browser-android"
+ const val PRIVACY_NOTICE_URL = "https://www.mozilla.org/privacy/firefox-focus/"
+ const val PRIVACY_NOTICE_KLAR_URL = "https://www.mozilla.org/de/privacy/firefox-klar/"
+
+ const val OPEN_WITH_DEFAULT_BROWSER_URL = "https://www.mozilla.org/openGeneralSettings" // Fake URL
+ val manifestoURL: String
+ get() {
+ val langTag = Locales.getLanguageTag(Locale.getDefault())
+ return "https://www.mozilla.org/$langTag/about/manifesto/"
+ }
+
+ enum class SumoTopic(
+ /** The final path segment for a SUMO URL - see {@see #getSumoURLForTopic} */
+ internal val topicStr: String,
+ ) {
+ ADD_SEARCH_ENGINE("add-search-engine"),
+ AUTOCOMPLETE("autofill-domain-android"),
+ TRACKERS("trackers"),
+ USAGE_DATA("usage-data"),
+ SEARCH_SUGGESTIONS("search-suggestions-focus-android"),
+ ALLOWLIST("focus-android-allowlist"),
+ STUDIES("how-opt-out-studies-firefox-focus-android"),
+ HTTPS_ONLY("https-only-prefs-focus"),
+ COOKIE_BANNER("cookie-banner-reduction-firefox-focus-android"),
+ }
+
+ fun getGenericSumoURLForTopic(topic: SumoTopic): String {
+ val escapedTopic = getEncodedTopicUTF8(topic.topicStr)
+ val langTag = Locales.getLanguageTag(Locale.getDefault())
+ return "https://support.mozilla.org/$langTag/kb/$escapedTopic"
+ }
+
+ /**
+ * Returns the SUMO URL for a specific topic
+ */
+ fun getSumoURLForTopic(appVersion: String, topic: SumoTopic): String {
+ val escapedTopic = getEncodedTopicUTF8(topic.topicStr)
+ val osTarget = "Android"
+ val langTag = Locales.getLanguageTag(Locale.getDefault())
+ return "https://support.mozilla.org/1/mobile/$appVersion/$osTarget/$langTag/$escapedTopic"
+ }
+
+ // For some reason this URL has a different format than the other SUMO URLs
+ fun getSafeBrowsingURL(): String {
+ val langTag = Locales.getLanguageTag(Locale.getDefault())
+ return "https://support.mozilla.org/$langTag/kb/how-does-phishing-and-malware-protection-work"
+ }
+
+ private fun getEncodedTopicUTF8(topic: String): String {
+ try {
+ return URLEncoder.encode(topic, "UTF-8")
+ } catch (e: UnsupportedEncodingException) {
+ throw IllegalStateException("utf-8 should always be available", e)
+ }
+ }
+
+ /**
+ * Returns the version name of this package.
+ */
+ fun getAppVersion(context: Context): String {
+ try {
+ return context.packageManager.getPackageInfoCompat(context.packageName, 0).versionName
+ } catch (e: PackageManager.NameNotFoundException) {
+ // This should be impossible - we should always be able to get information about ourselves:
+ throw IllegalStateException("Unable find package details for Focus", e)
+ }
+ }
+
+ fun openDefaultBrowserSumoPage(context: Context) {
+ val tabId = context.components.tabsUseCases.addTab(
+ DEFAULT_BROWSER_URL,
+ source = SessionState.Source.Internal.Menu,
+ selectTab = true,
+ private = true,
+ )
+
+ context.components.appStore.dispatch(
+ AppAction.OpenTab(tabId),
+ )
+ }
+
+ fun openUrlInCustomTab(activity: FragmentActivity, destinationUrl: String) {
+ activity.intent.putExtra(
+ CustomTabsIntent.EXTRA_TOOLBAR_COLOR,
+ ContextCompat.getColor(activity, R.color.settings_background),
+ )
+
+ val tabId = activity.components.customTabsUseCases.add(
+ url = destinationUrl,
+ customTabConfig = createCustomTabConfigFromIntent(activity.intent, activity.resources),
+ private = true,
+ source = SessionState.Source.Internal.None,
+ )
+ val openCustomTabActivityIntent =
+ Intent(activity, CustomTabActivity::class.java).apply {
+ action = Intent.ACTION_VIEW
+ data = getSumoURLForTopic(getAppVersion(activity), SumoTopic.ADD_SEARCH_ENGINE).toUri()
+ putExtra(CustomTabActivity.CUSTOM_TAB_ID, tabId)
+ }
+
+ activity.startActivity(openCustomTabActivityIntent)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/ViewUtils.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/ViewUtils.kt
new file mode 100644
index 0000000000..1733cfc307
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/utils/ViewUtils.kt
@@ -0,0 +1,103 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils
+
+import android.app.Activity
+import android.content.Context
+import android.os.Handler
+import android.os.Looper
+import android.view.MenuItem
+import android.view.View
+import android.view.inputmethod.InputMethodManager
+import androidx.annotation.StringRes
+import com.google.android.material.snackbar.Snackbar
+import org.mozilla.focus.ext.tryAsActivity
+import java.lang.ref.WeakReference
+
+object ViewUtils {
+
+ private const val MENU_ITEM_ALPHA_ENABLED = 255
+ private const val MENU_ITEM_ALPHA_DISABLED = 130
+
+ /**
+ * Runnable to show the keyboard for a specific view.
+ */
+ @Suppress("ReturnCount")
+ private class ShowKeyboard(view: View?) : Runnable {
+ companion object {
+ private const val INTERVAL_MS = 100
+ private const val MAX_TRIES = 10
+ }
+
+ private val viewReference: WeakReference<View?> = WeakReference(view)
+ private val handler: Handler = Handler(Looper.getMainLooper())
+ private var tries: Int = MAX_TRIES
+
+ override fun run() {
+ val myView = viewReference.get() ?: return
+ val activity: Activity = myView.context?.tryAsActivity() ?: return
+ val imm = activity.getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager ?: return
+
+ when {
+ tries <= 0 -> return
+ !myView.isFocusable -> return
+ !myView.isFocusableInTouchMode -> return
+ !myView.requestFocus() -> {
+ post()
+ return
+ }
+ !imm.isActive(myView) -> {
+ post()
+ return
+ }
+ !imm.showSoftInput(myView, InputMethodManager.SHOW_IMPLICIT) -> {
+ post()
+ }
+ }
+ }
+
+ fun post() {
+ tries--
+ handler.postDelayed(this, INTERVAL_MS.toLong())
+ }
+ }
+
+ fun showKeyboard(view: View?) {
+ val showKeyboard = ShowKeyboard(view)
+ showKeyboard.post()
+ }
+
+ fun hideKeyboard(view: View?) {
+ val imm = view?.context?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
+
+ imm.hideSoftInputFromWindow(view.windowToken, 0)
+ }
+
+ /**
+ * Create a custom FocusSnackbar.
+ */
+ fun showBrandedSnackbar(view: View?, @StringRes resId: Int, delayMillis: Int) {
+ val context = view!!.context
+ val snackbar = FocusSnackbar.make(view, Snackbar.LENGTH_LONG)
+ snackbar.setText(context.getString(resId))
+
+ view.postDelayed({ snackbar.show() }, delayMillis.toLong())
+ }
+
+ /**
+ * Enable or disable a [MenuItem]
+ * If the menu item is disabled it can not be clicked and the menu icon is semi-transparent
+ *
+ * @param menuItem the menu item to enable/disable
+ * @param enabled true if the menu item should be enabled
+ */
+ fun setMenuItemEnabled(menuItem: MenuItem, enabled: Boolean) {
+ menuItem.isEnabled = enabled
+ val icon = menuItem.icon
+ if (icon != null) {
+ icon.mutate().alpha = if (enabled) MENU_ITEM_ALPHA_ENABLED else MENU_ITEM_ALPHA_DISABLED
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/AboutPreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/AboutPreference.kt
new file mode 100644
index 0000000000..384b3d38ad
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/AboutPreference.kt
@@ -0,0 +1,24 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.widget
+
+import android.content.Context
+import android.util.AttributeSet
+import androidx.preference.Preference
+import org.mozilla.focus.R
+
+/**
+ * Custom preference used to display "About Firefox Focus" in Mozilla settings screen.
+ */
+class AboutPreference @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet,
+ defStyleAttr: Int = 0,
+) : Preference(context, attrs, defStyleAttr) {
+ init {
+ val appName = getContext().resources.getString(R.string.app_name)
+ val title = getContext().resources.getString(R.string.preference_about, appName)
+ setTitle(title)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/CookiesPreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/CookiesPreference.kt
new file mode 100644
index 0000000000..699f233e2b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/CookiesPreference.kt
@@ -0,0 +1,46 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.widget
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.View
+import androidx.core.view.isVisible
+import androidx.preference.ListPreference
+import androidx.preference.PreferenceViewHolder
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.settings
+
+/**
+ * Autocomplete preference that will show a sub screen to configure the autocomplete behavior.
+ */
+class CookiesPreference(context: Context, attrs: AttributeSet?) : ListPreference(context, attrs) {
+
+ override fun onBindViewHolder(holder: PreferenceViewHolder) {
+ super.onBindViewHolder(holder)
+ updateSummary()
+ showIcon(holder)
+ }
+
+ override fun notifyChanged() {
+ super.notifyChanged()
+ updateSummary()
+ }
+
+ fun updateSummary() {
+ val settings = context.settings
+
+ val cookieOptionIndex =
+ context.resources.getStringArray(R.array.cookies_options_entry_values)
+ .asList().indexOf(settings.shouldBlockCookiesValue())
+ this.summary =
+ context.resources.getStringArray(R.array.cookies_options_entries)[cookieOptionIndex]
+ }
+
+ private fun showIcon(holder: PreferenceViewHolder?) {
+ val widgetFrame: View? = holder?.findViewById(android.R.id.widget_frame)
+ widgetFrame?.isVisible = true
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/DefaultBrowserPreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/DefaultBrowserPreference.kt
new file mode 100644
index 0000000000..7b25858209
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/DefaultBrowserPreference.kt
@@ -0,0 +1,90 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.widget
+
+import android.app.role.RoleManager
+import android.content.Context
+import android.os.Build
+import android.util.AttributeSet
+import androidx.preference.Preference
+import androidx.preference.PreferenceViewHolder
+import com.google.android.material.switchmaterial.SwitchMaterial
+import mozilla.components.support.utils.Browsers
+import mozilla.components.support.utils.ext.navigateToDefaultBrowserAppsSettings
+import org.mozilla.focus.GleanMetrics.SetDefaultBrowser
+import org.mozilla.focus.R
+import org.mozilla.focus.ext.tryAsActivity
+import org.mozilla.focus.utils.SupportUtils.openDefaultBrowserSumoPage
+
+class DefaultBrowserPreference @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0,
+) : Preference(context, attrs, defStyleAttr) {
+
+ private var switchView: SwitchMaterial? = null
+ private val browsers
+ get() = Browsers.all(context)
+
+ init {
+ widgetLayoutResource = R.layout.preference_default_browser
+ val appName = context.resources.getString(R.string.app_name)
+ val title = context.resources.getString(R.string.preference_default_browser2, appName)
+ setTitle(title)
+ }
+
+ override fun onBindViewHolder(holder: PreferenceViewHolder) {
+ super.onBindViewHolder(holder)
+ switchView = holder.findViewById(R.id.switch_widget) as SwitchMaterial
+ update()
+ }
+
+ fun update() {
+ switchView?.isChecked = browsers.isDefaultBrowser
+ }
+
+ public override fun onClick() {
+ val isDefault = browsers.isDefaultBrowser
+ when {
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q -> {
+ context.getSystemService(RoleManager::class.java).also {
+ if (it.isRoleAvailable(RoleManager.ROLE_BROWSER) && !it.isRoleHeld(
+ RoleManager.ROLE_BROWSER,
+ )
+ ) {
+ context.tryAsActivity()?.startActivityForResult(
+ it.createRequestRoleIntent(RoleManager.ROLE_BROWSER),
+ REQUEST_CODE_BROWSER_ROLE,
+ )
+ SetDefaultBrowser.fromAppSettings.record(
+ SetDefaultBrowser.FromAppSettingsExtra(
+ isDefault,
+ ),
+ )
+ } else {
+ context.navigateToDefaultBrowserAppsSettings()
+ SetDefaultBrowser.fromOsSettings.record(SetDefaultBrowser.FromOsSettingsExtra(isDefault))
+ }
+ }
+ }
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.N -> {
+ context.navigateToDefaultBrowserAppsSettings()
+ SetDefaultBrowser.fromOsSettings.record(SetDefaultBrowser.FromOsSettingsExtra(isDefault))
+ }
+ else -> {
+ openDefaultBrowserSumoPage(context)
+ SetDefaultBrowser.learnMoreOpened.record(
+ SetDefaultBrowser.LearnMoreOpenedExtra(
+ isDefault,
+ ),
+ )
+ }
+ }
+ }
+
+ companion object {
+ const val REQUEST_CODE_BROWSER_ROLE = 1
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/LocaleListPreference.java b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/LocaleListPreference.java
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/LocaleListPreference.java
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/MozillaPreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/MozillaPreference.kt
new file mode 100644
index 0000000000..f1e11d6c41
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/MozillaPreference.kt
@@ -0,0 +1,21 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.widget
+
+import android.content.Context
+import android.util.AttributeSet
+import androidx.preference.Preference
+import org.mozilla.focus.R
+
+class MozillaPreference @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet?,
+ defStyleAttr: Int = 0,
+) : Preference(context, attrs, defStyleAttr) {
+ init {
+ val appName = getContext().resources.getString(R.string.app_name)
+ val summary = getContext().resources.getString(R.string.preference_mozilla_summary, appName)
+ setSummary(summary)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/ResizableKeyboardCoordinatorLayout.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/ResizableKeyboardCoordinatorLayout.kt
new file mode 100644
index 0000000000..4286d74695
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/ResizableKeyboardCoordinatorLayout.kt
@@ -0,0 +1,34 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.widget
+
+import android.content.Context
+import android.util.AttributeSet
+import androidx.coordinatorlayout.widget.CoordinatorLayout
+
+/**
+ * A CoordinatorLayout implementation that resizes dynamically based on whether a keyboard is visible or not.
+ */
+class ResizableKeyboardCoordinatorLayout @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0,
+) : CoordinatorLayout(context, attrs, defStyleAttr) {
+ private val delegate = ResizableKeyboardViewDelegate(this, attrs)
+
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ delegate.onAttachedToWindow()
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ delegate.onDetachedFromWindow()
+ }
+
+ override fun requestDisallowInterceptTouchEvent(b: Boolean) {
+ // As this is a direct parent of EngineView, we don't want to propagate this request to the parent
+ // because that would prevent the hiding of the toolbar.
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/ResizableKeyboardLinearLayout.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/ResizableKeyboardLinearLayout.kt
new file mode 100644
index 0000000000..0297ef663e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/ResizableKeyboardLinearLayout.kt
@@ -0,0 +1,29 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.widget
+
+import android.content.Context
+import android.util.AttributeSet
+import android.widget.LinearLayout
+
+/**
+ * A CoordinatorLayout implementation that resizes dynamically based on whether a keyboard is visible or not.
+ */
+class ResizableKeyboardLinearLayout @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0,
+) : LinearLayout(context, attrs, defStyleAttr) {
+ private val delegate = ResizableKeyboardViewDelegate(this, attrs)
+
+ public override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ delegate.onAttachedToWindow()
+ }
+
+ public override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ delegate.onDetachedFromWindow()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/ResizableKeyboardViewDelegate.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/ResizableKeyboardViewDelegate.kt
new file mode 100644
index 0000000000..7dcdbc863f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/ResizableKeyboardViewDelegate.kt
@@ -0,0 +1,119 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.widget
+
+import android.animation.Animator
+import android.animation.AnimatorListenerAdapter
+import android.animation.ValueAnimator
+import android.graphics.Rect
+import android.util.AttributeSet
+import android.view.View
+import android.view.ViewTreeObserver
+import org.mozilla.focus.R
+
+private const val ANIMATION_LENGTH_MS = 200L
+
+/**
+ * A helper class to implement a ViewGroup that resizes dynamically (by adding padding to the bottom)
+ * based on whether a keyboard is visible or not.
+ *
+ * Implementation based on:
+ * https://github.com/mikepenz/MaterialDrawer/blob/master/library/src/main/java/com/mikepenz/materialdrawer/util/KeyboardUtil.java
+ *
+ * A View using this delegate needs to forward the calls to onAttachedToWindow() and onDetachedFromWindow()
+ * to this class.
+ */
+internal class ResizableKeyboardViewDelegate(
+ private val delegateView: View,
+ attrs: AttributeSet?,
+) {
+ private val rect = Rect()
+ private var decorView: View? = null
+ private var shouldAnimate = false
+ private var isAnimating = false
+ private val layoutListener = ViewTreeObserver.OnGlobalLayoutListener {
+ if (isAnimating) {
+ return@OnGlobalLayoutListener
+ }
+ val difference = calculateDifferenceBetweenHeightAndUsableArea()
+
+ // If difference > 0, keyboard is showing.
+ // If difference =< 0, keyboard is not showing or is in multiview mode.
+ if (difference > 0) {
+ // Keyboard showing -> Set difference has bottom padding.
+ if (delegateView.paddingBottom != difference) {
+ updateBottomPadding(difference)
+ }
+ } else {
+ // Keyboard not showing -> Reset bottom padding.
+ if (delegateView.paddingBottom != 0) {
+ updateBottomPadding(0)
+ }
+ }
+ }
+
+ init {
+ val styleAttributeArray = delegateView.context.theme.obtainStyledAttributes(
+ attrs,
+ R.styleable.ResizableKeyboardViewDelegate,
+ 0,
+ 0,
+ )
+ shouldAnimate = try {
+ styleAttributeArray.getBoolean(R.styleable.ResizableKeyboardViewDelegate_animate, false)
+ } finally {
+ styleAttributeArray.recycle()
+ }
+ }
+
+ fun onAttachedToWindow() {
+ delegateView.viewTreeObserver.addOnGlobalLayoutListener(layoutListener)
+ }
+
+ fun onDetachedFromWindow() {
+ delegateView.viewTreeObserver.removeOnGlobalLayoutListener(layoutListener)
+ }
+
+ private fun updateBottomPadding(value: Int) {
+ if (shouldAnimate) {
+ animateBottomPaddingTo(value)
+ } else {
+ delegateView.setPadding(0, 0, 0, value)
+ }
+ }
+
+ private fun animateBottomPaddingTo(value: Int) {
+ isAnimating = true
+ val animator = ValueAnimator.ofInt(delegateView.paddingBottom, value)
+ animator.addUpdateListener { animation: ValueAnimator ->
+ delegateView.setPadding(
+ 0,
+ 0,
+ 0,
+ animation.animatedValue as Int,
+ )
+ }
+ animator.duration = ANIMATION_LENGTH_MS
+ animator.addListener(
+ object : AnimatorListenerAdapter() {
+ override fun onAnimationEnd(animation: Animator) {
+ isAnimating = false
+ }
+ },
+ )
+ animator.start()
+ }
+
+ private fun calculateDifferenceBetweenHeightAndUsableArea(): Int {
+ if (decorView == null) {
+ decorView = delegateView.rootView
+ }
+ decorView!!.getWindowVisibleDisplayFrame(rect)
+ return if (rect.height() >= rect.width()) {
+ delegateView.resources.displayMetrics.heightPixels - rect.bottom
+ } else {
+ delegateView.resources.displayMetrics.widthPixels - rect.right
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/SwitchWithDescription.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/SwitchWithDescription.kt
new file mode 100644
index 0000000000..d726fa20f3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/SwitchWithDescription.kt
@@ -0,0 +1,72 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.widget
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.appcompat.content.res.AppCompatResources
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.core.content.withStyledAttributes
+import mozilla.components.support.ktx.android.view.putCompoundDrawablesRelativeWithIntrinsicBounds
+import org.mozilla.focus.R
+import org.mozilla.focus.databinding.SwitchWithDescriptionBinding
+
+class SwitchWithDescription @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0,
+) : ConstraintLayout(context, attrs, defStyleAttr) {
+
+ internal var binding: SwitchWithDescriptionBinding
+
+ init {
+ val view =
+ LayoutInflater.from(context).inflate(R.layout.switch_with_description, this, true)
+ binding = SwitchWithDescriptionBinding.bind(view)
+
+ context.withStyledAttributes(attrs, R.styleable.SwitchWithDescription, defStyleAttr, 0) {
+ val icon = getResourceId(
+ R.styleable.SwitchWithDescription_switchIcon,
+ R.drawable.mozac_ic_shield_24,
+ )
+
+ val switchTitle = resources.getString(
+ getResourceId(
+ R.styleable.SwitchWithDescription_switchTitle,
+ R.string.enhanced_tracking_protection,
+ ),
+ )
+ updateIcon(icon = icon, iconContentDescription = switchTitle)
+ updateTitle(switchTitle)
+
+ updateDescription(
+ resources.getString(
+ getResourceId(
+ R.styleable.SwitchWithDescription_switchDescription,
+ R.string.enhanced_tracking_protection_state_on,
+ ),
+ ),
+ )
+ }
+ }
+
+ private fun updateTitle(title: String) {
+ binding.title.text = title
+ }
+
+ internal fun updateDescription(description: String) {
+ binding.description.text = description
+ }
+
+ internal fun updateIcon(icon: Int, iconContentDescription: String) {
+ with(binding.switchWidget) {
+ putCompoundDrawablesRelativeWithIntrinsicBounds(
+ start = AppCompatResources.getDrawable(context, icon),
+ )
+ contentDescription = iconContentDescription
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/TelemetrySwitchPreference.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/TelemetrySwitchPreference.kt
new file mode 100644
index 0000000000..10ecb00236
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/widget/TelemetrySwitchPreference.kt
@@ -0,0 +1,44 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.widget
+
+import android.content.Context
+import android.util.AttributeSet
+import mozilla.components.service.glean.Glean
+import org.mozilla.focus.R
+import org.mozilla.focus.settings.LearnMoreSwitchPreference
+import org.mozilla.focus.telemetry.GleanMetricsService
+import org.mozilla.focus.utils.SupportUtils
+
+/**
+ * Switch preference for enabling/disabling telemetry
+ */
+internal class TelemetrySwitchPreference(context: Context, attrs: AttributeSet?) :
+ LearnMoreSwitchPreference(context, attrs) {
+
+ init {
+ isChecked = GleanMetricsService.isTelemetryEnabled(context)
+ }
+
+ override fun onClick() {
+ super.onClick()
+
+ Glean.setUploadEnabled(isChecked)
+ }
+
+ override fun getDescription(): String {
+ return context.resources.getString(
+ R.string.preference_mozilla_telemetry_summary2,
+ context.resources.getString(R.string.app_name),
+ )
+ }
+
+ override fun getLearnMoreUrl(): String {
+ return SupportUtils.getSumoURLForTopic(
+ SupportUtils.getAppVersion(context),
+ SupportUtils.SumoTopic.USAGE_DATA,
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/main/res/anim/erase_animation.xml b/mobile/android/focus-android/app/src/main/res/anim/erase_animation.xml
new file mode 100644
index 0000000000..120df0a9b6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/anim/erase_animation.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+ android:interpolator="@android:anim/accelerate_interpolator">
+ <scale
+ android:duration="@integer/erase_animation_scale_duration"
+ android:fromXScale="100%p"
+ android:toXScale="95%p"
+ android:fromYScale="100%p"
+ android:toYScale="95%p"
+ android:pivotX="50%p"
+ android:pivotY="50%p" />
+ <translate
+ android:duration="@integer/erase_animation_translate_duration"
+ android:fromYDelta="0"
+ android:toYDelta="100%p"
+ android:startOffset="@integer/erase_animation_translate_offset" />
+</set>
diff --git a/mobile/android/focus-android/app/src/main/res/anim/fab_reveal.xml b/mobile/android/focus-android/app/src/main/res/anim/fab_reveal.xml
new file mode 100644
index 0000000000..26aac87a7b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/anim/fab_reveal.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+ android:interpolator="@android:anim/linear_interpolator">
+ <scale
+ android:delay="100"
+ android:duration="300"
+ android:fromXScale="0.0"
+ android:fromYScale="0.0"
+ android:pivotX="50%"
+ android:pivotY="50%"
+ android:toXScale="1.0"
+ android:toYScale="1.0" />
+</set> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/anim/fade_in.xml b/mobile/android/focus-android/app/src/main/res/anim/fade_in.xml
new file mode 100644
index 0000000000..6c96876a62
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/anim/fade_in.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<alpha xmlns:android="http://schemas.android.com/apk/res/android"
+ android:interpolator="@android:interpolator/decelerate_quad"
+ android:fromAlpha="0.0" android:toAlpha="1.0"
+ android:duration="250" />
diff --git a/mobile/android/focus-android/app/src/main/res/anim/fade_out.xml b/mobile/android/focus-android/app/src/main/res/anim/fade_out.xml
new file mode 100644
index 0000000000..c247c63616
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/anim/fade_out.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<alpha xmlns:android="http://schemas.android.com/apk/res/android"
+ android:interpolator="@android:interpolator/accelerate_quad"
+ android:fromAlpha="1.0" android:toAlpha="0"
+ android:duration="250" />
diff --git a/mobile/android/focus-android/app/src/main/res/color/preference_title_text.xml b/mobile/android/focus-android/app/src/main/res/color/preference_title_text.xml
new file mode 100644
index 0000000000..19d8f969a2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/color/preference_title_text.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:color="@color/disabled" android:state_enabled="false" />
+ <item android:color="@color/primaryText" />
+</selector> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/color/selected_search_engine_state.xml b/mobile/android/focus-android/app/src/main/res/color/selected_search_engine_state.xml
new file mode 100644
index 0000000000..a5d05957f6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/color/selected_search_engine_state.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_checked="true" android:color="@color/selected_search_engine"/>
+ <item android:state_checked="false" android:color="@color/preference_title_text"/>
+</selector> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-hdpi/focus_search_widget.png b/mobile/android/focus-android/app/src/main/res/drawable-hdpi/focus_search_widget.png
new file mode 100644
index 0000000000..2f967151f4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-hdpi/focus_search_widget.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-hdpi/focus_search_widget_promote_dialog.png b/mobile/android/focus-android/app/src/main/res/drawable-hdpi/focus_search_widget_promote_dialog.png
new file mode 100644
index 0000000000..e785788998
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-hdpi/focus_search_widget_promote_dialog.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-hdpi/focus_snackbar_background.xml b/mobile/android/focus-android/app/src/main/res/drawable-hdpi/focus_snackbar_background.xml
new file mode 100644
index 0000000000..229d8793b3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-hdpi/focus_snackbar_background.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="@color/snackbarBackground" />
+ <corners android:radius="8dp" />
+</shape>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img1.png b/mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img1.png
new file mode 100644
index 0000000000..93d8e85efa
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img1.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img2.png b/mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img2.png
new file mode 100644
index 0000000000..daf2c89711
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img2.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img3.png b/mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img3.png
new file mode 100644
index 0000000000..e7f49dabdb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img3.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img4.png b/mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img4.png
new file mode 100644
index 0000000000..3209bcd181
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-hdpi/onboarding_img4.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-land-night/home_background.xml b/mobile/android/focus-android/app/src/main/res/drawable-land-night/home_background.xml
new file mode 100644
index 0000000000..dcb440442c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-land-night/home_background.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="640dp"
+ android:height="360dp"
+ android:viewportWidth="640"
+ android:viewportHeight="360">
+ <path
+ android:pathData="M640,360V0H0V360H640Z"
+ android:fillType="evenOdd">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="164.843"
+ android:startX="683.854"
+ android:endY="1028.42"
+ android:endX="469.022"
+ android:type="linear">
+ <item android:offset="0.015625" android:color="#FF1E1236"/>
+ <item android:offset="0.220059" android:color="#FF332866"/>
+ <item android:offset="0.416448" android:color="#FF4D3A83"/>
+ <item android:offset="0.623772" android:color="#FF3C286A"/>
+ <item android:offset="0.757442" android:color="#FF21163E"/>
+ <item android:offset="0.895833" android:color="#FF1D1133"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-land/dark_background.xml b/mobile/android/focus-android/app/src/main/res/drawable-land/dark_background.xml
new file mode 100644
index 0000000000..ae0d91099b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-land/dark_background.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="640dp"
+ android:height="360dp"
+ android:viewportWidth="640"
+ android:viewportHeight="360">
+ <group>
+ <clip-path android:pathData="M0,0h640v360h-640z" />
+ <path
+ android:fillType="evenOdd"
+ android:pathData="M658,412V0H0V412H658Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:endX="58.638"
+ android:endY="504.061"
+ android:startX="58.0827"
+ android:startY="12.6014"
+ android:type="linear">
+ <item
+ android:color="#FFD3D4FA"
+ android:offset="0" />
+ <item
+ android:color="#FFD7D6F9"
+ android:offset="0.189296" />
+ <item
+ android:color="#FFECEAFA"
+ android:offset="0.330362" />
+ <item
+ android:color="#FFF0EFFA"
+ android:offset="0.39489" />
+ <item
+ android:color="#FFD9D3F5"
+ android:offset="0.676039" />
+ <item
+ android:color="#FFD6C9EB"
+ android:offset="0.828066" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ </group>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-land/home_background.xml b/mobile/android/focus-android/app/src/main/res/drawable-land/home_background.xml
new file mode 100644
index 0000000000..014e33d8c2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-land/home_background.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="640dp"
+ android:height="360dp"
+ android:viewportWidth="640"
+ android:viewportHeight="360">
+ <path
+ android:pathData="M640,360V0H0V360H640Z"
+ android:fillType="evenOdd">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="164.843"
+ android:startX="683.854"
+ android:endY="1028.42"
+ android:endX="469.022"
+ android:type="linear">
+ <item android:offset="0.015625" android:color="#D3D4FA"/>
+ <item android:offset="0.220059" android:color="#D7D6F9"/>
+ <item android:offset="0.416448" android:color="#ECEAFA"/>
+ <item android:offset="0.623772" android:color="#F5F4FE"/>
+ <item android:offset="0.757442" android:color="#D9D3F5"/>
+ <item android:offset="0.895833" android:color="#D6C9EB"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-night-hdpi/focus_search_widget.png b/mobile/android/focus-android/app/src/main/res/drawable-night-hdpi/focus_search_widget.png
new file mode 100644
index 0000000000..ddf77786d8
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-night-hdpi/focus_search_widget.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-night-hdpi/focus_search_widget_promote_dialog.png b/mobile/android/focus-android/app/src/main/res/drawable-night-hdpi/focus_search_widget_promote_dialog.png
new file mode 100644
index 0000000000..60dceda0b1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-night-hdpi/focus_search_widget_promote_dialog.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-night/home_background.xml b/mobile/android/focus-android/app/src/main/res/drawable-night/home_background.xml
new file mode 100644
index 0000000000..dfa5e7b1d9
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-night/home_background.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="360dp"
+ android:height="640dp"
+ android:viewportWidth="360"
+ android:viewportHeight="640">
+ <path
+ android:pathData="M360,640V0H0V640H360Z"
+ android:fillType="evenOdd">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="293.054"
+ android:startX="384.668"
+ android:endY="1300.53"
+ android:endX="-407.443"
+ android:type="linear">
+ <item android:offset="0.015625" android:color="#FF1E1236"/>
+ <item android:offset="0.220059" android:color="#FF332866"/>
+ <item android:offset="0.416448" android:color="#FF4D3A83"/>
+ <item android:offset="0.623772" android:color="#FF3C286A"/>
+ <item android:offset="0.757442" android:color="#FF21163E"/>
+ <item android:offset="0.895833" android:color="#FF1D1133"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-nodpi/ic_homescreen_shape.png b/mobile/android/focus-android/app/src/main/res/drawable-nodpi/ic_homescreen_shape.png
new file mode 100644
index 0000000000..b7f30678d4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-nodpi/ic_homescreen_shape.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-v24/ic_splash_screen.xml b/mobile/android/focus-android/app/src/main/res/drawable-v24/ic_splash_screen.xml
new file mode 100644
index 0000000000..496cfae60f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-v24/ic_splash_screen.xml
@@ -0,0 +1,213 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <path
+ android:pathData="M77.898,44.179c-1.132,-2.722 -3.423,-5.66 -5.223,-6.589a27.016,27.016 0,0 1,2.636 7.901l0.005,0.043c-2.944,-7.338 -7.936,-10.297 -12.013,-16.739 -0.206,-0.326 -0.412,-0.652 -0.613,-0.997 -0.115,-0.196 -0.206,-0.374 -0.287,-0.539a4.741,4.741 0,0 1,-0.388 -1.029,0.068 0.068,0 0,0 -0.059,-0.07 0.088,0.088 0,0 0,-0.049 0l-0.013,0.007 -0.019,0.01 0.011,-0.015a18.999,18.999 0,0 0,-8.963 14.461,13.027 13.027,0 0,0 -7.165,2.761 7.74,7.74 0,0 0,-0.674 -0.509,12.061 12.061,0 0,1 -0.073,-6.363 19.285,19.285 0,0 0,-6.267 4.843l-0.012,0c-1.032,-1.307 -0.959,-5.62 -0.9,-6.52a4.68,4.68 0,0 0,-0.869 0.461,18.97 18.97,0 0,0 -2.544,2.18 22.8,22.8 0,0 0,-2.431 2.916l-0.001,0.004 0.001,-0.004a21.974,21.974 0,0 0,-3.493 7.887c-0.012,0.056 -0.023,0.115 -0.035,0.172 -0.049,0.229 -0.225,1.376 -0.256,1.626 -0.002,0.019 -0.004,0.038 -0.006,0.057a24.809,24.809 0,0 0,-0.422 3.592c-0,0.044 -0.003,0.088 -0.003,0.133A26.037,26.037 0,0 0,79.469 58.264c0.044,-0.333 0.079,-0.668 0.118,-1.004A26.762,26.762 0,0 0,77.898 44.179ZM47.89,64.556c0.122,0.058 0.236,0.122 0.361,0.177l0.018,0.011C48.143,64.684 48.017,64.621 47.89,64.556ZM53.855,48.855 L53.855,48.855 53.855,48.855ZM75.319,45.541l-0.003,-0.025 0.004,0.028Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="39.95368"
+ android:startX="77.14962"
+ android:endY="68.32973"
+ android:endX="32.10263"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.13045" android:color="#FF9356F4"/>
+ <item android:offset="0.28673" android:color="#FF8951E5"/>
+ <item android:offset="0.45625" android:color="#FF7A49CD"/>
+ <item android:offset="0.63512" android:color="#FF643DAB"/>
+ <item android:offset="0.81932" android:color="#FF492E81"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M77.898,44.179c-1.132,-2.722 -3.423,-5.66 -5.223,-6.589a27.016,27.016 0,0 1,2.636 7.901c-0.001,-0.006 0.001,0.005 0.004,0.024l0.004,0.028a23.567,23.567 0,0 1,-0.81 17.569C71.526,69.515 64.303,76.077 52.997,75.757 40.782,75.411 30.021,66.348 28.012,54.477a11.231,11.231 0,0 1,0.184 -4.342,19.397 19.397,0 0,0 -0.422,3.592c-0,0.044 -0.003,0.088 -0.003,0.133A26.037,26.037 0,0 0,79.469 58.264c0.044,-0.333 0.079,-0.668 0.118,-1.004A26.762,26.762 0,0 0,77.898 44.179Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="54.269985"
+ android:centerX="72.45744"
+ android:centerY="32.075768"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.65262" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M77.898,44.179c-1.132,-2.722 -3.423,-5.66 -5.223,-6.589a27.016,27.016 0,0 1,2.636 7.901c-0.001,-0.006 0.001,0.005 0.004,0.024l0.004,0.028a23.567,23.567 0,0 1,-0.81 17.569C71.526,69.515 64.303,76.077 52.997,75.757 40.782,75.411 30.021,66.348 28.012,54.477a11.231,11.231 0,0 1,0.184 -4.342,19.397 19.397,0 0,0 -0.422,3.592c-0,0.044 -0.003,0.088 -0.003,0.133A26.037,26.037 0,0 0,79.469 58.264c0.044,-0.333 0.079,-0.668 0.118,-1.004A26.762,26.762 0,0 0,77.898 44.179Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="54.275925"
+ android:centerX="52.584763"
+ android:centerY="54.255596"
+ android:type="radial">
+ <item android:offset="0.2545" android:color="#00AB71FF"/>
+ <item android:offset="0.42052" android:color="#2D9462E0"/>
+ <item android:offset="0.73373" android:color="#A4573B8D"/>
+ <item android:offset="0.9409" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M65.246,47.239c0.057,0.04 0.109,0.08 0.162,0.119a14.158,14.158 0,0 0,-2.417 -3.154c-8.093,-8.092 -2.122,-17.546 -1.115,-18.026l0.011,-0.015a18.999,18.999 0,0 0,-8.963 14.461c0.303,-0.021 0.606,-0.047 0.914,-0.047A13.14,13.14 0,0 1,65.246 47.239Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="39.238106"
+ android:centerX="59.128986"
+ android:centerY="19.753014"
+ android:type="radial">
+ <item android:offset="0.17512" android:color="#FF9658F9"/>
+ <item android:offset="0.32716" android:color="#FF7E48EA"/>
+ <item android:offset="0.37483" android:color="#FF7542E5"/>
+ <item android:offset="0.40682" android:color="#FF6A3DD0"/>
+ <item android:offset="0.485" android:color="#FF5332A2"/>
+ <item android:offset="0.55989" android:color="#FF41297E"/>
+ <item android:offset="0.62964" android:color="#FF342264"/>
+ <item android:offset="0.69229" android:color="#FF2C1E54"/>
+ <item android:offset="0.74179" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M53.855,48.855l0,0c-0.043,0.648 -2.331,2.881 -3.131,2.881 -7.403,0 -8.605,4.479 -8.605,4.479a10.994,10.994 0,0 0,6.133 8.521c0.145,0.075 0.292,0.143 0.439,0.21 0.255,0.113 0.51,0.218 0.765,0.313a11.562,11.562 0,0 0,3.388 0.653c12.976,0.609 15.49,-15.515 6.126,-20.197a8.988,8.988 0,0 1,6.278 1.524,13.139 13.139,0 0,0 -11.408,-6.662c-0.309,0 -0.611,0.025 -0.914,0.047A13.026,13.026 0,0 0,45.758 43.385c0.397,0.336 0.845,0.785 1.789,1.715C49.314,46.841 53.845,48.643 53.855,48.855Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="25.843267"
+ android:centerX="46.301777"
+ android:centerY="65.925316"
+ android:type="radial">
+ <item android:offset="0.06574" android:color="#FF9358FC"/>
+ <item android:offset="0.13086" android:color="#FF9857F8"/>
+ <item android:offset="0.2098" android:color="#FFA755EB"/>
+ <item android:offset="0.29591" android:color="#FFBF52D7"/>
+ <item android:offset="0.38652" android:color="#FFE14EBA"/>
+ <item android:offset="0.41788" android:color="#FFEF4CAF"/>
+ <item android:offset="0.74011" android:color="#FFFF7583"/>
+ <item android:offset="0.97014" android:color="#FFFFB753"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M53.855,48.855l0,0c-0.043,0.648 -2.331,2.881 -3.131,2.881 -7.403,0 -8.605,4.479 -8.605,4.479a10.994,10.994 0,0 0,6.133 8.521c0.145,0.075 0.292,0.143 0.439,0.21 0.255,0.113 0.51,0.218 0.765,0.313a11.562,11.562 0,0 0,3.388 0.653c12.976,0.609 15.49,-15.515 6.126,-20.197a8.988,8.988 0,0 1,6.278 1.524,13.139 13.139,0 0,0 -11.408,-6.662c-0.309,0 -0.611,0.025 -0.914,0.047A13.026,13.026 0,0 0,45.758 43.385c0.397,0.336 0.845,0.785 1.789,1.715C49.314,46.841 53.845,48.643 53.855,48.855Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="13.701733"
+ android:centerX="53.346634"
+ android:centerY="47.94406"
+ android:type="radial">
+ <item android:offset="0.22277" android:color="#4CFFB653"/>
+ <item android:offset="0.34343" android:color="#7FFF807A"/>
+ <item android:offset="0.44004" android:color="#7BFF7781"/>
+ <item android:offset="0.56837" android:color="#6EFF5C94"/>
+ <item android:offset="0.63555" android:color="#66FF4AA2"/>
+ <item android:offset="0.86481" android:color="#4C9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M44.544,42.519c0.211,0.137 0.385,0.252 0.54,0.357a12.061,12.061 0,0 1,-0.073 -6.363,19.285 19.285,0 0,0 -6.267,4.843C38.869,41.353 42.645,41.285 44.544,42.519Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="18.591627"
+ android:centerX="51.899647"
+ android:centerY="29.848495"
+ android:type="radial">
+ <item android:offset="0.02639" android:color="#FF9658F9"/>
+ <item android:offset="0.61886" android:color="#FF7542E5"/>
+ <item android:offset="0.71748" android:color="#FF6339C2"/>
+ <item android:offset="0.93471" android:color="#FF37246B"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M28.012,54.477c2.009,11.871 12.77,20.935 24.985,21.281 11.306,0.32 18.529,-6.242 21.513,-12.644a23.567,23.567 0,0 0,0.81 -17.569l-0.001,-0.003 -0.003,-0.025c-0.003,-0.019 -0.004,-0.031 -0.004,-0.024l0.005,0.043c0.923,6.03 -2.144,11.872 -6.939,15.822l-0.014,0.034c-9.343,7.608 -18.284,4.59 -20.094,3.355 -0.126,-0.061 -0.253,-0.124 -0.379,-0.189 -5.447,-2.603 -7.698,-7.566 -7.215,-11.822a6.687,6.687 0,0 1,-6.168 -3.879,9.821 9.821,0 0,1 9.572,-0.384 12.964,12.964 0,0 0,9.775 0.384c-0.01,-0.212 -4.541,-2.014 -6.308,-3.754 -0.944,-0.93 -1.392,-1.378 -1.789,-1.715a7.74,7.74 0,0 0,-0.674 -0.509c-0.155,-0.106 -0.329,-0.22 -0.54,-0.357 -1.899,-1.234 -5.675,-1.166 -5.8,-1.163l-0.012,0c-1.032,-1.307 -0.959,-5.62 -0.9,-6.52a4.68,4.68 0,0 0,-0.869 0.461,18.97 18.97,0 0,0 -2.544,2.18 22.8,22.8 0,0 0,-2.431 2.916l-0.001,0.004 0.001,-0.004a21.974,21.974 0,0 0,-3.493 7.887C28.481,48.337 27.556,52.38 28.012,54.477Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="76.151306"
+ android:centerX="66.49819"
+ android:centerY="18.1404"
+ android:type="radial">
+ <item android:offset="0.20184" android:color="#FFAB71FF"/>
+ <item android:offset="0.28641" android:color="#FFA46BFC"/>
+ <item android:offset="0.41128" android:color="#FF9059F2"/>
+ <item android:offset="0.53733" android:color="#FF7542E5"/>
+ <item android:offset="0.63798" android:color="#FF6239BF"/>
+ <item android:offset="0.9427" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M62.991,44.204a14.158,14.158 0,0 1,2.417 3.154c0.143,0.108 0.277,0.215 0.391,0.32C71.701,53.116 68.609,60.808 68.378,61.356c4.795,-3.95 7.862,-9.792 6.939,-15.822 -2.944,-7.338 -7.936,-10.297 -12.013,-16.739 -0.206,-0.326 -0.412,-0.652 -0.613,-0.997 -0.115,-0.196 -0.206,-0.374 -0.287,-0.539a4.741,4.741 0,0 1,-0.388 -1.029,0.068 0.068,0 0,0 -0.059,-0.07 0.088,0.088 0,0 0,-0.049 0l-0.013,0.007 -0.019,0.01C60.869,26.658 54.898,36.112 62.991,44.204Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="58.099022"
+ android:centerX="59.052883"
+ android:centerY="26.911263"
+ android:type="radial">
+ <item android:offset="0.08834" android:color="#FF9658F9"/>
+ <item android:offset="0.13821" android:color="#FF8C51F3"/>
+ <item android:offset="0.26179" android:color="#FF7542E5"/>
+ <item android:offset="0.291" android:color="#FF6E3ED6"/>
+ <item android:offset="0.39747" android:color="#FF5533A6"/>
+ <item android:offset="0.49859" android:color="#FF422980"/>
+ <item android:offset="0.59167" android:color="#FF342365"/>
+ <item android:offset="0.67386" android:color="#FF2C1E55"/>
+ <item android:offset="0.7365" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M65.799,47.678c-0.114,-0.105 -0.248,-0.212 -0.391,-0.32 -0.053,-0.04 -0.105,-0.08 -0.162,-0.119a8.989,8.989 0,0 0,-6.278 -1.524C68.333,50.396 65.819,66.518 52.843,65.909a11.563,11.563 0,0 1,-3.388 -0.653c-0.255,-0.095 -0.51,-0.2 -0.765,-0.313 -0.147,-0.067 -0.294,-0.135 -0.439,-0.21l0.018,0.011c1.81,1.235 10.751,4.253 20.094,-3.355l0.014,-0.034C68.609,60.808 71.701,53.116 65.799,47.678Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="49.52185"
+ android:centerX="51.46148"
+ android:centerY="36.733517"
+ android:type="radial">
+ <item android:offset="0.005" android:color="#FF9658F9"/>
+ <item android:offset="0.11881" android:color="#FF9155F6"/>
+ <item android:offset="0.25007" android:color="#FF834CEE"/>
+ <item android:offset="0.34194" android:color="#FF7542E5"/>
+ <item android:offset="0.77822" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M42.119,56.214s1.202,-4.478 8.605,-4.478c0.8,0 3.088,-2.233 3.131,-2.881l-0,0 0,-0a12.964,12.964 0,0 1,-9.775 -0.384,9.821 9.821,0 0,0 -9.572,0.384 6.687,6.687 0,0 0,6.168 3.879c-0.482,4.256 1.768,9.219 7.215,11.822 0.122,0.058 0.236,0.122 0.361,0.177A10.992,10.992 0,0 1,42.119 56.214Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="54.091213"
+ android:centerX="64.53419"
+ android:centerY="39.63183"
+ android:type="radial">
+ <item android:offset="0.18847" android:color="#FF9658F9"/>
+ <item android:offset="0.48577" android:color="#FF834BED"/>
+ <item android:offset="0.66281" android:color="#FF7542E5"/>
+ <item android:offset="0.70445" android:color="#FF6B3DD2"/>
+ <item android:offset="0.78925" android:color="#FF52319F"/>
+ <item android:offset="0.90908" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M77.898,44.179c-1.132,-2.722 -3.423,-5.66 -5.223,-6.589a27.016,27.016 0,0 1,2.636 7.901l0.005,0.043c-2.944,-7.338 -7.936,-10.297 -12.013,-16.739 -0.206,-0.326 -0.412,-0.652 -0.613,-0.997 -0.115,-0.196 -0.206,-0.374 -0.287,-0.539a4.741,4.741 0,0 1,-0.388 -1.029,0.068 0.068,0 0,0 -0.059,-0.07 0.088,0.088 0,0 0,-0.049 0l-0.013,0.007 -0.019,0.01 0.011,-0.015a18.999,18.999 0,0 0,-8.963 14.461c0.303,-0.021 0.606,-0.047 0.914,-0.047a13.14,13.14 0,0 1,11.408 6.661,8.989 8.989,0 0,0 -6.278,-1.524C68.333,50.396 65.819,66.518 52.843,65.909a11.563,11.563 0,0 1,-3.388 -0.653c-0.255,-0.095 -0.51,-0.2 -0.765,-0.313 -0.147,-0.067 -0.294,-0.135 -0.439,-0.21l0.018,0.011c-0.126,-0.061 -0.253,-0.124 -0.379,-0.189 0.122,0.058 0.236,0.122 0.361,0.177a10.992,10.992 0,0 1,-6.133 -8.52s1.202,-4.478 8.605,-4.478c0.8,0 3.088,-2.233 3.131,-2.881l-0,0 0,-0c-0.01,-0.212 -4.541,-2.014 -6.308,-3.754 -0.944,-0.93 -1.392,-1.378 -1.789,-1.715a7.74,7.74 0,0 0,-0.674 -0.509,12.061 12.061,0 0,1 -0.073,-6.363 19.285,19.285 0,0 0,-6.267 4.843l-0.012,0c-1.032,-1.307 -0.959,-5.62 -0.9,-6.52a4.68,4.68 0,0 0,-0.869 0.461,18.97 18.97,0 0,0 -2.544,2.18 22.8,22.8 0,0 0,-2.431 2.916l-0.001,0.004 0.001,-0.004a21.974,21.974 0,0 0,-3.493 7.887c-0.012,0.056 -0.023,0.115 -0.035,0.172 -0.049,0.229 -0.269,1.392 -0.3,1.642 -0.002,0.019 0.002,-0.019 0,0a30.284,30.284 0,0 0,-0.384 3.632c-0,0.044 -0.003,0.088 -0.003,0.133A26.037,26.037 0,0 0,79.469 58.264c0.044,-0.333 0.079,-0.668 0.118,-1.004A26.762,26.762 0,0 0,77.898 44.179ZM75.315,45.516 L75.32,45.544 75.319,45.541Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="34.25737"
+ android:startX="73.93048"
+ android:endY="71.03012"
+ android:endX="37.15773"
+ android:type="linear">
+ <item android:offset="0" android:color="#E59059FF"/>
+ <item android:offset="0.61466" android:color="#00291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img1.png b/mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img1.png
new file mode 100644
index 0000000000..061154a03d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img1.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img2.png b/mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img2.png
new file mode 100644
index 0000000000..86f4b03caf
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img2.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img3.png b/mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img3.png
new file mode 100644
index 0000000000..ab28b46973
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img3.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img4.png b/mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img4.png
new file mode 100644
index 0000000000..0586a7c40c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-xhdpi/onboarding_img4.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img1.png b/mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img1.png
new file mode 100644
index 0000000000..326fd394b1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img1.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img2.png b/mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img2.png
new file mode 100644
index 0000000000..4b0e98b70b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img2.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img3.png b/mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img3.png
new file mode 100644
index 0000000000..f5fe101f17
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img3.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img4.png b/mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img4.png
new file mode 100644
index 0000000000..c2f377a56c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable-xxhdpi/onboarding_img4.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/background_gradient.xml b/mobile/android/focus-android/app/src/main/res/drawable/background_gradient.xml
new file mode 100644
index 0000000000..79a9e23abf
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/background_gradient.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <gradient
+ android:angle="315"
+ android:startColor="@color/headerGradientStart"
+ android:centerColor="@color/headerGradientMiddle"
+ android:endColor="@color/headerGradientEnd" />
+</shape>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/background_install_banner.xml b/mobile/android/focus-android/app/src/main/res/drawable/background_install_banner.xml
new file mode 100644
index 0000000000..bfddde2656
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/background_install_banner.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:drawable="@color/firefoxInstallHint"/>
+ <item android:drawable="?attr/selectableItemBackground"/>
+</layer-list> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/background_list_item_current_session.xml b/mobile/android/focus-android/app/src/main/res/drawable/background_list_item_current_session.xml
new file mode 100644
index 0000000000..4935c3eee8
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/background_list_item_current_session.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="#ffededed">
+ <item android:drawable="@color/colorActiveSession" />
+</ripple> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/background_list_item_session.xml b/mobile/android/focus-android/app/src/main/res/drawable/background_list_item_session.xml
new file mode 100644
index 0000000000..f7997c2c1d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/background_list_item_session.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="#ffededed">
+ <item android:drawable="@color/colorSession" />
+</ripple> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/background_open_in_item.xml b/mobile/android/focus-android/app/src/main/res/drawable/background_open_in_item.xml
new file mode 100644
index 0000000000..cbac869545
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/background_open_in_item.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="@color/colorSecondary">
+ <item android:id="@android:id/mask">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/colorSecondary" />
+ </shape>
+ </item>
+</ripple>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/background_search_suggestion_section.xml b/mobile/android/focus-android/app/src/main/res/drawable/background_search_suggestion_section.xml
new file mode 100644
index 0000000000..fdacddfd94
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/background_search_suggestion_section.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:top="-2dp" android:left="-2dp" android:right="-2dp">
+ <shape android:shape="rectangle">
+ <stroke android:width="1dp" android:color="@color/searchSuggestionPromptBorderColor" />
+ <solid android:color="@color/searchSuggestionPromptBackground" />
+ </shape>
+ </item>
+</layer-list> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/background_snackbar.xml b/mobile/android/focus-android/app/src/main/res/drawable/background_snackbar.xml
new file mode 100644
index 0000000000..7372f0b34d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/background_snackbar.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:bottom="16dp"
+ android:left="16dp"
+ android:right="16dp">
+ <shape android:shape="rectangle">
+ <corners android:radius="8dp" />
+ <solid android:color="@color/menuBackground" />
+ <padding
+ android:bottom="16dp"
+ android:left="30dp"
+ android:right="16dp" />
+ </shape>
+ </item>
+</layer-list>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/context_menu_navigation_view_background.xml b/mobile/android/focus-android/app/src/main/res/drawable/context_menu_navigation_view_background.xml
new file mode 100644
index 0000000000..39e8332693
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/context_menu_navigation_view_background.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="@color/photonInk80" />
+ <corners
+ android:bottomLeftRadius="4dp"
+ android:bottomRightRadius="4dp" />
+</shape> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/dark_background.xml b/mobile/android/focus-android/app/src/main/res/drawable/dark_background.xml
new file mode 100644
index 0000000000..0fd67d7e5c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/dark_background.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="360dp"
+ android:height="640dp"
+ android:viewportWidth="360"
+ android:viewportHeight="640">
+ <path
+ android:fillType="evenOdd"
+ android:pathData="M360,640V0H0V640H360Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:endX="34.2271"
+ android:endY="783"
+ android:startX="31.7778"
+ android:startY="19.575"
+ android:type="linear">
+ <item
+ android:color="#FFD3D4FA"
+ android:offset="0" />
+ <item
+ android:color="#FFD7D6F9"
+ android:offset="0.189296" />
+ <item
+ android:color="#FFECEAFA"
+ android:offset="0.330362" />
+ <item
+ android:color="#FFF0EFFA"
+ android:offset="0.39489" />
+ <item
+ android:color="#FFD9D3F5"
+ android:offset="0.676039" />
+ <item
+ android:color="#FFD6C9EB"
+ android:offset="0.828066" />
+ </gradient>
+ </aapt:attr>
+ </path>
+</vector> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/dialog_background.xml b/mobile/android/focus-android/app/src/main/res/drawable/dialog_background.xml
new file mode 100644
index 0000000000..55be8c4163
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/dialog_background.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <corners android:radius="4dp" />
+ <solid android:color="@color/modal_background" />
+</shape> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/dialog_warning_background.xml b/mobile/android/focus-android/app/src/main/res/drawable/dialog_warning_background.xml
new file mode 100644
index 0000000000..7b914a6186
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/dialog_warning_background.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="@color/images_removal_warning_background_color" />
+ <corners
+ android:bottomLeftRadius="4dp"
+ android:bottomRightRadius="4dp" />
+</shape> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/find_in_page_background.xml b/mobile/android/focus-android/app/src/main/res/drawable/find_in_page_background.xml
new file mode 100644
index 0000000000..4a472d8342
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/find_in_page_background.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <item>
+ <shape>
+ <stroke
+ android:width="1dp"
+ android:color="@color/divider" />
+ </shape>
+ </item>
+ <item android:top="1dp">
+ <shape>
+ <solid android:color="@color/background"/>
+ </shape>
+ </item>
+</layer-list>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/firstrun_button_background.xml b/mobile/android/focus-android/app/src/main/res/drawable/firstrun_button_background.xml
new file mode 100644
index 0000000000..4ef7bded47
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/firstrun_button_background.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <stroke
+ android:width="1dp"
+ android:color="#b3b0b5"/>
+ <solid
+ android:color="#66616b"/>
+ <corners
+ android:radius="1dp"/>
+</shape>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/foreground_list_item_erase.xml b/mobile/android/focus-android/app/src/main/res/drawable/foreground_list_item_erase.xml
new file mode 100644
index 0000000000..2f3d2bb4cf
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/foreground_list_item_erase.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<ripple
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="@color/colorErasePressed" /> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/highlight_dot.xml b/mobile/android/focus-android/app/src/main/res/drawable/highlight_dot.xml
new file mode 100644
index 0000000000..23e9de740d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/highlight_dot.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shape
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval">
+ <solid
+ android:color="@color/colorDotHighlight"/>
+</shape> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/home_background.xml b/mobile/android/focus-android/app/src/main/res/drawable/home_background.xml
new file mode 100644
index 0000000000..53ccc626c9
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/home_background.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="360dp"
+ android:height="640dp"
+ android:viewportWidth="360"
+ android:viewportHeight="640">
+ <path
+ android:pathData="M360,640V0H0V640H360Z"
+ android:fillType="evenOdd">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="293.054"
+ android:startX="384.668"
+ android:endY="1300.53"
+ android:endX="-407.443"
+ android:type="linear">
+ <item android:offset="0.015625" android:color="#D3D4FA"/>
+ <item android:offset="0.220059" android:color="#D7D6F9"/>
+ <item android:offset="0.416448" android:color="#ECEAFA"/>
+ <item android:offset="0.623772" android:color="#F5F4FE"/>
+ <item android:offset="0.757442" android:color="#D9D3F5"/>
+ <item android:offset="0.895833" android:color="#D6C9EB"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+</vector>
+
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_arrowhead_down.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_arrowhead_down.xml
new file mode 100644
index 0000000000..4f59ba2181
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_arrowhead_down.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:pathData="m12,16c-0.2652,-0.0001 -0.5195,-0.1055 -0.707,-0.293l-6,-6c-0.379,-0.3924 -0.3736,-1.0161 0.0122,-1.4018 0.3857,-0.3857 1.0094,-0.3912 1.4018,-0.0122l5.293,5.293 5.293,-5.293c0.3924,-0.379 1.0161,-0.3736 1.4018,0.0122 0.3857,0.3857 0.3912,1.0094 0.0122,1.4018l-6,6c-0.1875,0.1875 -0.4418,0.2929 -0.707,0.293z"
+ android:fillColor="@color/primaryText"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_arrowhead_up.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_arrowhead_up.xml
new file mode 100644
index 0000000000..aa16154a57
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_arrowhead_up.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:pathData="m17.9993,15.9998c-0.2654,-0.0001 -0.52,-0.1055 -0.7076,-0.293l-5.2977,-5.293 -5.2977,5.293c-0.3927,0.379 -1.017,0.3736 -1.4031,-0.0122s-0.3915,-1.0094 -0.0122,-1.4018l6.0054,-6c0.3908,-0.3904 1.0244,-0.3904 1.4153,0l6.0054,6c0.2862,0.286 0.3718,0.716 0.2169,1.0897 -0.1549,0.3736 -0.5197,0.6173 -0.9245,0.6173z"
+ android:fillColor="@color/primaryText"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_autoplay_enabled.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_autoplay_enabled.xml
new file mode 100644
index 0000000000..439947641d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_autoplay_enabled.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:autoMirrored="true"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:fillColor="?primaryText"
+ android:pathData="M18.918 5.282A9.442 9.442 0 0 0 12.2 2.5a0.75 0.75 0 0 0 0 1.5c2.137 0 4.146 0.832 5.657 2.343A7.948 7.948 0 0 1 20.2 12c0 4.411-3.589 8-8 8s-8-3.589-8-8c0-1.427 0.393-2.806 1.107-4.026l1.61 1.61A0.635 0.635 0 0 0 8 9.135V4.364L7.636 4H2.865a0.635 0.635 0 0 0-0.449 1.083l1.789 1.789A9.472 9.472 0 0 0 2.7 12c0 5.238 4.262 9.5 9.5 9.5s9.5-4.262 9.5-9.5a9.442 9.442 0 0 0-2.782-6.718z" />
+ <path
+ android:fillColor="?primaryText"
+ android:pathData="M9.5 15.554V8.446a0.89 0.89 0 0 1 1.33-0.772l6.222 3.554a0.889 0.889 0 0 1 0 1.543l-6.222 3.554a0.888 0.888 0 0 1-1.33-0.771z" />
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_back_button.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_back_button.xml
new file mode 100644
index 0000000000..5194f6f762
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_back_button.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:autoMirrored="true"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:fillColor="?primaryText"
+ android:pathData="M20.25,11.5H5.461L11.431,5.53C11.724,5.237 11.724,4.762 11.431,4.469C11.138,4.176 10.663,4.176 10.37,4.469L3,11.839V12.66L10.37,20.03C10.516,20.176 10.708,20.25 10.9,20.25C11.092,20.25 11.284,20.177 11.43,20.03C11.723,19.737 11.723,19.262 11.43,18.969L5.461,13H20.25C20.664,13 21,12.664 21,12.25C21,11.836 20.664,11.5 20.25,11.5Z" />
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_camera_enabled.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_camera_enabled.xml
new file mode 100644
index 0000000000..d3c49be5a6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_camera_enabled.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:name="icon"
+ android:fillColor="?primaryText"
+ android:pathData="M19.482 5.531c-0.614 0-1.24 0.228-1.75 0.737L17 7a2.5 2.5 0 0 0-2.5-2.5h-9A2.5 2.5 0 0 0 3 7v10a2.5 2.5 0 0 0 2.5 2.5h9A2.5 2.5 0 0 0 17 17l0.732 0.732a2.448 2.448 0 0 0 1.75 0.737c1.285 0 2.518-0.998 2.518-2.505V8.036c0-1.507-1.233-2.505-2.518-2.505zM20.5 15.964c0 0.693-0.595 1.005-1.018 1.005-0.26 0-0.491-0.1-0.689-0.298l-2.496-2.497H15.5V17.2L14.7 18H5.3l-0.8-0.8V6.8L5.3 6h9.4l0.8 0.8v3.025h0.796l2.496-2.497a0.949 0.949 0 0 1 0.689-0.298c0.423 0 1.018 0.312 1.018 1.005v7.929H20.5z" />
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_check.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_check.xml
new file mode 100644
index 0000000000..0eb0456194
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_check.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:autoMirrored="true">
+ <path
+ android:fillColor="@color/primaryText"
+ android:pathData="M9.5,19.25a1,1 0,0 1,-0.707 -0.293l-3.75,-3.75a1,1 0,0 1,1.414 -1.414L9.364,16.7 17.431,5.177a1,1 0,0 1,1.638 1.146l-8.75,12.5a1,1 0,0 1,-0.732 0.423A0.844,0.844 0,0 1,9.5 19.25Z"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_cookies_disable.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_cookies_disable.xml
new file mode 100644
index 0000000000..a08a26fa1b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_cookies_disable.xml
@@ -0,0 +1,13 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
+ android:viewportWidth="24"
+ android:viewportHeight="24"
+ android:width="24dp"
+ android:height="24dp">
+ <path
+ android:pathData="M6.99998 6.00006V6.40406L5.55798 4.96206C6.90298 3.72306 8.60098 2.86106 10.489 2.56006L11.054 3.05806C11.022 3.34406 10.999 3.63306 10.999 3.92806C10.999 7.47406 13.307 10.4771 16.5 11.5291V12.7511L17 13.2511H18.5L19 12.7511V11.9341H19.006C19.649 11.9341 20.264 11.8331 20.862 11.6891L21.492 12.2441C21.416 14.6101 20.47 16.7521 18.972 18.3761L13.25 12.6541V11.2501L12.75 10.7501H11.346L8.59598 8.00006H8.99998L9.49998 7.50006V6.00006L8.99998 5.50006H7.49998L6.99998 6.00006ZM18.159 21.7801C18.305 21.9261 18.497 22.0001 18.689 22.0001C18.881 22.0001 19.073 21.9271 19.219 21.7801C19.512 21.4871 19.512 21.0121 19.219 20.7191L3.13402 4.63406C2.84102 4.34106 2.36602 4.34106 2.07302 4.63406C1.78002 4.92706 1.78002 5.40206 2.07302 5.69506L3.69672 7.31866C2.93108 8.68361 2.49194 10.2558 2.49194 11.9341C2.49194 17.1851 6.74894 21.4421 11.9999 21.4421C13.6787 21.4421 15.253 21.005 16.6194 20.2406L18.159 21.7801ZM4.99994 12.7501V11.2501L5.49994 10.7501H6.99994L7.49994 11.2501V12.7501L6.99994 13.2501H5.49994L4.99994 12.7501ZM9.49994 18.0001L8.99994 18.5001H7.49994L6.99994 18.0001V16.5001L7.49994 16.0001H8.99994L9.49994 16.5001V18.0001Z"
+ android:fillColor="@color/mozac_ui_icons_fill" />
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_developer.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_developer.xml
new file mode 100644
index 0000000000..c6fb44178f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_developer.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="16"
+ android:viewportHeight="16">
+ <path
+ android:fillColor="#f9f9fa"
+ android:pathData="M14.555,3.2l-2.434,2.436a1.243,1.243 0,1 1,-1.757 -1.757L12.8,1.445A3.956,3.956 0,0 0,11 1a3.976,3.976 0,0 0,-3.434 6.02l-6.273,6.273a1,1 0,1 0,1.414 1.414L8.98,8.434A3.96,3.96 0,0 0,11 9a4,4 0,0 0,4 -4,3.956 3.956,0 0,0 -0.445,-1.8z" />
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_download.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_download.xml
new file mode 100644
index 0000000000..a5353f0c71
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_download.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="@color/primaryText"
+ android:pathData="M11.293,17.707a1,1 0,0 0,1.414 0l6,-6a1,1 0,0 0,-1.414 -1.414L13,14.586V3a1,1 0,0 0,-2 0V14.586L6.707,10.293a1,1 0,0 0,-1.414 1.414Z"/>
+ <path
+ android:fillColor="@color/primaryText"
+ android:pathData="M18,20H6a1,1 0,0 0,0 2H18a1,1 0,0 0,0 -2Z"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_error_session_crashed.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_error_session_crashed.xml
new file mode 100644
index 0000000000..8421a7052f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_error_session_crashed.xml
@@ -0,0 +1,387 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="300dp"
+ android:height="300dp"
+ android:viewportWidth="300"
+ android:viewportHeight="300">
+ <path
+ android:pathData="M110.208,227.18a37.772,5.739 0,1 0,75.544 0a37.772,5.739 0,1 0,-75.544 0z"
+ android:fillColor="#eaeaee"/>
+ <path
+ android:pathData="M166.909,241.114c-3.981,-6.089 -4.649,-6.1 -5.174,-6.1 -0.694,-0.012 -20.082,-1.128 -30.409,-1.727l-5.48,-2.529a1,1 0,0 0,-0.736 -0.04c-0.521,0.174 -8.625,2.562 -11.7,3.468a1,1 0,0 0,0.217 1.957l13.172,0.854 -6.831,3.564a1,1 0,0 0,0.458 1.887l45.649,0.217a1,1 0,0 0,0.837 -1.547z"
+ android:fillColor="#eaeaee"/>
+ <path
+ android:pathData="M147.941,251.71l-6.3,-4.348a0.934,0.934 0,0 0,-0.6 -0.176l-36.954,1.3a1,1 0,0 0,-0.649 0.27l-3.478,3.261a1,1 0,0 0,0.684 1.729l46.736,-0.217a1,1 0,0 0,0.563 -1.823z"
+ android:fillColor="#eaeaee"/>
+ <path
+ android:pathData="M196.264,252.187l-11.3,-9.13a1,1 0,0 0,-0.718 -0.218l-26.5,2.39 -4.328,0.216a1,1 0,0 0,-0.648 1.715l8.7,8.479a1,1 0,0 0,0.7 0.284h0.059l33.476,-1.957a1,1 0,0 0,0.57 -1.776z"
+ android:fillColor="#eaeaee"/>
+ <path
+ android:pathData="M223.976,231.634a1.006,1.006 0,0 0,-0.71 -0.319c-11.112,-0.254 -28.009,-0.689 -29.167,-0.85a1,1 0,0 0,-0.893 1.7l5,4.782a1,1 0,0 0,0.691 0.277h0.051c9.877,-0.507 24.978,-1.217 26.009,-1.114a1.108,1.108 0,0 0,1.258 -0.485c0.354,-0.598 0.434,-1.111 -2.239,-3.991z"
+ android:fillColor="#eaeaee"/>
+ <path
+ android:pathData="M157.336,56.28H133.1c-2.108,-3.9 -7.559,-12.719 -14.4,-14.023 -8.952,-1.707 -10.737,7.217 -10.737,7.217s-5.949,-15.469 -21,-13.419c-16.878,2.3 -8.928,20.065 -8.928,20.065H52.627l8.187,0.159h-8.191a1,1 0,0 0,0 2h104.713a1,1 0,0 0,0 -2z"
+ android:fillColor="#fff"/>
+ <path
+ android:pathData="M255.293,70.249H241.6c-1.129,-2.113 -4.19,-7.156 -8.057,-7.894 -4.978,-0.949 -5.971,4.013 -5.971,4.013s-3.309,-8.6 -11.68,-7.462c-9.386,1.278 -4.965,11.158 -4.965,11.158H196.8l9.462,0.184h-9.2a1,1 0,0 0,0 2h58.233a1,1 0,0 0,0 -2z"
+ android:fillColor="#fff"/>
+ <path
+ android:pathData="M241.739,47.853l0.045,-0.1c-0.058,0.025 -0.063,0.06 -0.045,0.1z"
+ android:fillColor="#fff"/>
+ <path
+ android:pathData="M153.55,53.855h-3a0.5,0.5 0,0 1,0 -1h3a0.5,0.5 0,0 1,0 1zM142.55,53.855h-8.07a0.5,0.5 0,0 1,-0.452 -0.285,38.288 38.288,0 0,0 -1.976,-3.334 0.5,0.5 0,0 1,0.837 -0.549c0.393,0.6 1.445,2.295 1.889,3.168h7.771a0.5,0.5 0,0 1,0 1zM76.062,53.143h-3a0.5,0.5 0,0 1,0 -1h3a0.5,0.5 0,0 1,0 1zM65.062,53.143h-12a0.5,0.5 0,0 1,0 -1h12a0.5,0.5 0,0 1,0 1zM77.9,51.653a0.5,0.5 0,0 1,-0.473 -0.339c-0.1,-0.29 -0.2,-0.616 -0.311,-0.972a0.5,0.5 0,1 1,0.958 -0.287c0.1,0.344 0.2,0.656 0.3,0.937a0.5,0.5 0,0 1,-0.312 0.635,0.515 0.515,0 0,1 -0.162,0.026zM108.4,46.5a0.506,0.506 0,0 1,-0.468 -0.32,23.563 23.563,0 0,0 -2.181,-4.037 0.5,0.5 0,0 1,0.834 -0.553,27.46 27.46,0 0,1 1.718,2.983 10.516,10.516 0,0 1,3.679 -5.017,0.5 0.5,0 1,1 0.571,0.82 10.183,10.183 0,0 0,-3.663 5.724,0.5 0.5,0 0,1 -0.4,0.394 0.492,0.492 0,0 1,-0.09 0.006zM126.743,43.534a0.5,0.5 0,0 1,-0.339 -0.133q-0.361,-0.333 -0.734,-0.65a0.5,0.5 0,1 1,0.646 -0.762q0.39,0.33 0.766,0.678a0.5,0.5 0,0 1,-0.339 0.867zM76.821,41.81a0.563,0.563 0,0 1,-0.09 -0.008,0.5 0.5,0 0,1 -0.4,-0.582c0.792,-4.351 3.544,-7.229 8.181,-8.555a0.5,0.5 0,1 1,0.275 0.961c-4.24,1.213 -6.754,3.828 -7.473,7.773a0.5,0.5 0,0 1,-0.493 0.411zM122.713,40.589a0.5,0.5 0,0 1,-0.236 -0.06,12.614 12.614,0 0,0 -2.667,-1.082 0.5,0.5 0,0 1,0.262 -0.965,13.589 13.589,0 0,1 2.879,1.166 0.5,0.5 0,0 1,-0.237 0.94zM99.953,35.925a0.5,0.5 0,0 1,-0.28 -0.086q-0.4,-0.271 -0.82,-0.525a0.5,0.5 0,1 1,0.517 -0.855q0.444,0.267 0.865,0.553a0.5,0.5 0,0 1,-0.281 0.914zM95.483,33.725a0.5,0.5 0,0 1,-0.154 -0.024,16.412 16.412,0 0,0 -2.832,-0.647 0.5,0.5 0,0 1,0.137 -0.99,17.452 17.452,0 0,1 3,0.687 0.5,0.5 0,0 1,-0.154 0.976z"
+ android:fillColor="#eaeaee"/>
+ <path
+ android:pathData="M182.316,98.659a18.015,18.015 0,0 1,-9.94 -2.7,21.661 21.661,0 0,0 -21.783,0 19.662,19.662 0,0 1,-19.879 0,21.655 21.655,0 0,0 -21.78,0 19.65,19.65 0,0 1,-19.873 0,19.92 19.92,0 0,0 -10.886,-2.937 19.931,19.931 0,0 0,-10.889 2.938,18.005 18.005,0 0,1 -9.937,2.7 18,18 0,0 1,-9.936 -2.7,19.926 19.926,0 0,0 -10.888,-2.937 1,1 0,0 0,0 2,18 18,0 0,1 9.936,2.7 19.926,19.926 0,0 0,10.888 2.938,19.932 19.932,0 0,0 10.89,-2.938 18,18 0,0 1,9.937 -2.7,18 18,0 0,1 9.934,2.7 21.649,21.649 0,0 0,21.777 0,19.657 19.657,0 0,1 19.876,0 21.659,21.659 0,0 0,21.782 0,19.666 19.666,0 0,1 19.881,0 19.937,19.937 0,0 0,10.892 2.938,1 1,0 0,0 0,-2zM248.459,88.419a0.5,0.5 0,0 0,-0.7 -0.084,19.457 19.457,0 0,1 -9.2,3.162 11.427,11.427 0,0 1,-3.738 -0.029c2,-0.62 3.759,-1.488 4.548,-2.628 0.953,-1.376 0.377,-2.177 0.086,-2.457 -0.88,-0.849 -2.82,-0.664 -4.236,0.4 -1.065,0.8 -2.892,2.666 -2.477,4.2a29.546,29.546 0,0 1,-4.815 0.685,0.5 0.5,0 0,0 0.024,1h0.025a30.5,30.5 0,0 0,5.355 -0.79c0.88,0.715 2.643,0.915 5.337,0.616 6.261,-0.7 9.574,-3.263 9.712,-3.371a0.5,0.5 0,0 0,0.079 -0.704zM235.813,87.58a3.515,3.515 0,0 1,2.052 -0.735,1.318 1.318,0 0,1 0.891,0.259c0.31,0.3 0,0.859 -0.215,1.168 -0.734,1.06 -2.664,1.894 -4.832,2.472 -0.233,-0.777 0.881,-2.244 2.104,-3.164zM132.534,91.029a17.836,17.836 0,0 0,2.88 1.09,0.5 0.5,0 0,0 0.27,-0.963 16.942,16.942 0,0 1,-2.722 -1.031,0.5 0.5,0 1,0 -0.428,0.9zM113.649,88.229a0.483,0.483 0,0 0,0.168 -0.029,18.775 18.775,0 0,1 6.459,-1 20.224,20.224 0,0 1,5.081 0.581,0.5 0.5,0 1,0 0.249,-0.969 21.191,21.191 0,0 0,-5.33 -0.612,19.728 19.728,0 0,0 -6.795,1.062 0.5,0.5 0,0 0,0.168 0.971zM149.249,91.177a0.5,0.5 0,0 0,0.208 -0.046c0.81,-0.373 1.565,-0.782 2.3,-1.178a18.324,18.324 0,0 1,8.719 -2.718,0.5 0.5,0 0,0 -0.057,-1 19.381,19.381 0,0 0,-9.139 2.837c-0.716,0.388 -1.458,0.789 -2.237,1.148a0.5,0.5 0,0 0,0.209 0.954zM168.178,88.125a19.413,19.413 0,0 1,2.681 1.165,0.5 0.5,0 0,0 0.457,-0.891 20.737,20.737 0,0 0,-2.815 -1.222,0.5 0.5,0 0,0 -0.323,0.947zM139.461,92.781c0.328,0.02 0.666,0.034 1.017,0.043h0.013a0.5,0.5 0,0 0,0.013 -1,26.883 26.883,0 0,1 -0.981,-0.041 0.5,0.5 0,0 0,-0.061 1zM104.536,92.265a0.516,0.516 0,0 0,0.121 -0.015c0.345,-0.086 0.674,-0.18 0.992,-0.28a0.5,0.5 0,1 0,-0.3 -0.953q-0.448,0.142 -0.932,0.263a0.5,0.5 0,0 0,0.12 0.985zM174.427,91.141c0.3,0.141 0.619,0.276 0.944,0.4a0.486,0.486 0,0 0,0.184 0.035,0.5 0.5,0 0,0 0.184,-0.965c-0.308,-0.122 -0.6,-0.25 -0.893,-0.383a0.5,0.5 0,0 0,-0.418 0.908zM206.4,86.346a24.722,24.722 0,0 0,-2.812 -0.152h-0.246a0.5,0.5 0,0 0,0.006 1h0.239a23.378,23.378 0,0 1,2.7 0.146h0.058a0.5,0.5 0,0 0,0.057 -1zM211.357,87.632a18.905,18.905 0,0 0,-0.957 -0.373,0.5 0.5,0 1,0 -0.337,0.941c0.313,0.112 0.614,0.231 0.906,0.354a0.5,0.5 0,0 0,0.388 -0.922zM224.421,91.832a20.357,20.357 0,0 1,-4.951 -0.548,0.5 0.5,0 0,0 -0.241,0.971 21.357,21.357 0,0 0,5.192 0.577,0.5 0.5,0 1,0 0,-1zM78.626,87.193A18.422,18.422 0,0 1,88.8 89.95l0.942,0.506a0.5,0.5 0,0 0,0.468 -0.885l-0.934,-0.5a19.489,19.489 0,0 0,-10.649 -2.878,0.5 0.5,0 0,0 0,1zM195.367,87.829c-0.863,0.392 -1.662,0.824 -2.435,1.242a18.337,18.337 0,0 1,-8.572 2.708,0.5 0.5,0 0,0 0.031,1h0.032a19.407,19.407 0,0 0,8.985 -2.827c0.758,-0.409 1.542,-0.833 2.373,-1.211a0.5,0.5 0,1 0,-0.413 -0.91zM97.544,92.762c0.6,0.044 1.243,0.066 1.905,0.066q0.6,0 1.148,-0.022a0.5,0.5 0,0 0,0.479 -0.521,0.493 0.493,0 0,0 -0.52,-0.479 26.789,26.789 0,0 1,-2.94 -0.042,0.493 0.493,0 0,0 -0.535,0.462 0.5,0.5 0,0 0,0.463 0.536z"
+ android:fillColor="#eaeaee"/>
+ <path
+ android:pathData="M93.5,151.647a18.413,18.413 0,0 1,10.172 2.757c0.313,0.17 0.627,0.34 0.945,0.507a0.5,0.5 0,1 0,0.465 -0.885c-0.314,-0.165 -0.624,-0.333 -0.934,-0.5a19.486,19.486 0,0 0,-10.648 -2.879,0.5 0.5,0 0,0 0,1zM112.419,157.214c0.518,0.038 1.067,0.056 1.631,0.062v-1a24.239,24.239 0,0 1,-1.56 -0.06,0.5 0.5,0 0,0 -0.073,1zM196.805,164.314a17.993,17.993 0,0 1,-9.934 -2.7,24.348 24.348,0 0,0 -4.74,-2.115q-0.039,1.039 -0.087,2.073a24.339,24.339 0,0 1,3.875 1.8,19.91 19.91,0 0,0 10.886,2.938 1,1 0,1 0,0 -2zM113.521,164.314a18,18 0,0 1,-9.935 -2.7,19.924 19.924,0 0,0 -10.887,-2.937 19.92,19.92 0,0 0,-10.886 2.938,18 18,0 0,1 -9.935,2.7 18,18 0,0 1,-9.934 -2.7,19.92 19.92,0 0,0 -10.886,-2.937 1,1 0,0 0,0 2,18 18,0 0,1 9.934,2.7 19.92,19.92 0,0 0,10.886 2.938,19.922 19.922,0 0,0 10.887,-2.937 19.644,19.644 0,0 1,19.869 0,19.923 19.923,0 0,0 10.887,2.938c0.222,0 0.432,-0.006 0.645,-0.011q-0.027,-1 -0.047,-2c-0.202,0.002 -0.397,0.007 -0.603,0.007z"
+ android:fillColor="#eaeaee"/>
+ <path
+ android:pathData="M209.235,68.394h-12a0.5,0.5 0,0 1,0 -1h12a0.5,0.5 0,0 1,0 1zM254.817,68.21h-1.8a0.5,0.5 0,0 1,0 -1h1.8a0.5,0.5 0,0 1,0 1zM244.017,68.21h-1a0.5,0.5 0,0 1,0 -1h1a0.5,0.5 0,0 1,0 1zM240.526,65.329a0.5,0.5 0,0 1,-0.39 -0.187,18.3 18.3,0 0,0 -2,-2.129 0.5,0.5 0,1 1,0.668 -0.744,19.181 19.181,0 0,1 2.109,2.246 0.5,0.5 0,0 1,-0.389 0.813zM228.009,64.7a0.5,0.5 0,0 1,-0.466 -0.32,13.846 13.846,0 0,0 -3.855,-5.164 0.5,0.5 0,1 1,0.623 -0.781,14.475 14.475,0 0,1 3.623,4.438 5.416,5.416 0,0 1,3.107 -3.029,0.5 0.5,0 0,1 0.326,0.945 5,5 0,0 0,-2.867 3.51,0.5 0.5,0 0,1 -0.447,0.4zM210.369,62.664h-0.051a0.5,0.5 0,0 1,-0.447 -0.548,6.448 6.448,0 0,1 1.057,-3.035 0.5,0.5 0,1 1,0.824 0.566,5.457 5.457,0 0,0 -0.886,2.57 0.5,0.5 0,0 1,-0.497 0.444zM214.562,57.625a0.5,0.5 0,0 1,-0.151 -0.977,10.123 10.123,0 0,1 1.018,-0.264 0.5,0.5 0,0 1,0.2 0.98,8.89 8.89,0 0,0 -0.916,0.236 0.512,0.512 0,0 1,-0.151 0.022z"
+ android:fillColor="#eaeaee"/>
+ <path
+ android:pathData="M104.646,204.6H40.958a1,1 0,0 1,0 -2h63.688a1,1 0,1 1,0 2z"
+ android:fillColor="#eaeaee"/>
+ <path
+ android:pathData="M209.627,204.6h-21.586a1,1 0,0 1,0 -2h21.587a1,1 0,0 1,0 2z"
+ android:fillColor="#eaeaee"/>
+ <path
+ android:pathData="M264.9,204.6h-22.368a1,1 0,0 1,0 -2H264.9a1,1 0,0 1,0 2z"
+ android:fillColor="#eaeaee"/>
+ <path
+ android:pathData="M212.21,123.577a0.479,0.479 0,0 0,0.167 -0.029,18.777 18.777,0 0,1 6.456,-1 0.5,0.5 0,0 0,0 -1,19.725 19.725,0 0,0 -6.791,1.06 0.5,0.5 0,0 0,0.167 0.971zM203.092,127.616a0.516,0.516 0,0 0,0.121 -0.015c0.345,-0.086 0.674,-0.18 0.992,-0.28a0.5,0.5 0,1 0,-0.3 -0.953q-0.448,0.142 -0.932,0.263a0.5,0.5 0,0 0,0.12 0.985zM222.437,122.652h0.025a30.515,30.515 0,0 0,5.356 -0.79c0.881,0.714 2.644,0.916 5.336,0.616 6.261,-0.7 9.575,-3.264 9.712,-3.372a0.5,0.5 0,0 0,-0.619 -0.785,19.464 19.464,0 0,1 -9.2,3.163 11.451,11.451 0,0 1,-3.737 -0.029c2,-0.621 3.758,-1.488 4.548,-2.629 0.952,-1.375 0.377,-2.176 0.086,-2.457 -0.88,-0.846 -2.82,-0.664 -4.236,0.4 -1.065,0.8 -2.892,2.667 -2.476,4.2a29.559,29.559 0,0 1,-4.815 0.685,0.5 0.5,0 0,0 0.024,1zM230.304,117.565a3.514,3.514 0,0 1,2.051 -0.735,1.319 1.319,0 0,1 0.892,0.259c0.31,0.3 0,0.859 -0.214,1.168 -0.734,1.06 -2.664,1.894 -4.832,2.473 -0.234,-0.777 0.881,-2.248 2.099,-3.165zM196.104,128.115c0.6,0.044 1.242,0.066 1.9,0.066q0.6,0 1.15,-0.022a0.5,0.5 0,0 0,0.479 -0.521,0.5 0.5,0 0,0 -0.52,-0.479 26.784,26.784 0,0 1,-2.94 -0.042,0.494 0.494,0 0,0 -0.535,0.462 0.5,0.5 0,0 0,0.468 0.536zM261.144,128.745a19.926,19.926 0,0 0,-10.888 2.938,19.646 19.646,0 0,1 -19.87,0 21.646,21.646 0,0 0,-21.775 0,19.648 19.648,0 0,1 -19.871,0 27.517,27.517 0,0 0,-3.86 -1.825,8.043 8.043,0 0,1 -1.24,1.6l-0.067,0.067a23.017,23.017 0,0 1,4.215 1.913,21.646 21.646,0 0,0 21.775,0 19.648,19.648 0,0 1,19.871 0,21.644 21.644,0 0,0 21.774,0 18,18 0,0 1,9.936 -2.7,1 1,0 0,0 0,-2zM246.044,142.127q-0.448,0.142 -0.932,0.263a0.5,0.5 0,0 0,0.12 0.985,0.516 0.516,0 0,0 0.121,-0.015c0.345,-0.086 0.674,-0.18 0.992,-0.28a0.5,0.5 0,1 0,-0.3 -0.953zM187.36,125.3c0.313,0.17 0.626,0.34 0.944,0.507a0.5,0.5 0,0 0,0.466 -0.885c-0.313,-0.165 -0.624,-0.333 -0.936,-0.5a30.785,30.785 0,0 0,-3.129 -1.539,7.669 7.669,0 0,1 0.688,1.4c0.675,0.317 1.317,0.669 1.967,1.017zM241.26,142.915a26.531,26.531 0,0 1,-2.94 -0.042,0.5 0.5,0 0,0 -0.073,1c0.6,0.044 1.241,0.066 1.9,0.066q0.6,0 1.152,-0.022a0.5,0.5 0,0 0,0.479 -0.521,0.517 0.517,0 0,0 -0.52,-0.477zM260.969,137.304a19.715,19.715 0,0 0,-6.786 1.058,0.5 0.5,0 0,0 0.167,0.971 0.479,0.479 0,0 0,0.167 -0.029,18.767 18.767,0 0,1 6.451,-1 0.5,0.5 0,0 0,0 -1zM230.91,140.682c-0.314,-0.165 -0.624,-0.333 -0.934,-0.5a19.5,19.5 0,0 0,-10.648 -2.877,0.5 0.5,0 0,0 0,1 18.429,18.429 0,0 1,10.172 2.756c0.313,0.17 0.627,0.34 0.945,0.507a0.5,0.5 0,1 0,0.465 -0.885z"
+ android:fillColor="#eaeaee"/>
+ <path
+ android:pathData="M186.068,174.772c1.01,-10.949 1.759,-25.609 0.451,-38.9l0.514,-0.514c5.006,-5.033 4.911,-12.421 -0.216,-17.577a12.97,12.97 0,0 0,-17.732 -0.631l-4.1,-1.107s0.429,-2.85 -0.321,-3.725a2.606,2.606 0,0 0,-1.935 -0.82s0.81,-4.055 -1.065,-5.555c-2.071,-1.656 -7.945,3 -7.945,3 -3.551,1.84 -9.684,4.594 -12.2,4.956 -2.875,0.413 -9.386,2.182 -15.237,3.867l-0.414,-0.417a12.97,12.97 0,0 0,-18.4 0,13.094 13.094,0 0,0 0,18.425l1.835,1.845a281.627,281.627 0,0 0,-0.386 35.906,21.818 21.818,0 0,0 -5.216,17.689c0.914,6.436 4.8,9.96 8.711,12.237a45.905,45.905 0,0 0,2.483 7.891,48.514 48.514,0 0,0 1.584,5.944c2.971,8.511 6.707,12.826 11.1,12.826a6.214,6.214 0,0 0,3.926 -1.4c1.7,-1.391 2.456,-3.106 2.576,-9.037 4.45,0.407 9.479,0.63 14.506,0.63 3.466,0 7.989,-0.107 12.491,-0.521 -0.062,5.242 0.283,7.251 2.332,8.929a6.041,6.041 0,0 0,3.818 1.358c5.994,0 9.9,-8.623 11.693,-13.763a54.51,54.51 0,0 0,2.272 -9.4,22.5 22.5,0 0,0 0.282,-1.662c5.6,-3.181 9.206,-8.133 10.03,-13.929a18.73,18.73 0,0 0,-5.437 -16.545z"
+ android:fillColor="#fff"/>
+ <path
+ android:pathData="M180.923,176.649c1.356,-13.432 2.047,-29.548 0.435,-42.9l2.282,-2.282c3.039,-3.056 2.813,-7.153 -0.227,-10.209a7.753,7.753 0,0 0,-11.006 0l-1.5,1.506 -10.849,-2.927V116.9l-5.485,0.652 1.837,-4.185s-9.323,4.837 -13.862,5.489c-3.256,0.468 -12.518,3.116 -17.495,4.577l-2.6,-2.612a7.753,7.753 0,0 0,-11.006 0,7.856 7.856,0 0,0 0,11.067l3.588,3.608c-1,8.19 -1.392,24.339 -0.5,39.878a16.356,16.356 0,0 0,-5.384 14.9c0.691,4.861 3.718,7.353 8.133,9.5a43.736,43.736 0,0 0,2.876 9.68,46.786 46.786,0 0,0 1.529,5.906c2.594,7.432 5.5,10.17 6.8,9.108 0.621,-0.509 0.764,-5.158 0.623,-10.882 10.036,1.55 27.191,1.879 37.611,0.037 -0.141,5.711 -0.339,10.337 0.281,10.845 1.3,1.062 4.686,-2.654 7.28,-10.086a49.724,49.724 0,0 0,2.075 -8.686c0.24,-1.009 0.389,-2.865 0.65,-4.129 4.971,-2.094 8.871,-5.932 9.619,-11.195 1.06,-7.448 -2.858,-11.281 -5.705,-13.723z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="-272.736"
+ android:startX="-300.021"
+ android:endY="574.423"
+ android:endX="547.138"
+ android:type="linear">
+ <item android:offset="0" android:color="#FFCCFBFF"/>
+ <item android:offset="1" android:color="#FFC9E4FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M157.681,202.625c-7.81,-1.785 -7.984,-6.013 -7.316,-8.5l-5.042,-0.149c0.345,2.51 -0.575,6.011 -7.5,7.594a37.408,37.408 0,0 1,-10.215 0.863c9.456,9.453 32.143,9.571 41.307,0.752a33.732,33.732 0,0 1,-11.234 -0.56z"
+ android:fillColor="#f9f9fa"/>
+ <path
+ android:pathData="M174.91,164.318a9.715,9.715 0,0 0,2.452 -3.815c0.485,-10.321 0.055,-20.871 -2.338,-29.052 -2.232,-7.632 -28.394,-17.552 -50.949,-2.609 -4.418,2.927 -5.452,17.609 -4.682,33.059a13.622,13.622 0,0 0,1.968 2.818c2.466,2.659 0.879,4.441 -1.338,6.078a179.491,179.491 0,0 0,2.655 18.852,16.685 16.685,0 0,0 4.478,1.311l-0.076,-24.062 17.388,0.691 2.177,-5.053h6.114l2.011,5.434 15.319,0.637 -0.706,23.843a20.118,20.118 0,0 0,4.39 -1.865c0.9,-4.84 1.941,-11.371 2.7,-18.563 -2.273,-2.035 -4.473,-5.278 -1.563,-7.704z"
+ android:fillColor="#f9f9fa"/>
+ <path
+ android:pathData="M128.086,142.316a1.412,1.412 0,0 0,1.411 -1.41v-3.162a1.41,1.41 0,1 0,-2.821 0v3.162a1.412,1.412 0,0 0,1.41 1.41z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M163.123,142.316a1.412,1.412 0,0 0,1.411 -1.41v-3.162a1.41,1.41 0,1 0,-2.821 0v3.162a1.412,1.412 0,0 0,1.41 1.41z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M167.475,144.641a1,1 0,0 0,-1.383 0.28,3.677 3.677,0 0,1 -5.937,0 1,1 0,0 0,-1.675 1.093,5.674 5.674,0 0,0 9.287,0 1,1 0,0 0,-0.292 -1.373z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M132.434,144.633a1,1 0,0 0,-1.383 0.295,3.758 3.758,0 0,1 -2.965,1.5 3.709,3.709 0,0 1,-2.968 -1.506,1 1,0 0,0 -1.675,1.093 5.674,5.674 0,0 0,9.287 0,1 1,0 0,0 -0.296,-1.382z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M156.383,149.1a3.079,3.079 0,0 1,-2.589 -0.454,5.065 5.065,0 0,1 -1.237,-1.437 14.022,14.022 0,0 0,4.227 -4.094,2.611 2.611,0 0,0 0.316,-2.192 1.475,1.475 0,0 0,-1.215 -0.9c-2.294,-0.468 -9.138,1.038 -12.121,4.226a1.236,1.236 0,0 0,-0.175 1.476c0.667,1.18 4.491,2.1 6.339,2.316a7.2,7.2 0,0 1,-0.174 1.908,4.738 4.738,0 0,1 -3.063,3.2 1,1 0,0 0,0.563 1.919,6.765 6.765,0 0,0 4.441,-4.631 7.768,7.768 0,0 0,0.161 -0.853,4.526 4.526,0 0,0 0.864,0.75 5.069,5.069 0,0 0,4.408 0.626,1 1,0 0,0 -0.743,-1.857z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:strokeWidth="1"
+ android:pathData="M116.035,173.443l-4.139,3.327"
+ android:strokeLineJoin="round"
+ android:strokeColor="#59acff"
+ android:strokeLineCap="round">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M125.989,190.92h-0.029c-4.94,-0.28 -6.414,-3.149 -6.474,-3.271a0.5,0.5 0,0 1,0.9 -0.445c0.055,0.105 1.317,2.473 5.636,2.719a0.5,0.5 0,0 1,-0.028 1z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M169.551,192.631a4.541,4.541 0,0 1,-0.563 -0.035,0.5 0.5,0 1,1 0.124,-0.992c3.16,0.386 6.822,-3.654 6.858,-3.7a0.5,0.5 0,0 1,0.746 0.666c-0.154,0.178 -3.658,4.061 -7.165,4.061z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M183.016,175.823c1.106,-11.346 2.011,-27.289 0.441,-41.342l1.6,-1.6c3.752,-3.772 3.659,-9.13 -0.223,-13.034a9.753,9.753 0,0 0,-13.842 0l-0.68,0.683 -8.249,-2.225v-1.4a2,2 0,0 0,-2.236 -1.986l-2.011,0.239 0.431,-0.982a2,2 0,0 0,-2.752 -2.579c-2.511,1.3 -9.781,4.79 -13.226,5.284 -3.123,0.449 -11.319,2.756 -16.631,4.3l-1.759,-1.769a9.752,9.752 0,0 0,-13.842 0,9.869 9.869,0 0,0 0,13.888l2.909,2.925c-0.839,7.717 -1.311,22.481 -0.456,38.32a18.247,18.247 0,0 0,-5.315 16.012c0.785,5.528 4.3,8.4 7.952,10.359a0.973,0.973 0,0 0,0.379 0.315l0.044,0.018a44.416,44.416 0,0 0,2.707 8.865,47.481 47.481,0 0,0 1.548,5.908c1.391,3.985 4.288,10.669 8.067,10.669a2.948,2.948 0,0 0,1.888 -0.672c0.741,-0.607 1.506,-1.232 1.4,-10.127a149.239,149.239 0,0 0,17.72 0.992,122.747 122.747,0 0,0 15.786,-0.912c-0.187,7.245 -0.156,9.04 1.075,10.048a2.777,2.777 0,0 0,1.78 0.631c3.395,0 6.7,-6 8.655,-11.606a51.053,51.053 0,0 0,2.149 -8.956c0.138,-0.606 0.239,-1.364 0.346,-2.163 0.043,-0.324 0.087,-0.653 0.133,-0.968a21.447,21.447 0,0 0,2.278 -1.27c0.384,-0.2 0.763,-0.42 1.127,-0.66a0.978,0.978 0,0 0,0.307 -0.341,15.378 15.378,0 0,0 6.094,-10.03 15.622,15.622 0,0 0,-5.594 -14.834zM186.631,190.377a13.725,13.725 0,0 1,-6.578 9.6c-4.748,2.479 -11.193,2.162 -11.262,2.162a1,1 0,0 0,-0.111 2c0.065,0 0.426,0.022 1,0.022a30.255,30.255 0,0 0,7.052 -0.837c-0.121,0.893 -0.231,1.788 -0.373,2.385a49.721,49.721 0,0 1,-2.075 8.686c-2.3,6.6 -5.231,10.265 -6.767,10.265a0.788,0.788 0,0 1,-0.513 -0.178c-0.588,-0.481 -0.44,-4.669 -0.3,-9.971a92.144,92.144 0,0 0,3.713 -0.719,0.5 0.5,0 1,0 -0.213,-0.977 95.1,95.1 0,0 1,-10.957 1.71c-3.286,0.248 -6.816,0.369 -10.368,0.369 -3.15,0 -6.3,-0.1 -9.3,-0.267a93.424,93.424 0,0 1,-15 -2.351,0.5 0.5,0 0,0 -0.265,0.965c0.06,0.016 1.8,0.483 4.818,1.03 0.114,5.411 -0.04,9.722 -0.637,10.211a0.956,0.956 0,0 1,-0.621 0.22c-1.47,0 -3.942,-2.918 -6.179,-9.328a46.793,46.793 0,0 1,-1.529 -5.906,37.051 37.051,0 0,1 -2.391,-7.444 43.727,43.727 0,0 0,9.71 1.22h0.005a1,1 0,0 0,0.005 -2c-0.065,0 -6.126,-0.055 -10.213,-1.46 -4.41,-2.147 -7.435,-4.639 -8.125,-9.5a16.356,16.356 0,0 1,5.384 -14.9c-0.888,-15.538 -0.5,-31.687 0.5,-39.878l-3.588,-3.608a7.856,7.856 0,0 1,0 -11.067,7.752 7.752,0 0,1 11.006,0l1.839,1.849c-6.694,2.774 -7.5,6.758 -7.537,6.949a0.5,0.5 0,0 0,0.983 0.183c0.008,-0.043 0.855,-3.866 7.552,-6.438 5.027,-1.473 14.049,-4.046 17.255,-4.507 4.54,-0.652 13.862,-5.489 13.862,-5.489l-1.837,4.185 5.485,-0.652v2.935l10.7,2.888c5.988,2.057 5.959,4.674 5.957,4.737a0.5,0.5 0,0 0,0.448 0.538h0.05a0.5,0.5 0,0 0,0.5 -0.45c0.014,-0.139 0.235,-3.223 -6.035,-5.565l0.726,-0.73a7.753,7.753 0,0 1,11.006 0c3.039,3.056 3.266,7.154 0.227,10.209l-2.282,2.282c1.562,12.943 0.959,28.472 -0.314,41.645l-3.794,-3.566a0.5,0.5 0,1 0,-0.685 0.729l4.357,4.1 0.01,0.009 1.883,1.77c0.011,0.01 0.025,0.014 0.037,0.024a13.352,13.352 0,0 1,3.779 11.911z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M168.257,240.857h-0.01l-48.258,-0.979a0.5,0.5 0,0 1,-0.263 -0.919l8.478,-5.543a0.449,0.449 0,0 1,0.3 -0.08c28.881,1.809 32.47,0.4 32.853,0.169a0.5,0.5 0,0 1,0.729 -0.023L168.61,240a0.5,0.5 0,0 1,-0.354 0.854z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M147.391,237.905c-4.526,0 -12.919,-0.456 -20.082,-3.389 -9.543,-3.907 -13.037,-8.2 -13.719,-9.141a0.5,0.5 0,0 1,0 -0.9l12.716,-6.2a0.493,0.493 0,0 1,0.449 0.006,0.5 0.5,0 0,1 0.263,0.363c0.011,0.068 1.141,6.818 5.027,9.79 5.259,4.022 11.862,1.9 11.929,1.88a0.5,0.5 0,0 1,0.511 0.121L151,236.96a0.5,0.5 0,0 1,-0.315 0.853c-0.038,0.002 -1.285,0.092 -3.294,0.092z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M164.795,253.513c-2.23,0 -3.545,-0.125 -3.574,-0.127a0.5,0.5 0,0 1,-0.373 -0.229l-8.561,-13.457a0.5,0.5 0,0 1,0.4 -0.769c0.109,0 11.008,-0.447 18.976,-4.033 7.87,-3.541 10.335,-8.282 10.359,-8.33a0.5,0.5 0,0 1,0.382 -0.271,0.5 0.5,0 0,1 0.438,0.163l13.047,14.678a0.5,0.5 0,0 1,0.006 0.657,36.427 36.427,0 0,1 -19.868,10.769 69.143,69.143 0,0 1,-11.232 0.949z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M148.408,251.333l-48.267,-0.189a0.5,0.5 0,0 1,-0.343 -0.862l6.677,-6.361a0.5,0.5 0,0 1,0.728 0.041c0.378,0.239 3.928,1.74 32.847,0.626a0.542,0.542 0,0 1,0.3 0.088l8.341,5.746a0.5,0.5 0,0 1,-0.284 0.912z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M226.286,234.554h-0.027c-0.12,-0.006 -12.14,-0.7 -21.877,-4.159 -9.865,-3.507 -14.313,-8.4 -15.115,-9.353a0.5,0.5 0,0 1,-0.045 -0.909l9.663,-5a0.5,0.5 0,0 1,0.635 0.151c0.042,0.058 4.181,5.759 8.169,8.808 5.376,4.112 15.307,5.541 15.406,5.555a0.505,0.505 0,0 1,0.315 0.175l3.26,3.913a0.5,0.5 0,0 1,-0.384 0.82z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M209.79,213.262a0.5,0.5 0,0 1,-0.408 -0.788l5.322,-7.532a0.5,0.5 0,0 1,0.277 -0.194,24.254 24.254,0 0,0 10.284,-6.463 23.325,23.325 0,0 0,4.677 -8.068,0.5 0.5,0 0,1 0.619,-0.339l13.582,3.951a0.5,0.5 0,0 1,0.148 0.89c-0.513,1.044 -3.23,5.865 -11.973,11.332 -9.476,5.926 -22.353,7.2 -22.482,7.21z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M144.443,167.645l-0.217,8.151 1.304,-0.543 0.87,1.087 1.087,-0.979 0.978,1.196 0.978,-1.196 1.087,1.305 0.869,-1.196 0.979,1.304 0.978,-1.521 1.413,0.652v-7.934l-10.326,-0.326z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M165.622,173.79l-2.857,-2.5a0.5,0.5 0,0 0,-0.65 -0.007l-2.643,2.214a0.5,0.5 0,0 0,0.239 0.876l1.283,0.214 -0.058,1.921a0.5,0.5 0,0 0,0.457 0.513l1.643,0.144h0.043a0.5,0.5 0,0 0,0.5 -0.5v-1.832l1.762,-0.17a0.5,0.5 0,0 0,0.281 -0.874z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M169.732,172.623a0.524,0.524 0,0 0,-0.519 0.481l-0.8,21.024 -40.759,-1.183 -0.159,-15.1a0.5,0.5 0,0 0,-0.5 -0.5h-0.005a0.5,0.5 0,0 0,-0.495 0.5l0.164,15.582c0,0.015 0.007,0.027 0.009,0.041a0.5,0.5 0,0 0,0.289 0.569l13.975,6.062a22.293,22.293 0,0 1,-6.079 1.544,0.5 0.5,0 0,0 0.05,1h0.051c0.194,-0.02 4.631,-0.49 7.136,-2.035l2.022,0.877a0.5,0.5 0,0 0,0.7 -0.433l0.35,-6.6 6.365,0.185a14.875,14.875 0,0 1,-2.8 4.539,24.216 24.216,0 0,1 -10.479,6.371 0.5,0.5 0,0 0,-0.342 0.292l-3.56,8.508a0.5,0.5 0,0 0,0.461 0.693,0.492 0.492,0 0,0 0.154,-0.024 64.014,64.014 0,0 0,17.133 -9.089l1.849,4.061a0.5,0.5 0,0 0,0.374 0.286,0.46 0.46,0 0,0 0.082,0.007 0.5,0.5 0,0 0,0.364 -0.157l14.088,-14.968s0,-0.012 0.009,-0.017h0.044a0.5,0.5 0,0 0,0.5 -0.481l0.815,-21.52a0.5,0.5 0,0 0,-0.487 -0.515z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M170.579,168.566a0.439,0.439 0,0 0,-0.054 -0.187,0.471 0.471,0 0,0 -0.049,-0.078 0.485,0.485 0,0 0,-0.074 -0.073c-0.014,-0.012 -0.022,-0.028 -0.038,-0.038l-8.958,-5.92a0.5,0.5 0,0 0,-0.261 -0.083l-25.205,-0.746c-0.011,0 -0.021,0.005 -0.032,0.006a0.488,0.488 0,0 0,-0.115 0.021,17.081 17.081,0 0,0 -0.113,0.036l-8.846,4.957c-0.01,0.006 -0.013,0.018 -0.022,0.024a0.494,0.494 0,0 0,-0.189 0.208,0.5 0.5,0 0,0 -0.042,0.2l-0.08,7.691a0.5,0.5 0,0 0,0.495 0.5H127a0.5,0.5 0,0 0,0.5 -0.5l0.075,-7.174 14.4,0.657H142a0.5,0.5 0,0 0,0.022 -1l-13.17,-0.6 7.2,-4.033 24.924,0.737 7.375,4.874 -11.173,-0.325a0.514,0.514 0,0 0,-0.515 0.485,0.5 0.5,0 0,0 0.485,0.515l12.929,0.376h0.015a0.49,0.49 0,0 0,0.214 -0.053,0.481 0.481,0 0,0 0.05,-0.033 0.488,0.488 0,0 0,0.124 -0.113c0.008,-0.01 0.021,-0.015 0.029,-0.026s0.008,-0.024 0.014,-0.035a0.621,0.621 0,0 0,0.06 -0.187c0,-0.013 0.008,-0.024 0.009,-0.038a0.475,0.475 0,0 0,-0.013 -0.045z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M169.876,169.851a0.5,0.5 0,0 0,-0.5 0.5v0.815a0.5,0.5 0,1 0,1 0v-0.815a0.5,0.5 0,0 0,-0.5 -0.5z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="23.78"
+ android:startX="-18.672"
+ android:endY="322.256"
+ android:endX="279.805"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF00C8D7"/>
+ <item android:offset="1" android:color="#FF0A84FF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M161.635,234.443c-1.483,0.6 -5.74,0.859 -12.372,0.777l1.737,1.74a0.5,0.5 0,0 1,-0.315 0.853c-0.04,0 -1.287,0.093 -3.3,0.093 -4.39,0 -12.412,-0.436 -19.426,-3.137l-6.338,4.144 45.4,0.92z"
+ android:fillColor="#fff"/>
+ <path
+ android:pathData="M114.627,225.078c1.019,1.253 4.62,5.057 13.061,8.513 8.37,3.426 18.489,3.393 21.81,3.279l-5.512,-5.512c-1.421,0.4 -7.462,1.769 -12.552,-2.125 -3.5,-2.678 -4.888,-7.92 -5.281,-9.77z"
+ android:fillColor="#fff"/>
+ <path
+ android:pathData="M190.3,220.7c1.248,1.357 5.686,5.649 14.414,8.753 7.842,2.788 17.2,3.754 20.433,4.018l-2.385,-2.862c-1.471,-0.224 -10.457,-1.726 -15.683,-5.722a49.522,49.522 0,0 1,-8.117 -8.669z"
+ android:fillColor="#fff"/>
+ <path
+ android:pathData="M215.419,205.661l-4.57,6.469c3.292,-0.446 13.271,-2.132 20.939,-6.928 7.762,-4.854 10.646,-9.2 11.432,-10.6l-12.474,-3.629a24.19,24.19 0,0 1,-4.746 7.985,24.936 24.936,0 0,1 -10.581,6.703z"
+ android:fillColor="#fff"/>
+ <path
+ android:pathData="M152.6,194.682a14.244,14.244 0,0 1,-3.155 5.187,25.007 25.007,0 0,1 -10.718,6.586L135.7,213.7c3.117,-1.151 12.491,-4.964 18.936,-11.311a40.684,40.684 0,0 0,6.307 -7.457z"
+ android:fillColor="#fff"/>
+ <path
+ android:pathData="M101.386,250.148l45.406,0.178 -6.872,-4.733c-18.61,0.709 -30.359,0.451 -33.017,-0.7z"
+ android:fillColor="#fff"/>
+ <path
+ android:pathData="M182.553,227.638c-0.948,1.463 -3.872,5.2 -10.477,8.174a38.538,38.538 0,0 1,-5.678 1.98L168.61,240a0.5,0.5 0,0 1,-0.354 0.854h-0.01l-14.223,-0.288 7.535,11.841a63.477,63.477 0,0 0,14.307 -0.831,35.459 35.459,0 0,0 18.979,-10.112z"
+ android:fillColor="#fff"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_favorite.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_favorite.xml
new file mode 100644
index 0000000000..148fe6fe06
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_favorite.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:pathData="M12,2C12.3601,2 12.6925,2.1937 12.87,2.507L15.6377,7.3912L21.1738,8.3682C21.5166,8.4287 21.8033,8.6631 21.9307,8.9871C22.058,9.3111 22.0077,9.678 21.7979,9.9558L18.0539,14.9111L18.9878,20.8445C19.0467,21.2186 18.8892,21.5938 18.581,21.8139C18.2728,22.0339 17.8668,22.061 17.5321,21.8838L12,18.955L6.4679,21.8838C6.1332,22.061 5.7271,22.0339 5.419,21.8139C5.1108,21.5938 4.9533,21.2186 5.0122,20.8445L5.9461,14.9111L2.2021,9.9558C1.9923,9.678 1.942,9.3111 2.0693,8.9871C2.1967,8.6631 2.4834,8.4287 2.8262,8.3682L8.3623,7.3912L11.13,2.507C11.3075,2.1937 11.6399,2 12,2ZM12,5.0283L9.87,8.7871C9.7229,9.0467 9.4676,9.227 9.1738,9.2789L4.7828,10.0538L7.7979,14.0442C7.9615,14.2608 8.03,14.5345 7.9878,14.8026L7.2986,19.181L11.5321,16.9397C11.8248,16.7848 12.1752,16.7848 12.4679,16.9397L16.7014,19.181L16.0122,14.8026C15.97,14.5345 16.0385,14.2608 16.2021,14.0442L19.2171,10.0538L14.8262,9.2789C14.5324,9.227 14.2771,9.0467 14.13,8.7871L12,5.0283Z"
+ android:fillColor="@color/primaryText"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_fingerprint.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_fingerprint.xml
new file mode 100644
index 0000000000..42df9f0ad7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_fingerprint.xml
@@ -0,0 +1,14 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="21dp"
+ android:height="20dp"
+ android:viewportWidth="21"
+ android:viewportHeight="20">
+ <path
+ android:pathData="M15.171,18.905C15.309,19.012 15.472,19.065 15.634,19.065C15.857,19.065 16.077,18.967 16.224,18.779C22.187,11.194 20.62,6.279 19.155,4.025C17.121,0.892 12.879,-0.683 9.073,0.282C5.405,1.21 3.014,4.251 2.677,8.417C2.644,8.83 2.952,9.192 3.365,9.226C3.765,9.238 4.14,8.951 4.174,8.538C4.46,4.989 6.38,2.511 9.442,1.736C12.644,0.92 16.202,2.232 17.898,4.842C19.144,6.76 20.431,11.001 15.045,17.851C14.789,18.177 14.846,18.649 15.171,18.905ZM7.66,19.722C7.33,19.722 7.028,19.503 6.936,19.17C6.827,18.771 7.062,18.358 7.461,18.248C14.876,16.217 15.19,8.71 15.2,8.392C15.454,6.774 14.228,5.308 12.478,5.027C10.739,4.75 9.104,5.753 8.86,7.274L8.589,8.789C8.203,10.944 6.334,12.508 4.145,12.508H1.25C0.836,12.508 0.5,12.172 0.5,11.758C0.5,11.344 0.836,11.008 1.25,11.008H4.146C5.608,11.008 6.856,9.964 7.114,8.526L7.383,7.024C7.757,4.701 10.149,3.129 12.718,3.547C15.284,3.959 17.068,6.196 16.692,8.533C16.699,8.533 16.357,17.368 7.859,19.696C7.792,19.713 7.726,19.722 7.66,19.722ZM5.188,16H1.25C0.836,16 0.5,15.664 0.5,15.25C0.5,14.836 0.836,14.5 1.25,14.5H5.188C8.58,14.5 11.338,11.74 11.338,8.349V7.722C11.338,7.308 11.674,6.972 12.088,6.972C12.502,6.972 12.838,7.308 12.838,7.722V8.349C12.839,12.567 9.407,16 5.188,16Z"
+ android:fillColor="#FBFBFE"
+ android:fillType="evenOdd"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_firefox.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_firefox.xml
new file mode 100644
index 0000000000..920b76621d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_firefox.xml
@@ -0,0 +1,13 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="32dp"
+ android:height="32dp"
+ android:viewportWidth="32"
+ android:viewportHeight="32">
+ <path
+ android:pathData="M31.359,14.615h0c-0.044,-0.289 -0.088,-0.459 -0.088,-0.459s-0.113,0.131 -0.3,0.378A10.77,10.77 0,0 0,30.6 12.5a13.846,13.846 0,0 0,-0.937 -2.411,10.048 10.048,0 0,0 -0.856,-1.468q-0.176,-0.263 -0.359,-0.51c-0.57,-0.931 -1.224,-1.5 -1.981,-2.576a7.806,7.806 0,0 1,-0.991 -2.685A10.844,10.844 0,0 0,25 4.607c-0.777,-0.784 -1.453,-1.341 -1.861,-1.721C21.126,1.006 21.36,0.031 21.36,0.031h0S17.6,4.228 19.229,8.6a8.4,8.4 0,0 0,2.8 3.733c1.576,1.3 3.273,2.323 4.168,4.937a8.377,8.377 0,0 0,-3.144 -3.317,7.573 7.573,0 0,1 0.6,3 7.124,7.124 0,0 1,-8.711 6.94,6.561 6.561,0 0,1 -1.765,-0.6 7.183,7.183 0,0 1,-2.115 -1.955l-0.01,-0.017 0.126,0.046a6.5,6.5 0,0 0,0.9 0.241,5.628 5.628,0 0,0 3.583,-0.423c1.126,-0.625 1.808,-1.088 2.361,-0.905l0.01,0c0.54,0.172 0.966,-0.352 0.58,-0.9a2.94,2.94 0,0 0,-2.848 -1.112c-1.127,0.164 -2.16,0.965 -3.637,0.189a3.129,3.129 0,0 1,-0.277 -0.163c-0.1,-0.057 0.317,0.087 0.22,0.022a7.33,7.33 0,0 1,-0.928 -0.554c-0.022,-0.018 0.223,0.07 0.2,0.052a3.581,3.581 0,0 1,-0.968 -0.979,1.741 1.741,0 0,1 -0.066,-1.554 1.371,1.371 0,0 1,0.6 -0.564c0.191,0.094 0.309,0.165 0.309,0.165s-0.087,-0.16 -0.134,-0.244c0.017,-0.006 0.032,0 0.049,-0.011 0.167,0.072 0.537,0.26 0.732,0.375a1.016,1.016 0,0 1,0.335 0.3s0.067,-0.033 0.017,-0.173a0.9,0.9 0,0 0,-0.346 -0.424l0.016,0a2.94,2.94 0,0 1,0.426 0.265,2.079 2.079,0 0,0 0.17,-0.9 1.178,1.178 0,0 0,-0.069 -0.5c-0.053,-0.1 0.03,-0.14 0.123,-0.035a0.976,0.976 0,0 0,-0.079 -0.238v-0.008h0s0.053,-0.069 0.077,-0.094a1.43,1.43 0,0 1,0.216 -0.176,9.973 9.973,0 0,1 1.465,-0.747c0.414,-0.181 0.757,-0.319 0.827,-0.359a2.3,2.3 0,0 0,0.293 -0.225,1.968 1.968,0 0,0 0.66,-1.14 1.6,1.6 0,0 0,0.017 -0.178v-0.05l0,-0.03v0l0,-0.012v0l0,-0.013h0c-0.06,-0.225 -0.448,-0.394 -2.476,-0.584a1.773,1.773 0,0 1,-1.45 -1.36l0,0.009c-0.029,0.074 -0.055,0.149 -0.081,0.225 0.026,-0.075 0.052,-0.15 0.081,-0.225l0,-0.016a5.138,5.138 0,0 1,1.986 -2.466c0.052,-0.042 -0.208,0.011 -0.156,-0.032a5.156,5.156 0,0 1,0.53 -0.224c0.091,-0.038 -0.39,-0.222 -0.815,-0.177a2.2,2.2 0,0 0,-0.756 0.178c0.1,-0.086 0.4,-0.2 0.329,-0.2a4.865,4.865 0,0 0,-1.542 0.583,0.314 0.314,0 0,1 0.03,-0.14 2.4,2.4 0,0 0,-0.964 0.744,1.275 1.275,0 0,0 0.01,-0.174 2.876,2.876 0,0 0,-0.473 0.444l-0.009,0.007a6.285,6.285 0,0 0,-3.517 -0.3l-0.01,-0.009 0.012,0a2.943,2.943 0,0 1,-0.625 -0.7L6.1,5.852 6.081,5.83c-0.077,-0.114 -0.156,-0.243 -0.237,-0.387 -0.058,-0.1 -0.117,-0.217 -0.176,-0.338 0,-0.008 -0.009,-0.011 -0.013,-0.012 -0.024,0 -0.041,0.111 -0.061,0.082l0,-0.006a4.308,4.308 0,0 1,-0.283 -1.687l-0.016,0.008a1.884,1.884 0,0 0,-0.714 0.934c-0.061,0.137 -0.1,0.212 -0.14,0.287 0,0.006 0,-0.01 0,-0.035 0.009,-0.069 0.039,-0.211 0.032,-0.2s-0.012,0.019 -0.019,0.029a1.733,1.733 0,0 0,-0.251 0.372,2.355 2.355,0 0,0 -0.15,0.382c-0.006,0.021 0,-0.018 0,-0.064s0.009,-0.128 0,-0.111l-0.022,0.043a9.5,9.5 0,0 0,-0.8 3.035A3.022,3.022 0,0 0,3.2 8.7v0.016a6.628,6.628 0,0 0,-0.817 1.1,15.606 15.606,0 0,0 -1.727,4.23 10.351,10.351 0,0 1,0.925 -1.621,15 15,0 0,0 -1.045,5.5 14.233,14.233 0,0 1,0.45 -1.629A13.807,13.807 0,0 0,2.234 22.76a15.037,15.037 0,0 0,5.951 6.748h0a13.016,13.016 0,0 0,3.468 1.662c0.162,0.059 0.326,0.117 0.494,0.173 -0.053,-0.021 -0.1,-0.044 -0.153,-0.067a15.7,15.7 0,0 0,4.5 0.662c5.394,0 7.175,-2.054 7.339,-2.259h0a2.73,2.73 0,0 0,0.637 -0.856h0q0.156,-0.064 0.315,-0.137l0.067,-0.03 0.121,-0.057a11.312,11.312 0,0 0,2.277 -1.426,5.5 5.5,0 0,0 2.123,-3.1h0a1.938,1.938 0,0 0,0.029 -1.428q0.083,-0.131 0.171,-0.28a12.706,12.706 0,0 0,1.907 -6.181v-0.006c0,-0.059 0,-0.118 0,-0.177A7.731,7.731 0,0 0,31.359 14.615Z"
+ android:fillColor="#f9f9fa"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_info.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_info.xml
new file mode 100644
index 0000000000..33a86afb6a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_info.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="14dp"
+ android:height="14dp"
+ android:viewportHeight="24.0"
+ android:viewportWidth="24.0">
+ <path
+ android:fillColor="@color/primaryText"
+ android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z" />
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_internet.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_internet.xml
new file mode 100644
index 0000000000..f2d89b25b0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_internet.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:pathData="m4.0619,11c0.3733,-2.994 2.4011,-5.4742 5.1396,-6.4969 -0.0499,0.1367 -0.1001,0.2803 -0.1502,0.4307 -0.4736,1.4208 -0.9369,3.4437 -1.0331,6.0662zM10.9487,5.5662c0.2339,-0.7017 0.4652,-1.2202 0.6327,-1.5554 0.1386,-0.0071 0.2782,-0.0108 0.4186,-0.0108 0.1404,0 0.28,0.0036 0.4186,0.0108 0.1676,0.3353 0.3988,0.8537 0.6327,1.5554 0.4121,1.2364 0.8343,3.0468 0.9291,5.4338h-3.9608c0.0947,-2.387 0.5169,-4.1974 0.9291,-5.4338zM13.9804,13c-0.0948,2.387 -0.517,4.1974 -0.9291,5.4338 -0.2339,0.7017 -0.4651,1.2202 -0.6327,1.5554 -0.1386,0.0072 -0.2782,0.0108 -0.4186,0.0108 -0.1404,0 -0.28,-0.0036 -0.4186,-0.0108 -0.1676,-0.3352 -0.3988,-0.8537 -0.6327,-1.5554 -0.4121,-1.2364 -0.8343,-3.0468 -0.9291,-5.4338zM14.7985,19.4969c0.0499,-0.1368 0.1001,-0.2803 0.1502,-0.4307 0.4736,-1.4208 0.9369,-3.4437 1.0331,-6.0662h3.9563c-0.3733,2.994 -2.4011,5.4742 -5.1396,6.4969zM15.9818,11c-0.0962,-2.6225 -0.5595,-4.6455 -1.0331,-6.0662 -0.0501,-0.1504 -0.1003,-0.2939 -0.1502,-0.4307 2.7385,1.0227 4.7663,3.5029 5.1396,6.4969zM4.0619,13h3.9563c0.0962,2.6225 0.5595,4.6454 1.0331,6.0662 0.0269,0.0807 0.0538,0.1593 0.0807,0.236 0.0232,0.0664 0.0464,0.1313 0.0696,0.1947 -2.7385,-1.0227 -4.7663,-3.5029 -5.1396,-6.4969zM12,2c-5.5229,0 -10,4.4771 -10,10 0,5.5229 4.4771,10 10,10 5.5229,0 10,-4.4771 10,-10 0,-5.5229 -4.4771,-10 -10,-10z"
+ android:fillColor="@color/primaryText"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_language.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_language.xml
new file mode 100644
index 0000000000..d24cc9d3a3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_language.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:pathData="m9.8944,3.5528c-0.247,-0.494 -0.8477,-0.6942 -1.3416,-0.4472 -0.494,0.247 -0.6942,0.8477 -0.4472,1.3416l0.2764,0.5528h-5.382c-0.5523,0 -1,0.4477 -1,1 0,0.5523 0.4477,1 1,1h6.9797c0.0141,0.0003 0.0281,0.0003 0.0423,0h1.6451c-0.7152,2.1364 -1.7998,3.9404 -2.9531,5.4106 -0.6679,-0.6568 -1.3242,-1.5526 -1.7777,-2.7617 -0.1939,-0.5171 -0.7703,-0.7791 -1.2874,-0.5852 -0.5171,0.1939 -0.7791,0.7703 -0.5852,1.2874 0.5893,1.5715 1.4593,2.7316 2.3389,3.5735 -0.1204,0.1263 -0.2404,0.2491 -0.3596,0.3683 -0.9566,0.9566 -1.8526,1.6731 -2.5061,2.1484 -0.3264,0.2373 -0.5911,0.4137 -0.7712,0.5289 -0.09,0.0576 -0.1588,0.0999 -0.2034,0.1269l-0.0371,0.0221 -0.0114,0.0068 -0.0099,0.0058 -0.0012,0.0006c-0.4786,0.2744 -0.6447,0.8846 -0.3709,1.3637 0.274,0.4796 0.8849,0.6462 1.3644,0.3721l0.06,-0.0351 -0.0584,0.0343 0.0022,-0.0013 0.0063,-0.0037 0.0202,-0.0118c0.0168,-0.0098 0.0695,-0.0414 0.0695,-0.0414 0.0589,-0.0356 0.1425,-0.087 0.2478,-0.1544 0.2105,-0.1348 0.5083,-0.3334 0.8694,-0.5961 0.7216,-0.5248 1.7005,-1.3082 2.7439,-2.3516 0.1773,-0.1773 0.3567,-0.3624 0.5373,-0.5552 0.3924,0.2405 0.7462,0.4174 1.0292,0.5432 0.2008,0.0892 0.367,0.1532 0.4874,0.1961 0.0602,0.0214 0.1091,0.0377 0.1453,0.0492 0.0181,0.0058 0.033,0.0104 0.0446,0.0139l0.0148,0.0044 0.0055,0.0016 0.0023,0.0007 0.0019,0.0005c0.531,0.1518 1.0845,-0.1557 1.2362,-0.6868 0.1514,-0.5299 -0.1537,-1.082 -0.6827,-1.235l-0.0025,-0.0007 -0.0119,-0.0038c-0.0159,-0.0051 -0.0436,-0.0142 -0.082,-0.0279 -0.0769,-0.0274 -0.1958,-0.0728 -0.3466,-0.1399 -0.147,-0.0653 -0.3232,-0.1507 -0.5194,-0.2593 1.3691,-1.7529 2.6634,-3.955 3.4472,-6.6081h2.2364c0.5523,0 1,-0.4477 1,-1 0,-0.5523 -0.4477,-1 -1,-1h-2.9786c-0.0148,-0.0003 -0.0296,-0.0003 -0.0443,0h-2.3591zM18.6261,16h-3.2522l1.6261,-4.4025zM19.3649,18 L20.2558,20.4119c0.1722,0.4662 0.6898,0.7046 1.156,0.5324 0.4663,-0.1723 0.7047,-0.6898 0.5324,-1.1561l-3.6309,-9.8302c-0.4506,-1.2199 -2.176,-1.2199 -2.6266,0l-3.6309,9.8302c-0.1723,0.4663 0.0661,0.9838 0.5324,1.1561 0.4662,0.1722 0.9838,-0.0662 1.156,-0.5324l0.8909,-2.4119z"
+ android:fillColor="@color/primaryText"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_launcher_background.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000000..bfb274324c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,13 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <path
+ android:pathData="M0,0h108v108h-108z"
+ android:fillColor="#1d1133"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_launcher_foreground.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_launcher_foreground.xml
new file mode 100644
index 0000000000..496cfae60f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_launcher_foreground.xml
@@ -0,0 +1,213 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <path
+ android:pathData="M77.898,44.179c-1.132,-2.722 -3.423,-5.66 -5.223,-6.589a27.016,27.016 0,0 1,2.636 7.901l0.005,0.043c-2.944,-7.338 -7.936,-10.297 -12.013,-16.739 -0.206,-0.326 -0.412,-0.652 -0.613,-0.997 -0.115,-0.196 -0.206,-0.374 -0.287,-0.539a4.741,4.741 0,0 1,-0.388 -1.029,0.068 0.068,0 0,0 -0.059,-0.07 0.088,0.088 0,0 0,-0.049 0l-0.013,0.007 -0.019,0.01 0.011,-0.015a18.999,18.999 0,0 0,-8.963 14.461,13.027 13.027,0 0,0 -7.165,2.761 7.74,7.74 0,0 0,-0.674 -0.509,12.061 12.061,0 0,1 -0.073,-6.363 19.285,19.285 0,0 0,-6.267 4.843l-0.012,0c-1.032,-1.307 -0.959,-5.62 -0.9,-6.52a4.68,4.68 0,0 0,-0.869 0.461,18.97 18.97,0 0,0 -2.544,2.18 22.8,22.8 0,0 0,-2.431 2.916l-0.001,0.004 0.001,-0.004a21.974,21.974 0,0 0,-3.493 7.887c-0.012,0.056 -0.023,0.115 -0.035,0.172 -0.049,0.229 -0.225,1.376 -0.256,1.626 -0.002,0.019 -0.004,0.038 -0.006,0.057a24.809,24.809 0,0 0,-0.422 3.592c-0,0.044 -0.003,0.088 -0.003,0.133A26.037,26.037 0,0 0,79.469 58.264c0.044,-0.333 0.079,-0.668 0.118,-1.004A26.762,26.762 0,0 0,77.898 44.179ZM47.89,64.556c0.122,0.058 0.236,0.122 0.361,0.177l0.018,0.011C48.143,64.684 48.017,64.621 47.89,64.556ZM53.855,48.855 L53.855,48.855 53.855,48.855ZM75.319,45.541l-0.003,-0.025 0.004,0.028Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="39.95368"
+ android:startX="77.14962"
+ android:endY="68.32973"
+ android:endX="32.10263"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.13045" android:color="#FF9356F4"/>
+ <item android:offset="0.28673" android:color="#FF8951E5"/>
+ <item android:offset="0.45625" android:color="#FF7A49CD"/>
+ <item android:offset="0.63512" android:color="#FF643DAB"/>
+ <item android:offset="0.81932" android:color="#FF492E81"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M77.898,44.179c-1.132,-2.722 -3.423,-5.66 -5.223,-6.589a27.016,27.016 0,0 1,2.636 7.901c-0.001,-0.006 0.001,0.005 0.004,0.024l0.004,0.028a23.567,23.567 0,0 1,-0.81 17.569C71.526,69.515 64.303,76.077 52.997,75.757 40.782,75.411 30.021,66.348 28.012,54.477a11.231,11.231 0,0 1,0.184 -4.342,19.397 19.397,0 0,0 -0.422,3.592c-0,0.044 -0.003,0.088 -0.003,0.133A26.037,26.037 0,0 0,79.469 58.264c0.044,-0.333 0.079,-0.668 0.118,-1.004A26.762,26.762 0,0 0,77.898 44.179Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="54.269985"
+ android:centerX="72.45744"
+ android:centerY="32.075768"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.65262" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M77.898,44.179c-1.132,-2.722 -3.423,-5.66 -5.223,-6.589a27.016,27.016 0,0 1,2.636 7.901c-0.001,-0.006 0.001,0.005 0.004,0.024l0.004,0.028a23.567,23.567 0,0 1,-0.81 17.569C71.526,69.515 64.303,76.077 52.997,75.757 40.782,75.411 30.021,66.348 28.012,54.477a11.231,11.231 0,0 1,0.184 -4.342,19.397 19.397,0 0,0 -0.422,3.592c-0,0.044 -0.003,0.088 -0.003,0.133A26.037,26.037 0,0 0,79.469 58.264c0.044,-0.333 0.079,-0.668 0.118,-1.004A26.762,26.762 0,0 0,77.898 44.179Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="54.275925"
+ android:centerX="52.584763"
+ android:centerY="54.255596"
+ android:type="radial">
+ <item android:offset="0.2545" android:color="#00AB71FF"/>
+ <item android:offset="0.42052" android:color="#2D9462E0"/>
+ <item android:offset="0.73373" android:color="#A4573B8D"/>
+ <item android:offset="0.9409" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M65.246,47.239c0.057,0.04 0.109,0.08 0.162,0.119a14.158,14.158 0,0 0,-2.417 -3.154c-8.093,-8.092 -2.122,-17.546 -1.115,-18.026l0.011,-0.015a18.999,18.999 0,0 0,-8.963 14.461c0.303,-0.021 0.606,-0.047 0.914,-0.047A13.14,13.14 0,0 1,65.246 47.239Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="39.238106"
+ android:centerX="59.128986"
+ android:centerY="19.753014"
+ android:type="radial">
+ <item android:offset="0.17512" android:color="#FF9658F9"/>
+ <item android:offset="0.32716" android:color="#FF7E48EA"/>
+ <item android:offset="0.37483" android:color="#FF7542E5"/>
+ <item android:offset="0.40682" android:color="#FF6A3DD0"/>
+ <item android:offset="0.485" android:color="#FF5332A2"/>
+ <item android:offset="0.55989" android:color="#FF41297E"/>
+ <item android:offset="0.62964" android:color="#FF342264"/>
+ <item android:offset="0.69229" android:color="#FF2C1E54"/>
+ <item android:offset="0.74179" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M53.855,48.855l0,0c-0.043,0.648 -2.331,2.881 -3.131,2.881 -7.403,0 -8.605,4.479 -8.605,4.479a10.994,10.994 0,0 0,6.133 8.521c0.145,0.075 0.292,0.143 0.439,0.21 0.255,0.113 0.51,0.218 0.765,0.313a11.562,11.562 0,0 0,3.388 0.653c12.976,0.609 15.49,-15.515 6.126,-20.197a8.988,8.988 0,0 1,6.278 1.524,13.139 13.139,0 0,0 -11.408,-6.662c-0.309,0 -0.611,0.025 -0.914,0.047A13.026,13.026 0,0 0,45.758 43.385c0.397,0.336 0.845,0.785 1.789,1.715C49.314,46.841 53.845,48.643 53.855,48.855Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="25.843267"
+ android:centerX="46.301777"
+ android:centerY="65.925316"
+ android:type="radial">
+ <item android:offset="0.06574" android:color="#FF9358FC"/>
+ <item android:offset="0.13086" android:color="#FF9857F8"/>
+ <item android:offset="0.2098" android:color="#FFA755EB"/>
+ <item android:offset="0.29591" android:color="#FFBF52D7"/>
+ <item android:offset="0.38652" android:color="#FFE14EBA"/>
+ <item android:offset="0.41788" android:color="#FFEF4CAF"/>
+ <item android:offset="0.74011" android:color="#FFFF7583"/>
+ <item android:offset="0.97014" android:color="#FFFFB753"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M53.855,48.855l0,0c-0.043,0.648 -2.331,2.881 -3.131,2.881 -7.403,0 -8.605,4.479 -8.605,4.479a10.994,10.994 0,0 0,6.133 8.521c0.145,0.075 0.292,0.143 0.439,0.21 0.255,0.113 0.51,0.218 0.765,0.313a11.562,11.562 0,0 0,3.388 0.653c12.976,0.609 15.49,-15.515 6.126,-20.197a8.988,8.988 0,0 1,6.278 1.524,13.139 13.139,0 0,0 -11.408,-6.662c-0.309,0 -0.611,0.025 -0.914,0.047A13.026,13.026 0,0 0,45.758 43.385c0.397,0.336 0.845,0.785 1.789,1.715C49.314,46.841 53.845,48.643 53.855,48.855Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="13.701733"
+ android:centerX="53.346634"
+ android:centerY="47.94406"
+ android:type="radial">
+ <item android:offset="0.22277" android:color="#4CFFB653"/>
+ <item android:offset="0.34343" android:color="#7FFF807A"/>
+ <item android:offset="0.44004" android:color="#7BFF7781"/>
+ <item android:offset="0.56837" android:color="#6EFF5C94"/>
+ <item android:offset="0.63555" android:color="#66FF4AA2"/>
+ <item android:offset="0.86481" android:color="#4C9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M44.544,42.519c0.211,0.137 0.385,0.252 0.54,0.357a12.061,12.061 0,0 1,-0.073 -6.363,19.285 19.285,0 0,0 -6.267,4.843C38.869,41.353 42.645,41.285 44.544,42.519Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="18.591627"
+ android:centerX="51.899647"
+ android:centerY="29.848495"
+ android:type="radial">
+ <item android:offset="0.02639" android:color="#FF9658F9"/>
+ <item android:offset="0.61886" android:color="#FF7542E5"/>
+ <item android:offset="0.71748" android:color="#FF6339C2"/>
+ <item android:offset="0.93471" android:color="#FF37246B"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M28.012,54.477c2.009,11.871 12.77,20.935 24.985,21.281 11.306,0.32 18.529,-6.242 21.513,-12.644a23.567,23.567 0,0 0,0.81 -17.569l-0.001,-0.003 -0.003,-0.025c-0.003,-0.019 -0.004,-0.031 -0.004,-0.024l0.005,0.043c0.923,6.03 -2.144,11.872 -6.939,15.822l-0.014,0.034c-9.343,7.608 -18.284,4.59 -20.094,3.355 -0.126,-0.061 -0.253,-0.124 -0.379,-0.189 -5.447,-2.603 -7.698,-7.566 -7.215,-11.822a6.687,6.687 0,0 1,-6.168 -3.879,9.821 9.821,0 0,1 9.572,-0.384 12.964,12.964 0,0 0,9.775 0.384c-0.01,-0.212 -4.541,-2.014 -6.308,-3.754 -0.944,-0.93 -1.392,-1.378 -1.789,-1.715a7.74,7.74 0,0 0,-0.674 -0.509c-0.155,-0.106 -0.329,-0.22 -0.54,-0.357 -1.899,-1.234 -5.675,-1.166 -5.8,-1.163l-0.012,0c-1.032,-1.307 -0.959,-5.62 -0.9,-6.52a4.68,4.68 0,0 0,-0.869 0.461,18.97 18.97,0 0,0 -2.544,2.18 22.8,22.8 0,0 0,-2.431 2.916l-0.001,0.004 0.001,-0.004a21.974,21.974 0,0 0,-3.493 7.887C28.481,48.337 27.556,52.38 28.012,54.477Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="76.151306"
+ android:centerX="66.49819"
+ android:centerY="18.1404"
+ android:type="radial">
+ <item android:offset="0.20184" android:color="#FFAB71FF"/>
+ <item android:offset="0.28641" android:color="#FFA46BFC"/>
+ <item android:offset="0.41128" android:color="#FF9059F2"/>
+ <item android:offset="0.53733" android:color="#FF7542E5"/>
+ <item android:offset="0.63798" android:color="#FF6239BF"/>
+ <item android:offset="0.9427" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M62.991,44.204a14.158,14.158 0,0 1,2.417 3.154c0.143,0.108 0.277,0.215 0.391,0.32C71.701,53.116 68.609,60.808 68.378,61.356c4.795,-3.95 7.862,-9.792 6.939,-15.822 -2.944,-7.338 -7.936,-10.297 -12.013,-16.739 -0.206,-0.326 -0.412,-0.652 -0.613,-0.997 -0.115,-0.196 -0.206,-0.374 -0.287,-0.539a4.741,4.741 0,0 1,-0.388 -1.029,0.068 0.068,0 0,0 -0.059,-0.07 0.088,0.088 0,0 0,-0.049 0l-0.013,0.007 -0.019,0.01C60.869,26.658 54.898,36.112 62.991,44.204Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="58.099022"
+ android:centerX="59.052883"
+ android:centerY="26.911263"
+ android:type="radial">
+ <item android:offset="0.08834" android:color="#FF9658F9"/>
+ <item android:offset="0.13821" android:color="#FF8C51F3"/>
+ <item android:offset="0.26179" android:color="#FF7542E5"/>
+ <item android:offset="0.291" android:color="#FF6E3ED6"/>
+ <item android:offset="0.39747" android:color="#FF5533A6"/>
+ <item android:offset="0.49859" android:color="#FF422980"/>
+ <item android:offset="0.59167" android:color="#FF342365"/>
+ <item android:offset="0.67386" android:color="#FF2C1E55"/>
+ <item android:offset="0.7365" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M65.799,47.678c-0.114,-0.105 -0.248,-0.212 -0.391,-0.32 -0.053,-0.04 -0.105,-0.08 -0.162,-0.119a8.989,8.989 0,0 0,-6.278 -1.524C68.333,50.396 65.819,66.518 52.843,65.909a11.563,11.563 0,0 1,-3.388 -0.653c-0.255,-0.095 -0.51,-0.2 -0.765,-0.313 -0.147,-0.067 -0.294,-0.135 -0.439,-0.21l0.018,0.011c1.81,1.235 10.751,4.253 20.094,-3.355l0.014,-0.034C68.609,60.808 71.701,53.116 65.799,47.678Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="49.52185"
+ android:centerX="51.46148"
+ android:centerY="36.733517"
+ android:type="radial">
+ <item android:offset="0.005" android:color="#FF9658F9"/>
+ <item android:offset="0.11881" android:color="#FF9155F6"/>
+ <item android:offset="0.25007" android:color="#FF834CEE"/>
+ <item android:offset="0.34194" android:color="#FF7542E5"/>
+ <item android:offset="0.77822" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M42.119,56.214s1.202,-4.478 8.605,-4.478c0.8,0 3.088,-2.233 3.131,-2.881l-0,0 0,-0a12.964,12.964 0,0 1,-9.775 -0.384,9.821 9.821,0 0,0 -9.572,0.384 6.687,6.687 0,0 0,6.168 3.879c-0.482,4.256 1.768,9.219 7.215,11.822 0.122,0.058 0.236,0.122 0.361,0.177A10.992,10.992 0,0 1,42.119 56.214Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="54.091213"
+ android:centerX="64.53419"
+ android:centerY="39.63183"
+ android:type="radial">
+ <item android:offset="0.18847" android:color="#FF9658F9"/>
+ <item android:offset="0.48577" android:color="#FF834BED"/>
+ <item android:offset="0.66281" android:color="#FF7542E5"/>
+ <item android:offset="0.70445" android:color="#FF6B3DD2"/>
+ <item android:offset="0.78925" android:color="#FF52319F"/>
+ <item android:offset="0.90908" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M77.898,44.179c-1.132,-2.722 -3.423,-5.66 -5.223,-6.589a27.016,27.016 0,0 1,2.636 7.901l0.005,0.043c-2.944,-7.338 -7.936,-10.297 -12.013,-16.739 -0.206,-0.326 -0.412,-0.652 -0.613,-0.997 -0.115,-0.196 -0.206,-0.374 -0.287,-0.539a4.741,4.741 0,0 1,-0.388 -1.029,0.068 0.068,0 0,0 -0.059,-0.07 0.088,0.088 0,0 0,-0.049 0l-0.013,0.007 -0.019,0.01 0.011,-0.015a18.999,18.999 0,0 0,-8.963 14.461c0.303,-0.021 0.606,-0.047 0.914,-0.047a13.14,13.14 0,0 1,11.408 6.661,8.989 8.989,0 0,0 -6.278,-1.524C68.333,50.396 65.819,66.518 52.843,65.909a11.563,11.563 0,0 1,-3.388 -0.653c-0.255,-0.095 -0.51,-0.2 -0.765,-0.313 -0.147,-0.067 -0.294,-0.135 -0.439,-0.21l0.018,0.011c-0.126,-0.061 -0.253,-0.124 -0.379,-0.189 0.122,0.058 0.236,0.122 0.361,0.177a10.992,10.992 0,0 1,-6.133 -8.52s1.202,-4.478 8.605,-4.478c0.8,0 3.088,-2.233 3.131,-2.881l-0,0 0,-0c-0.01,-0.212 -4.541,-2.014 -6.308,-3.754 -0.944,-0.93 -1.392,-1.378 -1.789,-1.715a7.74,7.74 0,0 0,-0.674 -0.509,12.061 12.061,0 0,1 -0.073,-6.363 19.285,19.285 0,0 0,-6.267 4.843l-0.012,0c-1.032,-1.307 -0.959,-5.62 -0.9,-6.52a4.68,4.68 0,0 0,-0.869 0.461,18.97 18.97,0 0,0 -2.544,2.18 22.8,22.8 0,0 0,-2.431 2.916l-0.001,0.004 0.001,-0.004a21.974,21.974 0,0 0,-3.493 7.887c-0.012,0.056 -0.023,0.115 -0.035,0.172 -0.049,0.229 -0.269,1.392 -0.3,1.642 -0.002,0.019 0.002,-0.019 0,0a30.284,30.284 0,0 0,-0.384 3.632c-0,0.044 -0.003,0.088 -0.003,0.133A26.037,26.037 0,0 0,79.469 58.264c0.044,-0.333 0.079,-0.668 0.118,-1.004A26.762,26.762 0,0 0,77.898 44.179ZM75.315,45.516 L75.32,45.544 75.319,45.541Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="34.25737"
+ android:startX="73.93048"
+ android:endY="71.03012"
+ android:endX="37.15773"
+ android:type="linear">
+ <item android:offset="0" android:color="#E59059FF"/>
+ <item android:offset="0.61466" android:color="#00291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_link.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_link.xml
new file mode 100644
index 0000000000..3ff3bf7ef2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_link.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="@color/primaryText"
+ android:pathData="M4.47,7.53,7.515,4.485a0.685 0.685
+,0,0,1,0.969,0l4.2,4.2A2.485,2.485,0,0,0,12.5,5.395l-2.66-2.66a2.494,2.494,0,0,0-3.527,0L2.766,6.279a2.494,2.494,0,0,0,0,3.527l2.66,2.66a2.487,2.487,0,0,0,3.242
+0.232 L4.47,8.5A0.685 0.685
+,0,0,1,4.47,7.53Zm16.8,6.633-2.66-2.66a2.485,2.485,0,0,0-3.293-0.191l4.2,4.2a0.685
+0.685 ,0,0,1,0,0.969L16.47,19.53a0.685 0.685
+,0,0,1-0.969,0l-4.2-4.2a2.487,2.487,0,0,0,0.232,3.242l2.66,2.66a2.494,2.494,0,0,0,3.527,0l3.544-3.544A2.494,2.494,0,0,0,21.266,14.163Z" />
+ <path
+ android:fillColor="@color/primaryText"
+ android:pathData="M16.163,14.718,9.243,7.8A1,1,0,1,0,7.829,9.212l6.92,6.92a1,1,0,0,0,1.414-1.414Z" />
+</vector> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_menu.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_menu.xml
new file mode 100644
index 0000000000..6bc47fb6f5
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_menu.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"
+ android:fillColor="@color/primaryText"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_mozilla.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_mozilla.xml
new file mode 100644
index 0000000000..c0b957a540
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_mozilla.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:pathData="m0,0h24v24h-24zM20.4,15.0353v-4.7647c0,-2.4353 -1.6941,-3.5647 -3.5647,-3.5647 -1.6235,0 -2.7882,0.8471 -3.3529,2.2235 -0.4941,-1.5176 -1.8706,-2.2235 -3.3529,-2.2235 -1.4471,0 -2.5059,0.6706 -3.1412,1.7647v-1.5529h-4.3412v2.2588h1.3765v5.8235h-1.3765v2.2588h6.3529v-2.2588h-1.9765v-3.6c0,-1.4118 0.5647,-2.4353 1.9765,-2.4353 1.1647,0 1.7647,0.6706 1.7647,2.4706v5.8235h4.3412v-2.2588h-1.3765v-3.6c0,-1.4118 0.5647,-2.4353 1.9765,-2.4353 1.1647,0 1.7647,0.6706 1.7647,2.4706v5.8588h4.3412v-2.2588z"
+ android:fillColor="@color/primaryText"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_notification.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_notification.xml
new file mode 100644
index 0000000000..edd79aeb01
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_notification.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="32"
+ android:viewportHeight="32">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M30 10.4a8.5 8.5 0 0 0-3-3.8c0.7 1.4 1.2 3 1.4 4.6-1.7-4.2-4.5-6-6.9-9.6-0.1-0.2-0.6-1-0.7-1.5a10.9 10.9 0 0 0-5.2 7.5c-1 0-2 0.3-3 0.7-0.2 0.1-0.3 0.3-0.2 0.5 0 0.2 0.2 0.3 0.4 0.3 0.3 0 1.2-0.7 3.2-0.8 4 0 6 2.8 6.6 3.9-1-0.8-2.3-1-3.6-1A6.2 6.2 0 0 1 16.1 23c-4.8 0-6.6-3.5-6.9-5.6-0.2-2.1 0.7-2.6 5-2.6 0.8-0.3 1.4-0.9 1.8-1.6 0-0.2-2.6-1.2-3.6-2.2l-1-1-0.4-0.3A6.8 6.8 0 0 1 11 6c-1.4 0.7-2.7 1.6-3.7 2.8-0.6-0.8-0.5-3.2-0.5-3.8-0.2 0.1-5.7 3.2-5.7 11.2a15 15 0 0 0 15 15c7.4 0 14-6 14.9-13.4 0.2-2.1-0.1-5-1-7.4z" />
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_reorder.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_reorder.xml
new file mode 100644
index 0000000000..a96a38b801
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_reorder.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:pathData="M3,15h18v-2L3,13v2zM3,19h18v-2L3,17v2zM3,11h18L21,9L3,9v2zM3,5v2h18L21,5L3,5z"
+ android:fillColor="@color/primaryText"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_shortcut_erase.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_shortcut_erase.xml
new file mode 100644
index 0000000000..9626a66b92
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_shortcut_erase.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item>
+ <shape android:shape="oval">
+ <solid android:color="@color/accentBright" />
+ </shape>
+ </item>
+ <item android:gravity="center">
+ <inset
+ android:drawable="@drawable/mozac_ic_delete_24"
+ android:inset="4dp" />
+ </item>
+</layer-list>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_splash_screen.png b/mobile/android/focus-android/app/src/main/res/drawable/ic_splash_screen.png
new file mode 100644
index 0000000000..a2446f4439
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_splash_screen.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/ic_tab_new.xml b/mobile/android/focus-android/app/src/main/res/drawable/ic_tab_new.xml
new file mode 100644
index 0000000000..b29067c10c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/ic_tab_new.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:pathData="m15,14v-2c0,-0.5523 0.4477,-1 1,-1h1c0.5523,0 1,0.4477 1,1v-4c0,-1.1046 -0.8954,-2 -2,-2h-8c-1.1046,0 -2,0.8954 -2,2v6h-1c-0.5523,0 -1,0.4477 -1,1s0.4477,1 1,1h7v-1c0,-0.5523 0.4477,-1 1,-1zM19.5,15h-2.5v-2.5c0,-0.2761 -0.2239,-0.5 -0.5,-0.5s-0.5,0.2239 -0.5,0.5v2.5h-2.5c-0.2761,0 -0.5,0.2239 -0.5,0.5s0.2239,0.5 0.5,0.5h2.5v2.5c0,0.2761 0.2239,0.5 0.5,0.5s0.5,-0.2239 0.5,-0.5v-2.5h2.5c0.2761,0 0.5,-0.2239 0.5,-0.5s-0.2239,-0.5 -0.5,-0.5z"
+ android:fillColor="@color/primaryText"
+ android:fillAlpha=".8"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/indicator_onboarding.xml b/mobile/android/focus-android/app/src/main/res/drawable/indicator_onboarding.xml
new file mode 100644
index 0000000000..e7b0b8f6f5
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/indicator_onboarding.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:drawable="@drawable/indicator_onboarding_selected"
+ android:state_selected="true" />
+
+ <item
+ android:drawable="@drawable/indicator_onboarding_default" />
+</selector> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/indicator_onboarding_default.xml b/mobile/android/focus-android/app/src/main/res/drawable/indicator_onboarding_default.xml
new file mode 100644
index 0000000000..811e759466
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/indicator_onboarding_default.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item>
+ <shape
+ android:innerRadius="0dp"
+ android:shape="ring"
+ android:thickness="3dp"
+ android:useLevel="false">
+ <solid android:color="@color/onboarding_indicator_default"/>
+ </shape>
+ </item>
+</layer-list>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/indicator_onboarding_selected.xml b/mobile/android/focus-android/app/src/main/res/drawable/indicator_onboarding_selected.xml
new file mode 100644
index 0000000000..b8667ec7c2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/indicator_onboarding_selected.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item>
+ <shape
+ android:innerRadius="0dp"
+ android:shape="ring"
+ android:thickness="3dp"
+ android:useLevel="false">
+ <solid android:color="@color/onboarding_indicator_selected"/>
+ </shape>
+ </item>
+</layer-list> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/menu_item_dark_background.xml b/mobile/android/focus-android/app/src/main/res/drawable/menu_item_dark_background.xml
new file mode 100644
index 0000000000..360b8d77ee
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/menu_item_dark_background.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:drawable="@color/photonInk70"/>
+ <item android:drawable="?attr/selectableItemBackground"/>
+</layer-list> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/mozac_ic_broken_lock.xml b/mobile/android/focus-android/app/src/main/res/drawable/mozac_ic_broken_lock.xml
new file mode 100644
index 0000000000..dc9ec5a9f4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/mozac_ic_broken_lock.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="?attr/primaryText"
+ android:pathData="M7 7.562V11H6.5A2.5 2.5 0 0 0 4 13.5v6A2.5 2.5 0 0 0 6.5 22h11c1.066 0 1.97-0.67 2.329-1.61L18.5 19.061V19.7l-0.8 0.8H6.3l-0.8-0.8v-6.4l0.8-0.8h5.638l-1.5-1.5H8.5V9.062L7 7.562z" />
+ <path
+ android:fillColor="#FF4F5E"
+ android:pathData="M4.78 3.22l17.5 17.5A0.748 0.748 0 0 1 21.749 22a0.748 0.748 0 0 1-0.53-0.22L3.719 4.281A0.75 0.75 0 1 1 4.78 3.22z" />
+ <path
+ android:fillColor="?attr/primaryText"
+ android:pathData="M12 3.5c1.93 0 3.5 1.57 3.5 3.5v4h-0.809l1.5 1.5H17.7l0.8 0.8v1.509l1.5 1.5V13.5a2.5 2.5 0 0 0-2.5-2.5H17V7a5 5 0 0 0-5-5 4.99 4.99 0 0 0-4.127 2.182L8.971 5.28C9.574 4.222 10.698 3.5 12 3.5z" />
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/onboarding_logo.xml b/mobile/android/focus-android/app/src/main/res/drawable/onboarding_logo.xml
new file mode 100644
index 0000000000..1c3ed32928
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/onboarding_logo.xml
@@ -0,0 +1,214 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="60dp"
+ android:height="62dp"
+ android:viewportWidth="60"
+ android:viewportHeight="62">
+ <path
+ android:pathData="M57.8336,20.7447C56.5273,17.6147 53.8834,14.2285 51.807,13.16C53.4969,16.4651 54.4752,19.7801 54.8488,22.2543C54.8488,22.2543 54.8488,22.2713 54.8488,22.3041C51.4519,13.8586 45.6921,10.4525 40.9889,3.0371C40.7508,2.6615 40.514,2.2859 40.2759,1.8889C40.1433,1.6627 40.0377,1.4621 39.945,1.2686C39.7501,0.8923 39.5998,0.4945 39.4973,0.0834C39.4978,0.064 39.491,0.0452 39.4784,0.0305C39.4657,0.0157 39.4481,0.0062 39.4288,0.0038C39.4101,-0.0013 39.3904,-0.0013 39.3718,0.0038L39.3575,0.0123C39.3499,0.0152 39.3428,0.019 39.3361,0.0237L39.3475,0.0066C31.8022,4.4172 29.2424,12.5724 29.0071,16.6529C25.9924,16.8584 23.1099,17.9661 20.736,19.8313C20.4873,19.6219 20.2274,19.4263 19.9573,19.2451C19.2729,16.8552 19.2439,14.3258 19.8732,11.9208C16.7872,13.3222 14.3871,15.5388 12.643,17.4951H12.6487C11.458,15.9913 11.5421,11.0273 11.6091,9.9901C11.5949,9.9261 10.7207,10.4425 10.6109,10.5208C9.5599,11.2694 8.5773,12.1092 7.6746,13.0305C6.6477,14.0695 5.7094,15.1922 4.8696,16.3868C2.9357,19.1178 1.5631,22.2039 0.831,25.4669C0.8167,25.5309 0.8039,25.5992 0.791,25.6646C0.734,25.9278 0.5301,27.2481 0.4944,27.5355C0.4944,27.5569 0.4944,27.5782 0.4944,27.601C0.231,28.9655 0.068,30.3473 0.0067,31.7355C0.0067,31.7868 0.0067,31.8365 0.0067,31.8878C0.0067,48.4373 13.4559,61.8525 30.0453,61.8525C44.902,61.8525 57.2389,51.0921 59.6532,36.9542C59.7046,36.5715 59.7445,36.1859 59.7958,35.7989C60.3791,30.6628 59.7089,25.2606 57.8336,20.7447ZM23.2116,44.2003C23.3542,44.2672 23.484,44.3426 23.628,44.4038L23.648,44.4166C23.5025,44.3468 23.3571,44.2743 23.2116,44.2003ZM54.8602,22.3126V22.2827C54.8596,22.2936 54.8596,22.3045 54.8602,22.3154V22.3126Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="15.8803"
+ android:startX="56.9694"
+ android:endY="48.6526"
+ android:endX="5.06367"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.13" android:color="#FF9356F4"/>
+ <item android:offset="0.29" android:color="#FF8951E5"/>
+ <item android:offset="0.46" android:color="#FF7A49CD"/>
+ <item android:offset="0.64" android:color="#FF643DAB"/>
+ <item android:offset="0.82" android:color="#FF492E81"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M57.8354,20.7449C56.5292,17.6148 53.8853,14.2286 51.8089,13.1602C53.4988,16.4652 54.4771,19.7803 54.8507,22.2544C54.8507,22.2473 54.8507,22.2544 54.8507,22.2829C54.85,22.2938 54.85,22.3047 54.8507,22.3156C57.6843,29.9814 56.1342,37.7753 53.9152,42.5387C50.4727,49.9086 42.1388,57.462 29.1017,57.0935C15.0079,56.6951 2.5926,46.262 0.2752,32.5979C-0.1526,30.4438 0.2752,29.3483 0.4877,27.5997C0.2282,28.9485 0.1298,29.3383 0,31.7343C0,31.7855 0,31.8353 0,31.8865C0,48.436 13.4492,61.8512 30.0386,61.8512C44.8953,61.8512 57.2322,51.0909 59.6465,36.9529C59.6979,36.5702 59.7378,36.1846 59.7892,35.7977C60.381,30.6629 59.7107,25.2607 57.8354,20.7449Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="62.5158"
+ android:centerX="49.5052"
+ android:centerY="9.84744"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.65" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M57.8354,20.7449C56.5292,17.6148 53.8853,14.2286 51.8089,13.1602C53.4988,16.4652 54.4771,19.7803 54.8507,22.2544C54.8507,22.2473 54.8507,22.2544 54.8507,22.2829C54.85,22.2938 54.85,22.3047 54.8507,22.3156C57.6843,29.9814 56.1342,37.7753 53.9152,42.5387C50.4727,49.9086 42.1388,57.462 29.1017,57.0935C15.0079,56.6951 2.5926,46.262 0.2752,32.5979C-0.1526,30.4438 0.2752,29.3483 0.4877,27.5997C0.2282,28.9485 0.1298,29.3383 0,31.7343C0,31.7855 0,31.8353 0,31.8865C0,48.436 13.4492,61.8512 30.0386,61.8512C44.8953,61.8512 57.2322,51.0909 59.6465,36.9529C59.6979,36.5702 59.7378,36.1846 59.7892,35.7977C60.381,30.6629 59.7107,25.2607 57.8354,20.7449Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="62.5677"
+ android:centerX="35.1339"
+ android:centerY="38.3802"
+ android:type="radial">
+ <item android:offset="0.25" android:color="#00AB71FF"/>
+ <item android:offset="0.42" android:color="#2D9462E0"/>
+ <item android:offset="0.73" android:color="#A5573B8D"/>
+ <item android:offset="0.94" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M43.238,24.2655C43.3036,24.311 43.3635,24.3566 43.4248,24.4078C42.6715,23.0709 41.7329,21.8466 40.6368,20.7712C31.299,11.4564 38.1883,0.5681 39.3534,0.0217L39.3648,0.0046C31.8195,4.4152 29.2597,12.5704 29.0244,16.6509C29.3738,16.6267 29.7232,16.5968 30.0797,16.5968C35.7069,16.5983 40.6126,19.6871 43.238,24.2655Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="45.2299"
+ android:centerX="42.6773"
+ android:centerY="-1.29902"
+ android:type="radial">
+ <item android:offset="0.18" android:color="#FF9658F9"/>
+ <item android:offset="0.33" android:color="#FF7E48EA"/>
+ <item android:offset="0.37" android:color="#FF7542E5"/>
+ <item android:offset="0.41" android:color="#FF6A3DD0"/>
+ <item android:offset="0.48" android:color="#FF5332A2"/>
+ <item android:offset="0.56" android:color="#FF41297E"/>
+ <item android:offset="0.63" android:color="#FF342264"/>
+ <item android:offset="0.69" android:color="#FF2C1E54"/>
+ <item android:offset="0.74" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M30.1561,26.1244C30.1076,26.8699 27.468,29.4408 26.5439,29.4408C18.0018,29.4408 16.6156,34.5955 16.6156,34.5955C16.9935,38.9377 20.0225,42.5117 23.6918,44.4039C23.8586,44.4907 24.0283,44.569 24.198,44.6458C24.4918,44.7753 24.7856,44.8962 25.0808,45.0058C26.3382,45.4499 27.6553,45.7032 28.9882,45.757C43.9618,46.4584 46.861,27.8985 36.0557,22.5091C38.8237,22.0282 41.6958,23.1394 43.2987,24.2634C40.6733,19.685 35.7691,16.5947 30.1376,16.5947C29.7811,16.5947 29.4245,16.6246 29.0823,16.6488C26.0676,16.8543 23.1851,17.962 20.8111,19.8272C21.2689,20.2142 21.7851,20.7307 22.8746,21.802C24.9153,23.8053 30.1447,25.8796 30.1561,26.1244Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="29.8176"
+ android:centerX="21.4029"
+ android:centerY="45.757"
+ android:type="radial">
+ <item android:offset="0.07" android:color="#FF9358FC"/>
+ <item android:offset="0.13" android:color="#FF9857F8"/>
+ <item android:offset="0.21" android:color="#FFA755EB"/>
+ <item android:offset="0.3" android:color="#FFBF52D7"/>
+ <item android:offset="0.39" android:color="#FFE14EBA"/>
+ <item android:offset="0.42" android:color="#FFEF4CAF"/>
+ <item android:offset="0.74" android:color="#FFFF7583"/>
+ <item android:offset="0.97" android:color="#FFFFB753"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M30.1561,26.1244C30.1076,26.8699 27.468,29.4408 26.5439,29.4408C18.0018,29.4408 16.6156,34.5955 16.6156,34.5955C16.9935,38.9377 20.0225,42.5117 23.6918,44.4039C23.8586,44.4907 24.0283,44.569 24.198,44.6458C24.4918,44.7753 24.7856,44.8962 25.0808,45.0058C26.3382,45.4499 27.6553,45.7032 28.9882,45.757C43.9618,46.4584 46.861,27.8985 36.0557,22.5091C38.8237,22.0282 41.6958,23.1394 43.2987,24.2634C40.6733,19.685 35.7691,16.5947 30.1376,16.5947C29.7811,16.5947 29.4245,16.6246 29.0823,16.6488C26.0676,16.8543 23.1851,17.962 20.8111,19.8272C21.2689,20.2142 21.7851,20.7307 22.8746,21.802C24.9153,23.8053 30.1447,25.8796 30.1561,26.1244Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="15.7939"
+ android:centerX="28.578"
+ android:centerY="24.4337"
+ android:type="radial">
+ <item android:offset="0.22" android:color="#4CFFB653"/>
+ <item android:offset="0.34" android:color="#7FFF807A"/>
+ <item android:offset="0.44" android:color="#7AFF7781"/>
+ <item android:offset="0.57" android:color="#6DFF5C94"/>
+ <item android:offset="0.64" android:color="#66FF4AA2"/>
+ <item android:offset="0.86" android:color="#4C9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M19.3531,18.8338C19.597,18.9918 19.7981,19.1184 19.9763,19.245C19.2919,16.855 19.2629,14.3256 19.8922,11.9207C16.8062,13.3221 14.4061,15.5387 12.662,17.495C12.8047,17.4993 17.1613,17.4125 19.3531,18.8338Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="21.4341"
+ android:centerX="34.3441"
+ android:centerY="10.3129"
+ android:type="radial">
+ <item android:offset="0.03" android:color="#FF9658F9"/>
+ <item android:offset="0.62" android:color="#FF7542E5"/>
+ <item android:offset="0.72" android:color="#FF6339C2"/>
+ <item android:offset="0.93" android:color="#FF37246B"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M0.2788,32.5978C2.5961,46.2562 15.0115,56.695 29.1052,57.0934C42.1495,57.4619 50.4834,49.9085 53.9188,42.5386C56.1434,37.7752 57.6878,29.9813 54.8543,22.3155V22.2856C54.8543,22.2643 54.8543,22.25 54.8543,22.2572C54.8543,22.2643 54.8543,22.2742 54.8543,22.307C55.9195,29.2486 52.38,35.9654 46.8483,40.5183L46.8312,40.5567C36.0516,49.3138 25.7369,45.8408 23.6477,44.418C23.5051,44.3483 23.3625,44.2758 23.2113,44.2018C16.9252,41.204 14.3298,35.4917 14.886,30.5931C9.5796,30.5931 7.7699,26.1271 7.7699,26.1271C7.7699,26.1271 12.5344,22.7381 18.8133,25.686C24.6303,28.4163 30.0921,26.1285 30.0921,26.1285C30.0807,25.8838 24.8527,23.8094 22.8192,21.8062C21.7296,20.7362 21.2134,20.2198 20.7556,19.8328C20.507,19.6234 20.247,19.4277 19.977,19.2466C19.7987,19.1243 19.5977,18.9934 19.3538,18.8354C17.1634,17.4127 12.8068,17.4938 12.6627,17.4966H12.6513C11.4606,15.9928 11.5447,11.0288 11.6117,9.9916C11.5975,9.9275 10.7233,10.444 10.6135,10.5223C9.5625,11.2708 8.5799,12.1107 7.6772,13.032C6.6503,14.071 5.712,15.1937 4.8721,16.3883C2.9385,19.1189 1.5659,22.2044 0.8335,25.4669C0.815,25.5295 -0.2474,30.1833 0.2788,32.5978Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="87.6977"
+ android:centerX="37.7467"
+ android:centerY="-15.662"
+ android:type="radial">
+ <item android:offset="0.2" android:color="#FFAB71FF"/>
+ <item android:offset="0.29" android:color="#FFA46BFC"/>
+ <item android:offset="0.41" android:color="#FF9059F2"/>
+ <item android:offset="0.54" android:color="#FF7542E5"/>
+ <item android:offset="0.64" android:color="#FF6239BF"/>
+ <item android:offset="0.94" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M40.6388,20.7717C41.7345,21.8454 42.673,23.0677 43.4268,24.4026C43.5922,24.5264 43.7462,24.6502 43.8774,24.7697C50.6883,31.0298 47.1203,39.8851 46.8536,40.5154C52.3853,35.9625 55.9248,29.2443 54.8595,22.3041C51.4627,13.8586 45.7028,10.4525 40.9996,3.0371C40.7615,2.6615 40.5248,2.2859 40.2866,1.8889C40.154,1.6627 40.0484,1.4621 39.9558,1.2686C39.7608,0.8922 39.6105,0.4945 39.508,0.0834C39.5085,0.064 39.5018,0.0452 39.4891,0.0305C39.4765,0.0157 39.4588,0.0062 39.4395,0.0038C39.4208,-0.0013 39.4012,-0.0013 39.3825,0.0038L39.3682,0.0123C39.3607,0.0152 39.3535,0.019 39.3468,0.0237C38.1903,0.5757 31.301,11.4584 40.6388,20.7717Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="66.8279"
+ android:centerX="39.5615"
+ android:centerY="11.2318"
+ android:type="radial">
+ <item android:offset="0.09" android:color="#FF9658F9"/>
+ <item android:offset="0.14" android:color="#FF8C51F3"/>
+ <item android:offset="0.26" android:color="#FF7542E5"/>
+ <item android:offset="0.29" android:color="#FF6E3ED6"/>
+ <item android:offset="0.4" android:color="#FF5533A6"/>
+ <item android:offset="0.5" android:color="#FF422980"/>
+ <item android:offset="0.59" android:color="#FF342365"/>
+ <item android:offset="0.67" android:color="#FF2C1E55"/>
+ <item android:offset="0.74" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M43.8797,24.7708C43.7485,24.6513 43.5945,24.5275 43.429,24.4037C43.3677,24.3568 43.3078,24.3113 43.2422,24.2615C41.6393,23.1375 38.7672,22.0277 35.9992,22.5072C46.8045,27.8966 43.9039,46.4536 28.9317,45.7522C27.5983,45.699 26.2806,45.4457 25.0228,45.001C24.7291,44.8915 24.4353,44.7705 24.1415,44.641C23.9718,44.5642 23.8021,44.486 23.6353,44.3992L23.6552,44.412C25.7444,45.8347 36.062,49.3077 46.8388,40.5506L46.8559,40.5122C47.1154,39.8862 50.6834,31.0309 43.8797,24.7708Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="57.0853"
+ android:centerX="33.839"
+ android:centerY="18.2314"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.12" android:color="#FF9155F6"/>
+ <item android:offset="0.25" android:color="#FF834CEE"/>
+ <item android:offset="0.34" android:color="#FF7542E5"/>
+ <item android:offset="0.78" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M16.5544,34.5965C16.5544,34.5965 17.9405,29.4419 26.4827,29.4419C27.4067,29.4419 30.0478,26.8724 30.0949,26.1268C30.0949,26.1268 24.633,28.4146 18.8161,25.6844C12.5415,22.7364 7.7727,26.1254 7.7727,26.1254C7.7727,26.1254 9.5824,30.5915 14.8888,30.5915C14.3326,35.49 16.928,41.2024 23.2141,44.2001C23.3567,44.267 23.4865,44.3424 23.6305,44.4036C19.9613,42.5127 16.9295,38.9374 16.5544,34.5965Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="62.3509"
+ android:centerX="48.9103"
+ android:centerY="21.5613"
+ android:type="radial">
+ <item android:offset="0.19" android:color="#FF9658F9"/>
+ <item android:offset="0.49" android:color="#FF834BED"/>
+ <item android:offset="0.66" android:color="#FF7542E5"/>
+ <item android:offset="0.7" android:color="#FF6B3DD2"/>
+ <item android:offset="0.79" android:color="#FF52319F"/>
+ <item android:offset="0.91" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M57.8344,20.7447C56.5281,17.6147 53.8842,14.2285 51.8078,13.16C53.4977,16.4651 54.476,19.7801 54.8496,22.2543C54.8496,22.2543 54.8496,22.2713 54.8496,22.3041C51.4527,13.8586 45.6928,10.4525 40.9897,3.0371C40.7515,2.6615 40.5148,2.2859 40.2767,1.8889C40.144,1.6627 40.0385,1.4621 39.9458,1.2686C39.7509,0.8923 39.6006,0.4945 39.498,0.0834C39.4985,0.064 39.4918,0.0452 39.4792,0.0305C39.4665,0.0157 39.4488,0.0062 39.4296,0.0038C39.4109,-0.0013 39.3912,-0.0013 39.3725,0.0038L39.3583,0.0123C39.3507,0.0152 39.3435,0.019 39.3369,0.0237L39.3483,0.0066C31.803,4.4172 29.2432,12.5724 29.0079,16.6529C29.3573,16.6287 29.7067,16.5988 30.0632,16.5988C35.6933,16.5988 40.599,19.6876 43.2243,24.2661C41.6214,23.1421 38.7493,22.0323 35.9814,22.5118C46.7866,27.9012 43.886,46.4582 28.9138,45.7568C27.5804,45.7035 26.2627,45.4503 25.0049,45.0056C24.7112,44.896 24.4174,44.7751 24.1236,44.6456C23.9539,44.5688 23.7842,44.4905 23.6174,44.4038L23.6373,44.4166C23.4947,44.3468 23.3521,44.2743 23.201,44.2003C23.3436,44.2672 23.4733,44.3426 23.6174,44.4038C19.9481,42.5129 16.9149,38.9375 16.5413,34.5967C16.5413,34.5967 17.9274,29.442 26.4695,29.442C27.3936,29.442 30.0347,26.8725 30.0817,26.127C30.0703,25.8823 24.8424,23.8079 22.8088,21.8047C21.7193,20.7348 21.2031,20.2183 20.7453,19.8313C20.4966,19.6219 20.2367,19.4263 19.9667,19.2451C19.2823,16.8552 19.2532,14.3258 19.8825,11.9208C16.7965,13.3222 14.3965,15.5388 12.6524,17.4951H12.6495C11.4588,15.9913 11.5429,11.0273 11.6099,9.9901C11.5957,9.9261 10.7215,10.4425 10.6117,10.5208C9.5607,11.2694 8.5781,12.1092 7.6754,13.0305C6.6485,14.0695 5.7102,15.1922 4.8703,16.3868C2.9365,19.1178 1.5639,22.2039 0.8317,25.4669C0.8175,25.5309 0.8046,25.5992 0.7918,25.6646C0.7348,25.9278 0.4809,27.2666 0.4453,27.554C0.2132,28.9377 0.0651,30.3341 0.0018,31.7355C0.0018,31.7868 0.0018,31.8365 0.0018,31.8878C0.0018,48.4373 13.451,61.8525 30.0404,61.8525C44.8971,61.8525 57.234,51.0921 59.6483,36.9542C59.6997,36.5715 59.7396,36.1859 59.7909,35.7989C60.3799,30.6628 59.7096,25.2606 57.8344,20.7447ZM54.861,22.2827C54.8603,22.2936 54.8603,22.3045 54.861,22.3154V22.2827Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="9.32425"
+ android:startX="53.2553"
+ android:endY="51.751"
+ android:endX="10.9269"
+ android:type="linear">
+ <item android:offset="0" android:color="#E59059FF"/>
+ <item android:offset="0.61" android:color="#00291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/onboarding_second_screen_icon.png b/mobile/android/focus-android/app/src/main/res/drawable/onboarding_second_screen_icon.png
new file mode 100644
index 0000000000..6c02b1c1f4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/onboarding_second_screen_icon.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/photon_progressbar.xml b/mobile/android/focus-android/app/src/main/res/drawable/photon_progressbar.xml
new file mode 100644
index 0000000000..800c76dccd
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/photon_progressbar.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:id="@android:id/progress">
+ <scale
+ android:scaleGravity="fill_vertical|start"
+ android:scaleHeight="100%"
+ android:scaleWidth="100%">
+ <shape>
+ <gradient
+ android:centerColor="@color/colorProgressGradientEnd"
+ android:endColor="@color/colorProgressGradientStart"
+ android:startColor="@color/colorProgressGradientStart" />
+ </shape>
+ </scale>
+ </item>
+</layer-list>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/preference_foreground_disabled.xml b/mobile/android/focus-android/app/src/main/res/drawable/preference_foreground_disabled.xml
new file mode 100644
index 0000000000..baaab7dd73
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/preference_foreground_disabled.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="@color/preference_row_disabled"/>
+</shape> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/preference_multiselect_search_engine_foreground.xml b/mobile/android/focus-android/app/src/main/res/drawable/preference_multiselect_search_engine_foreground.xml
new file mode 100644
index 0000000000..749e60cf15
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/preference_multiselect_search_engine_foreground.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:drawable="@drawable/preference_foreground_disabled"
+ android:state_activated="true" />
+</selector> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/scrollbar_thumb.xml b/mobile/android/focus-android/app/src/main/res/drawable/scrollbar_thumb.xml
new file mode 100644
index 0000000000..b0e2268596
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/scrollbar_thumb.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="@color/scrollbarThumb" />
+ <size android:width="4dp" />
+</shape>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/tab_number_border.xml b/mobile/android/focus-android/app/src/main/res/drawable/tab_number_border.xml
new file mode 100644
index 0000000000..53a16d90d9
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/tab_number_border.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:strokeWidth="1"
+ android:strokeColor="@color/photonLightGrey05"
+ android:strokeAlpha="1"
+ android:pathData="M7.128,2.5c-1.55,0 -2.187,0.123 -2.846,0.475a3.135,3.135 0,0 0,-1.307 1.307c-0.352,0.659 -0.475,1.296 -0.475,2.846v9.744c0,1.55 0.123,2.187 0.475,2.846a3.135,3.135 0,0 0,1.307 1.307c0.659,0.352 1.296,0.475 2.846,0.475h9.744c1.55,0 2.187,-0.123 2.846,-0.475a3.135,3.135 0,0 0,1.307 -1.307c0.352,-0.659 0.475,-1.296 0.475,-2.846L21.5,7.128c0,-1.55 -0.123,-2.187 -0.475,-2.846a3.135,3.135 0,0 0,-1.307 -1.307c-0.659,-0.352 -1.296,-0.475 -2.846,-0.475zM6.564,3.5h10.872c0.888,0 1.324,0.084 1.777,0.326 0.413,0.221 0.74,0.548 0.96,0.961 0.243,0.453 0.327,0.889 0.327,1.777v10.872c0,0.888 -0.084,1.324 -0.326,1.777 -0.221,0.413 -0.548,0.74 -0.961,0.96 -0.453,0.243 -0.889,0.327 -1.777,0.327L6.564,20.5c-0.888,0 -1.324,-0.084 -1.777,-0.326a2.317,2.317 0,0 1,-0.96 -0.961c-0.243,-0.453 -0.327,-0.889 -0.327,-1.777L3.5,6.564c0,-0.888 0.084,-1.324 0.326,-1.777 0.221,-0.413 0.548,-0.74 0.961,-0.96 0.453,-0.243 0.889,-0.327 1.777,-0.327z"
+ android:fillColor="@color/photonLightGrey05"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/toolbar_url_background.xml b/mobile/android/focus-android/app/src/main/res/drawable/toolbar_url_background.xml
new file mode 100644
index 0000000000..df15d1eac6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/toolbar_url_background.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <corners android:radius="8dp" />
+ <solid android:color="@color/toolbarUrlBackground" />
+</shape>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/top_rounded_corners_bottom_sheet_background.xml b/mobile/android/focus-android/app/src/main/res/drawable/top_rounded_corners_bottom_sheet_background.xml
new file mode 100644
index 0000000000..ea1b948a52
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/top_rounded_corners_bottom_sheet_background.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="@color/photonInk80" />
+ <corners
+ android:topLeftRadius="8dp"
+ android:topRightRadius="8dp" />
+</shape>
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/urlbar_background.xml b/mobile/android/focus-android/app/src/main/res/drawable/urlbar_background.xml
new file mode 100644
index 0000000000..c00fb2e012
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/urlbar_background.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#33ffffff" />
+ <corners android:radius="2dp" />
+</shape> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/drawable/wordmark2.xml b/mobile/android/focus-android/app/src/main/res/drawable/wordmark2.xml
new file mode 100644
index 0000000000..07319181c1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/drawable/wordmark2.xml
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="384dp"
+ android:height="80dp"
+ android:viewportWidth="384"
+ android:viewportHeight="80">
+ <path
+ android:pathData="M75.023,27.16c-1.643,-3.951 -4.969,-8.216 -7.582,-9.565a39.215,39.215 0,0 1,3.827 11.47l0.007,0.063C67.002,18.477 59.756,14.182 53.838,4.83c-0.299,-0.473 -0.598,-0.947 -0.89,-1.447 -0.166,-0.285 -0.3,-0.543 -0.416,-0.782a6.882,6.882 0,0 1,-0.564 -1.494,0.099 0.099,0 0,0 -0.086,-0.101 0.128,0.128 0,0 0,-0.071 0c-0.005,0.002 -0.013,0.008 -0.019,0.01 -0.008,0.003 -0.019,0.011 -0.028,0.015l0.015,-0.021C42.287,6.569 39.066,16.855 38.77,22.001a18.91,18.91 0,0 0,-10.401 4.008,11.236 11.236,0 0,0 -0.979,-0.739 17.509,17.509 0,0 1,-0.106 -9.236,27.994 27.994,0 0,0 -9.097,7.03l-0.018,0c-1.498,-1.898 -1.393,-8.157 -1.307,-9.464a6.794,6.794 0,0 0,-1.262 0.669,27.537 27.537,0 0,0 -3.693,3.164 33.098,33.098 0,0 0,-3.529 4.232l-0.002,0.006 0.002,-0.006a31.897,31.897 0,0 0,-5.071 11.449c-0.018,0.082 -0.033,0.167 -0.051,0.249 -0.071,0.333 -0.327,1.997 -0.372,2.36 -0.003,0.028 -0.005,0.055 -0.008,0.082a36.013,36.013 0,0 0,-0.613 5.214c-0,0.065 -0.004,0.128 -0.004,0.193a37.795,37.795 0,0 0,75.044 6.394c0.064,-0.484 0.115,-0.97 0.172,-1.458A38.847,38.847 0,0 0,75.023 27.16ZM31.464,56.74c0.177,0.084 0.343,0.177 0.524,0.258l0.026,0.016C31.83,56.926 31.647,56.834 31.464,56.74ZM40.121,33.948 L40.122,33.948 40.122,33.948ZM71.279,29.138l-0.005,-0.037 0.006,0.041Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="21.02725"
+ android:startX="73.93614"
+ android:endY="62.21787"
+ android:endX="8.54604"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.13045" android:color="#FF9356F4"/>
+ <item android:offset="0.28673" android:color="#FF8951E5"/>
+ <item android:offset="0.45625" android:color="#FF7A49CD"/>
+ <item android:offset="0.63512" android:color="#FF643DAB"/>
+ <item android:offset="0.81932" android:color="#FF492E81"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M75.023,27.16c-1.643,-3.951 -4.969,-8.216 -7.582,-9.565a39.215,39.215 0,0 1,3.827 11.47c-0.001,-0.009 0.002,0.008 0.006,0.036l0.006,0.041A34.21,34.21 0,0 1,70.104 54.645C65.773,63.938 55.288,73.464 38.876,73 21.144,72.497 5.524,59.341 2.608,42.109c-0.531,-2.717 0,-4.097 0.267,-6.304a28.157,28.157 0,0 0,-0.613 5.214c-0,0.065 -0.004,0.128 -0.004,0.193a37.795,37.795 0,0 0,75.044 6.394c0.064,-0.484 0.115,-0.97 0.172,-1.458A38.847,38.847 0,0 0,75.023 27.16Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="78.778275"
+ android:centerX="67.12008"
+ android:centerY="9.612161"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF9658F9"/>
+ <item android:offset="0.65262" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M75.023,27.16c-1.643,-3.951 -4.969,-8.216 -7.582,-9.565a39.215,39.215 0,0 1,3.827 11.47c-0.001,-0.009 0.002,0.008 0.006,0.036l0.006,0.041A34.21,34.21 0,0 1,70.104 54.645C65.773,63.938 55.288,73.464 38.876,73 21.144,72.497 5.524,59.341 2.608,42.109c-0.531,-2.717 0,-4.097 0.267,-6.304a28.157,28.157 0,0 0,-0.613 5.214c-0,0.065 -0.004,0.128 -0.004,0.193a37.795,37.795 0,0 0,75.044 6.394c0.064,-0.484 0.115,-0.97 0.172,-1.458A38.847,38.847 0,0 0,75.023 27.16Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="78.7869"
+ android:centerX="38.288395"
+ android:centerY="41.807663"
+ android:type="radial">
+ <item android:offset="0.2545" android:color="#00AB71FF"/>
+ <item android:offset="0.42052" android:color="#2D9462E0"/>
+ <item android:offset="0.73373" android:color="#A4573B8D"/>
+ <item android:offset="0.9409" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M56.657,31.602c0.082,0.058 0.158,0.115 0.235,0.173a20.552,20.552 0,0 0,-3.508 -4.578C41.636,15.451 50.303,1.727 51.765,1.03l0.015,-0.021C42.287,6.569 39.066,16.855 38.77,22.001c0.44,-0.031 0.879,-0.068 1.327,-0.068A19.073,19.073 0,0 1,56.657 31.602Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="56.957905"
+ android:centerX="47.788044"
+ android:centerY="-8.276127"
+ android:type="radial">
+ <item android:offset="0.17512" android:color="#FF9658F9"/>
+ <item android:offset="0.32716" android:color="#FF7E48EA"/>
+ <item android:offset="0.37483" android:color="#FF7542E5"/>
+ <item android:offset="0.40682" android:color="#FF6A3DD0"/>
+ <item android:offset="0.485" android:color="#FF5332A2"/>
+ <item android:offset="0.55989" android:color="#FF41297E"/>
+ <item android:offset="0.62964" android:color="#FF342264"/>
+ <item android:offset="0.69229" android:color="#FF2C1E54"/>
+ <item android:offset="0.74179" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M40.121,33.948l0,0c-0.062,0.94 -3.383,4.183 -4.545,4.183 -10.747,0 -12.491,6.501 -12.491,6.501 0.476,5.475 4.287,9.983 8.902,12.369 0.211,0.109 0.424,0.207 0.637,0.304 0.37,0.163 0.74,0.316 1.11,0.454a16.783,16.783 0,0 0,4.918 0.949C57.488,59.591 61.137,36.186 47.544,29.389A13.046,13.046 0,0 1,56.657 31.602a19.073,19.073 0,0 0,-16.56 -9.67c-0.448,0 -0.887,0.037 -1.327,0.068A18.909,18.909 0,0 0,28.368 26.008c0.576,0.488 1.227,1.139 2.597,2.49C33.529,31.024 40.107,33.641 40.121,33.948Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="37.51398"
+ android:centerX="29.143686"
+ android:centerY="58.721375"
+ android:type="radial">
+ <item android:offset="0.06574" android:color="#FF9358FC"/>
+ <item android:offset="0.13086" android:color="#FF9857F8"/>
+ <item android:offset="0.2098" android:color="#FFA755EB"/>
+ <item android:offset="0.29591" android:color="#FFBF52D7"/>
+ <item android:offset="0.38652" android:color="#FFE14EBA"/>
+ <item android:offset="0.41788" android:color="#FFEF4CAF"/>
+ <item android:offset="0.74011" android:color="#FFFF7583"/>
+ <item android:offset="0.97014" android:color="#FFFFB753"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M40.121,33.948l0,0c-0.062,0.94 -3.383,4.183 -4.545,4.183 -10.747,0 -12.491,6.501 -12.491,6.501 0.476,5.475 4.287,9.983 8.902,12.369 0.211,0.109 0.424,0.207 0.637,0.304 0.37,0.163 0.74,0.316 1.11,0.454a16.783,16.783 0,0 0,4.918 0.949C57.488,59.591 61.137,36.186 47.544,29.389A13.046,13.046 0,0 1,56.657 31.602a19.073,19.073 0,0 0,-16.56 -9.67c-0.448,0 -0.887,0.037 -1.327,0.068A18.909,18.909 0,0 0,28.368 26.008c0.576,0.488 1.227,1.139 2.597,2.49C33.529,31.024 40.107,33.641 40.121,33.948Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="19.88938"
+ android:centerX="39.387424"
+ android:centerY="32.630054"
+ android:type="radial">
+ <item android:offset="0.22277" android:color="#4CFFB653"/>
+ <item android:offset="0.34343" android:color="#7FFF807A"/>
+ <item android:offset="0.44004" android:color="#7BFF7781"/>
+ <item android:offset="0.56837" android:color="#6EFF5C94"/>
+ <item android:offset="0.63555" android:color="#66FF4AA2"/>
+ <item android:offset="0.86481" android:color="#4C9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M26.606,24.752c0.306,0.199 0.559,0.365 0.783,0.518a17.509,17.509 0,0 1,-0.106 -9.236,27.994 27.994,0 0,0 -9.097,7.03C18.368,23.059 23.85,22.96 26.606,24.752Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="26.987741"
+ android:centerX="37.29384"
+ android:centerY="6.3783803"
+ android:type="radial">
+ <item android:offset="0.02639" android:color="#FF9658F9"/>
+ <item android:offset="0.61886" android:color="#FF7542E5"/>
+ <item android:offset="0.71748" android:color="#FF6339C2"/>
+ <item android:offset="0.93471" android:color="#FF37246B"/>
+ <item android:offset="1" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M2.608,42.109c2.916,17.232 18.536,30.389 36.268,30.891C55.288,73.464 65.773,63.938 70.104,54.645A34.21,34.21 0,0 0,71.28 29.142l-0.001,-0.004 -0.005,-0.037c-0.004,-0.028 -0.006,-0.045 -0.006,-0.036l0.007,0.063C72.616,37.881 68.163,46.361 61.203,52.095l-0.021,0.049c-13.563,11.043 -26.541,6.663 -29.169,4.87 -0.183,-0.088 -0.367,-0.18 -0.55,-0.274C23.556,52.961 20.29,45.757 20.99,39.579A9.706,9.706 0,0 1,12.037 33.948a14.256,14.256 0,0 1,13.895 -0.557,18.818 18.818,0 0,0 14.19,0.557c-0.014,-0.307 -6.592,-2.923 -9.156,-5.45 -1.37,-1.35 -2.021,-2.001 -2.597,-2.489a11.236,11.236 0,0 0,-0.979 -0.739c-0.225,-0.153 -0.477,-0.319 -0.783,-0.518 -2.756,-1.791 -8.238,-1.693 -8.42,-1.688l-0.018,0c-1.498,-1.898 -1.393,-8.157 -1.307,-9.464a6.794,6.794 0,0 0,-1.262 0.669,27.537 27.537,0 0,0 -3.693,3.164 33.098,33.098 0,0 0,-3.529 4.232l-0.002,0.006 0.002,-0.006a31.897,31.897 0,0 0,-5.071 11.449C3.288,33.196 1.946,39.065 2.608,42.109Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="110.54113"
+ android:centerX="58.48223"
+ android:centerY="-10.635548"
+ android:type="radial">
+ <item android:offset="0.20184" android:color="#FFAB71FF"/>
+ <item android:offset="0.28641" android:color="#FFA46BFC"/>
+ <item android:offset="0.41128" android:color="#FF9059F2"/>
+ <item android:offset="0.53733" android:color="#FF7542E5"/>
+ <item android:offset="0.63798" android:color="#FF6239BF"/>
+ <item android:offset="0.9427" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M53.383,27.197a20.552,20.552 0,0 1,3.508 4.578c0.208,0.156 0.402,0.312 0.567,0.464 8.568,7.895 4.079,19.06 3.744,19.855 6.96,-5.734 11.413,-14.213 10.073,-22.966C67.002,18.477 59.756,14.182 53.838,4.83c-0.299,-0.473 -0.598,-0.947 -0.89,-1.447 -0.166,-0.285 -0.3,-0.543 -0.416,-0.782a6.882,6.882 0,0 1,-0.564 -1.494,0.099 0.099,0 0,0 -0.086,-0.101 0.128,0.128 0,0 0,-0.071 0c-0.005,0.002 -0.013,0.008 -0.019,0.01 -0.008,0.003 -0.019,0.011 -0.028,0.015C50.303,1.727 41.636,15.451 53.383,27.197Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="84.33656"
+ android:centerX="47.662502"
+ android:centerY="2.1176796"
+ android:type="radial">
+ <item android:offset="0.08834" android:color="#FF9658F9"/>
+ <item android:offset="0.13821" android:color="#FF8C51F3"/>
+ <item android:offset="0.26179" android:color="#FF7542E5"/>
+ <item android:offset="0.291" android:color="#FF6E3ED6"/>
+ <item android:offset="0.39747" android:color="#FF5533A6"/>
+ <item android:offset="0.49859" android:color="#FF422980"/>
+ <item android:offset="0.59167" android:color="#FF342365"/>
+ <item android:offset="0.67386" android:color="#FF2C1E55"/>
+ <item android:offset="0.7365" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M57.459,32.239c-0.165,-0.152 -0.359,-0.308 -0.567,-0.464 -0.077,-0.058 -0.152,-0.115 -0.235,-0.173a13.048,13.048 0,0 0,-9.112 -2.212c13.593,6.796 9.944,30.198 -8.892,29.314a16.786,16.786 0,0 1,-4.918 -0.948c-0.37,-0.138 -0.74,-0.291 -1.11,-0.454 -0.213,-0.097 -0.426,-0.196 -0.637,-0.304l0.026,0.016c2.628,1.793 15.606,6.173 29.169,-4.87l0.021,-0.049C61.538,51.3 66.027,40.134 57.459,32.239Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="71.88574"
+ android:centerX="36.657963"
+ android:centerY="16.372646"
+ android:type="radial">
+ <item android:offset="0.005" android:color="#FF9658F9"/>
+ <item android:offset="0.11881" android:color="#FF9155F6"/>
+ <item android:offset="0.25007" android:color="#FF834CEE"/>
+ <item android:offset="0.34194" android:color="#FF7542E5"/>
+ <item android:offset="0.77822" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M23.085,44.63s1.744,-6.5 12.491,-6.5c1.162,0 4.483,-3.242 4.545,-4.182l-0.001,0 0.001,-0a18.818,18.818 0,0 1,-14.19 -0.557,14.256 14.256,0 0,0 -13.895,0.557A9.706,9.706 0,0 0,20.99 39.579c-0.7,6.178 2.566,13.382 10.473,17.161 0.177,0.084 0.343,0.177 0.524,0.258C27.372,54.612 23.562,50.104 23.085,44.63Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="78.518456"
+ android:centerX="55.634266"
+ android:centerY="20.579784"
+ android:type="radial">
+ <item android:offset="0.18847" android:color="#FF9658F9"/>
+ <item android:offset="0.48577" android:color="#FF834BED"/>
+ <item android:offset="0.66281" android:color="#FF7542E5"/>
+ <item android:offset="0.70445" android:color="#FF6B3DD2"/>
+ <item android:offset="0.78925" android:color="#FF52319F"/>
+ <item android:offset="0.90908" android:color="#FF291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M75.023,27.16c-1.643,-3.951 -4.969,-8.216 -7.582,-9.565a39.215,39.215 0,0 1,3.827 11.47l0.007,0.063C67.002,18.477 59.756,14.182 53.838,4.83c-0.299,-0.473 -0.598,-0.947 -0.89,-1.447 -0.166,-0.285 -0.3,-0.543 -0.416,-0.782a6.882,6.882 0,0 1,-0.564 -1.494,0.099 0.099,0 0,0 -0.086,-0.101 0.128,0.128 0,0 0,-0.071 0c-0.005,0.002 -0.013,0.008 -0.019,0.01 -0.008,0.003 -0.019,0.011 -0.028,0.015l0.015,-0.021C42.287,6.569 39.066,16.855 38.77,22.001c0.44,-0.031 0.879,-0.068 1.327,-0.068a19.073,19.073 0,0 1,16.56 9.669,13.048 13.048,0 0,0 -9.112,-2.212c13.593,6.796 9.944,30.198 -8.892,29.314a16.786,16.786 0,0 1,-4.918 -0.948c-0.37,-0.138 -0.74,-0.291 -1.11,-0.454 -0.213,-0.097 -0.426,-0.196 -0.637,-0.304l0.026,0.016c-0.183,-0.088 -0.367,-0.18 -0.55,-0.274 0.177,0.084 0.343,0.177 0.524,0.258 -4.615,-2.385 -8.426,-6.893 -8.902,-12.367 0,0 1.744,-6.5 12.491,-6.5 1.162,0 4.483,-3.242 4.545,-4.182l-0.001,0 0.001,-0c-0.014,-0.307 -6.592,-2.923 -9.156,-5.45 -1.37,-1.35 -2.021,-2.001 -2.597,-2.489a11.236,11.236 0,0 0,-0.979 -0.739,17.509 17.509,0 0,1 -0.106,-9.236 27.994,27.994 0,0 0,-9.097 7.03l-0.018,0c-1.498,-1.898 -1.393,-8.157 -1.307,-9.464a6.794,6.794 0,0 0,-1.262 0.669,27.537 27.537,0 0,0 -3.693,3.164 33.098,33.098 0,0 0,-3.529 4.232l-0.002,0.006 0.002,-0.006a31.897,31.897 0,0 0,-5.071 11.449c-0.018,0.082 -0.033,0.167 -0.051,0.249 -0.071,0.333 -0.391,2.021 -0.436,2.383 -0.003,0.028 0.003,-0.028 0,0a43.958,43.958 0,0 0,-0.557 5.273c-0,0.065 -0.004,0.128 -0.004,0.193a37.795,37.795 0,0 0,75.044 6.394c0.064,-0.484 0.115,-0.97 0.172,-1.458A38.847,38.847 0,0 0,75.023 27.16ZM71.274,29.101l0.006,0.041 -0.001,-0.004Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="12.7585"
+ android:startX="69.26325"
+ android:endY="66.13774"
+ android:endX="15.88401"
+ android:type="linear">
+ <item android:offset="0" android:color="#E59059FF"/>
+ <item android:offset="0.61466" android:color="#00291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M96.972,23.989h21.427v5.795L103.119,29.784v7.858h15.28v5.751L103.119,43.392L103.119,56.036L96.972,56.036ZM125.688,21.75a3.447,3.447 0,0 1,3.557 3.6,3.579 3.579,0 0,1 -7.157,0.088A3.555,3.555 0,0 1,125.688 21.75ZM122.658,32.33h6.059L128.718,56.036h-6.059ZM146.281,38.915a4.897,4.897 0,0 0,-2.942 -1.054c-2.459,0 -3.864,1.58 -3.864,5.048v13.126h-6.015L133.46,32.33h5.752L139.212,35.754a5.65,5.65 0,0 1,5.664 -3.644,7.187 7.187,0 0,1 4.04,1.229ZM148.784,44.314a12.128,12.128 0,0 1,12.207 -12.467c7.113,0 12.163,5.048 12.163,12.072v2.502L154.711,46.422c0.659,2.985 2.986,4.961 6.542,4.961a6.355,6.355 0,0 0,5.884 -3.512l5.049,3.029c-2.503,3.688 -6.059,5.619 -11.109,5.619C153.394,56.518 148.784,51.382 148.784,44.314ZM154.799,41.636h12.47c-0.659,-3.029 -3.117,-4.697 -6.323,-4.697A6.09,6.09 0,0 0,154.799 41.637ZM174.646,32.33h4.259L178.905,31.144c0,-6.453 2.722,-9.131 8.694,-9.131h2.108v5.224h-1.712c-2.81,0 -3.425,0.966 -3.425,3.907L184.569,32.33h5.137v5.444h-5.006L184.701,56.036h-5.796L178.905,37.773h-4.259ZM190.848,44.183a12.139,12.139 0,0 1,12.382 -12.336,12.336 12.336,0 1,1 0,24.672A11.958,11.958 0,0 1,190.848 44.183ZM209.728,44.183a6.502,6.502 0,1 0,-12.997 0,6.502 6.502,0 1,0 12.997,0ZM223.779,43.919L215.217,32.33h7.113l5.049,7.287 5.181,-7.287h6.981l-8.694,11.546 9.133,12.16L232.912,56.036l-5.664,-7.726 -5.489,7.726h-7.069Z"
+ android:fillColor="@color/contrastColor"/>
+ <path
+ android:pathData="M275.762,27.481l0,-3.474l-20.141,0l0,32.097l3.694,0l0,-13.894l16.447,0l0,-3.517l-16.447,0l0,-11.212l16.447,0z"
+ android:fillColor="@color/contrastColor"/>
+ <path
+ android:pathData="M291.639,31.878a12.354,12.354 0,1 0,12.357 12.355A12.192,12.192 0,0 0,291.639 31.878ZM291.639,53.158a8.605,8.605 0,0 1,-8.663 -8.925,8.69 8.69,0 1,1 17.37,0A8.641,8.641 0,0 1,291.639 53.158Z"
+ android:fillColor="@color/contrastColor"/>
+ <path
+ android:pathData="M327.789,47.706a8.497,8.497 0,0 1,-7.916 5.496,8.877 8.877,0 0,1 -8.883,-8.969 8.767,8.767 0,0 1,8.751 -8.97,8.392 8.392,0 0,1 7.96,5.276l3.298,-1.451a11.941,11.941 0,0 0,-11.214 -7.21,12.355 12.355,0 1,0 0.044,24.709 11.87,11.87 0,0 0,11.302 -7.474Z"
+ android:fillColor="@color/contrastColor"/>
+ <path
+ android:pathData="M352.373,32.361V45.507c0,4.573 -3.122,7.783 -7.3,7.783 -4.574,0 -6.948,-2.99 -6.948,-7.606V32.361h-3.65V45.86c0,6.682 3.519,10.727 9.982,10.727a9.062,9.062 0,0 0,8.004 -4.397v3.913h3.518V32.361Z"
+ android:fillColor="@color/contrastColor"/>
+ <path
+ android:pathData="M370.542,42.386c-3.694,-0.747 -6.553,-1.231 -6.553,-3.693 0,-2.199 1.495,-3.781 5.146,-3.781a7.665,7.665 0,0 1,6.509 3.165l2.99,-2.022a11.481,11.481 0,0 0,-9.499 -4.221c-5.629,-0.044 -8.839,3.209 -8.839,6.903 0,4.748 4.354,5.847 8.443,6.638 3.474,0.704 6.728,1.231 6.728,3.869 0,2.375 -1.935,4.133 -5.629,4.133a8.773,8.773 0,0 1,-7.651 -3.869l-3.122,2.111c2.11,3.034 5.497,4.968 10.686,4.968 6.201,0.044 9.367,-3.649 9.367,-7.386C379.117,44.321 374.632,43.177 370.542,42.386Z"
+ android:fillColor="@color/contrastColor"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis.xml b/mobile/android/focus-android/app/src/main/res/font/metropolis.xml
new file mode 100644
index 0000000000..9fc50a8f90
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<font-family xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <!-- Black -->
+ <font
+ android:font="@font/metropolis_black"
+ android:fontStyle="normal"
+ android:fontWeight="900"
+ app:font="@font/metropolis_black"
+ app:fontStyle="normal"
+ app:fontWeight="900" />
+
+ <!-- Extra Bold -->
+ <font
+ android:font="@font/metropolis_extrabold"
+ android:fontStyle="normal"
+ android:fontWeight="800"
+ app:font="@font/metropolis_extrabold"
+ app:fontStyle="normal"
+ app:fontWeight="800" />
+
+ <!-- Bold -->
+ <font
+ android:font="@font/metropolis_bold"
+ android:fontStyle="normal"
+ android:fontWeight="700"
+ app:font="@font/metropolis_bold"
+ app:fontStyle="normal"
+ app:fontWeight="700" />
+
+ <!-- Semi-Bold -->
+ <font
+ android:font="@font/metropolis_semibold"
+ android:fontStyle="normal"
+ android:fontWeight="600"
+ app:font="@font/metropolis_semibold"
+ app:fontStyle="normal"
+ app:fontWeight="600" />
+
+ <!-- Medium -->
+ <font
+ android:font="@font/metropolis_medium"
+ android:fontStyle="normal"
+ android:fontWeight="500"
+ app:font="@font/metropolis_medium"
+ app:fontStyle="normal"
+ app:fontWeight="500" />
+
+ <!-- Normal -->
+ <font
+ android:font="@font/metropolis_regular"
+ android:fontStyle="normal"
+ android:fontWeight="400"
+ app:font="@font/metropolis_regular"
+ app:fontStyle="normal"
+ app:fontWeight="400" />
+
+ <!-- Thin -->
+ <font
+ android:font="@font/metropolis_thin"
+ android:fontStyle="normal"
+ android:fontWeight="200"
+ app:font="@font/metropolis_thin"
+ app:fontStyle="normal"
+ app:fontWeight="200" />
+
+ <!-- Light -->
+ <font
+ android:font="@font/metropolis_light"
+ android:fontStyle="normal"
+ android:fontWeight="100"
+ app:font="@font/metropolis_light"
+ app:fontStyle="normal"
+ app:fontWeight="100" />
+
+</font-family>
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_black.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_black.ttf
new file mode 100644
index 0000000000..ba26a9da8f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_black.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_blackitalic.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_blackitalic.ttf
new file mode 100644
index 0000000000..7dabcf8e04
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_blackitalic.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_bold.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_bold.ttf
new file mode 100644
index 0000000000..384bc526c3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_bold.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_bolditalic.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_bolditalic.ttf
new file mode 100644
index 0000000000..2ce79751d5
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_bolditalic.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_extrabold.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_extrabold.ttf
new file mode 100644
index 0000000000..743d11b15e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_extrabold.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_extrabolditalic.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_extrabolditalic.ttf
new file mode 100644
index 0000000000..45cd9824b2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_extrabolditalic.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_extralighitalic.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_extralighitalic.ttf
new file mode 100644
index 0000000000..09201497b5
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_extralighitalic.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_extralight.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_extralight.ttf
new file mode 100644
index 0000000000..f977aec971
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_extralight.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_light.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_light.ttf
new file mode 100644
index 0000000000..64a0c83a42
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_light.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_lightitalic.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_lightitalic.ttf
new file mode 100644
index 0000000000..6f4cfeb81f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_lightitalic.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_medium.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_medium.ttf
new file mode 100644
index 0000000000..5d838c66b1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_medium.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_mediumitalic.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_mediumitalic.ttf
new file mode 100644
index 0000000000..c5646d24aa
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_mediumitalic.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_regular.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_regular.ttf
new file mode 100644
index 0000000000..012acd813f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_regular.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_regularitalic.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_regularitalic.ttf
new file mode 100644
index 0000000000..60f3502ecb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_regularitalic.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_semibold.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_semibold.ttf
new file mode 100644
index 0000000000..2f7522d57c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_semibold.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_semibolditalic.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_semibolditalic.ttf
new file mode 100644
index 0000000000..7451471270
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_semibolditalic.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_thin.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_thin.ttf
new file mode 100644
index 0000000000..f1ca33732c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_thin.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/font/metropolis_thinitalic.ttf b/mobile/android/focus-android/app/src/main/res/font/metropolis_thinitalic.ttf
new file mode 100644
index 0000000000..d277f65f95
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/font/metropolis_thinitalic.ttf
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/layout/active_study_item.xml b/mobile/android/focus-android/app/src/main/res/layout/active_study_item.xml
new file mode 100644
index 0000000000..65c8aaf8cf
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/active_study_item.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="72dp"
+ android:paddingEnd="16dp">
+
+ <com.google.android.material.textview.MaterialTextView
+ android:id="@+id/title"
+ style="@style/Preference.Title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ android:layout_marginTop="16dp"/>
+
+ <com.google.android.material.textview.MaterialTextView
+ android:id="@+id/summary"
+ style="@style/Preference.Summary"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ app:layout_constraintEnd_toStartOf="@id/remove"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/title"
+ android:layout_marginTop="2dp"/>
+
+ <com.google.android.material.textview.MaterialTextView
+ android:id="@+id/remove"
+ style="@style/Preference.Summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/studies_remove"
+ android:textColor="@color/colorAccentSettings"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="@id/summary" />
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/activity_customtab.xml b/mobile/android/focus-android/app/src/main/res/layout/activity_customtab.xml
new file mode 100644
index 0000000000..da813784aa
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/activity_customtab.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!-- Ignore MergeRootFrame: we need a single container View where we can attach fragments, so
+ we definitely need to keep this FrameLayout (i.e. we can't <merge> here). -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ tools:ignore="MergeRootFrame"
+ android:id="@+id/container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"/> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/layout/activity_info.xml b/mobile/android/focus-android/app/src/main/res/layout/activity_info.xml
new file mode 100644
index 0000000000..8755bb2aaf
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/activity_info.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+ <androidx.appcompat.widget.Toolbar
+ android:id="@+id/toolbar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="?attr/colorPrimary"
+ android:elevation="4dp"/>
+ <FrameLayout
+ android:id="@+id/infofragment"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"/>
+</LinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/activity_main.xml b/mobile/android/focus-android/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000000..352c0fc0e0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <View
+ android:id="@+id/status_bar_background"
+ android:background="@drawable/background_gradient"
+ android:layout_width="match_parent"
+ android:layout_height="0dp" />
+
+ <ViewStub
+ android:id="@+id/toolbar"
+ android:layout_width="match_parent"
+ android:layout_height="?attr/actionBarSize"
+ android:background="@color/settings_background"
+ android:layout="@layout/toolbar"
+ android:gravity="center_vertical" />
+
+ <FrameLayout
+ android:id="@+id/container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:ignore="MergeRootFrame" />
+</LinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/connection_details.xml b/mobile/android/focus-android/app/src/main/res/layout/connection_details.xml
new file mode 100644
index 0000000000..c59ff6da90
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/connection_details.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<androidx.constraintlayout.widget.ConstraintLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/connection_details_view"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:padding="16dp">
+
+ <ImageView
+ android:id="@+id/details_back"
+ android:layout_width="40dp"
+ android:layout_height="40dp"
+ android:contentDescription="@string/go_back"
+ android:paddingStart="8dp"
+ android:paddingTop="8dp"
+ android:paddingEnd="8dp"
+ android:paddingBottom="8dp"
+ android:scaleType="center"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:srcCompat="@drawable/mozac_ic_back_24" />
+
+ <ImageView
+ android:id="@+id/site_favicon"
+ android:layout_width="40dp"
+ android:layout_height="40dp"
+ android:layout_marginStart="12dp"
+ android:importantForAccessibility="no"
+ android:paddingStart="8dp"
+ android:paddingTop="8dp"
+ android:paddingEnd="8dp"
+ android:paddingBottom="8dp"
+ app:layout_constraintStart_toEndOf="@id/details_back"
+ app:layout_constraintTop_toTopOf="@id/site_title"
+ app:layout_constraintBottom_toBottomOf="@id/site_title"
+ tools:src="@drawable/ic_favorite" />
+
+ <com.google.android.material.textview.MaterialTextView
+ android:id="@+id/site_title"
+ style="@style/PanelTitle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="8dp"
+ android:paddingTop="8dp"
+ android:paddingBottom="8dp"
+ app:layout_constraintBottom_toTopOf="@id/site_full_url"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@id/site_favicon"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:text="@tools:sample/lorem/random" />
+
+ <com.google.android.material.textview.MaterialTextView
+ android:id="@+id/site_full_url"
+ style="@style/PanelTitle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="4dp"
+ android:paddingTop="8dp"
+ android:paddingBottom="8dp"
+ app:layout_constraintBottom_toTopOf="@id/security_info"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="@id/site_favicon"
+ app:layout_constraintTop_toBottomOf="@id/site_title"
+ tools:text="url.com" />
+
+ <com.google.android.material.textview.MaterialTextView
+ android:id="@+id/security_info"
+ style="@style/PanelTitle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:drawablePadding="8dp"
+ android:gravity="center_vertical"
+ android:paddingTop="8dp"
+ android:paddingBottom="8dp"
+ app:drawableStartCompat="@drawable/mozac_ic_lock_24"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="@id/site_favicon"
+ app:layout_constraintTop_toBottomOf="@id/site_full_url"
+ tools:text="@string/secure_connection" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/cookie_banner_reducer_details.xml b/mobile/android/focus-android/app/src/main/res/layout/cookie_banner_reducer_details.xml
new file mode 100644
index 0000000000..d378b0d434
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/cookie_banner_reducer_details.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/connection_details_view"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="8dp">
+
+ <ImageView
+ android:id="@+id/details_back"
+ android:layout_width="40dp"
+ android:layout_height="40dp"
+ android:contentDescription="@string/go_back"
+ android:padding="4dp"
+ android:scaleType="center"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:srcCompat="@drawable/mozac_ic_back_24" />
+
+ <com.google.android.material.textview.MaterialTextView
+ android:id="@+id/title"
+ style="@style/PanelHeading"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="25dp"
+ android:clickable="false"
+ android:focusable="false"
+ android:paddingTop="8dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@+id/details_back"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:text="Title" />
+
+ <com.google.android.material.textview.MaterialTextView
+ android:id="@+id/details"
+ style="@style/PanelTitle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="25dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@+id/details_back"
+ app:layout_constraintTop_toBottomOf="@id/title"
+ tools:text="Details" />
+
+ <org.mozilla.focus.cookiebannerreducer.CookieBannerExceptionDetailsSwitch
+ android:id="@+id/cookie_banner_exception_details_switch"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="-19dp"
+ android:layout_marginTop="16dp"
+ android:minHeight="48dp"
+ android:visibility="gone"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@+id/details_back"
+ app:layout_constraintTop_toBottomOf="@id/details" />
+
+ <androidx.appcompat.widget.AppCompatButton
+ android:id="@+id/cancel_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:minHeight="48dp"
+ android:layout_marginTop="16dp"
+ android:text="@string/cookie_banner_exception_panel_site_is_not_supported_cancel_button"
+ android:textAllCaps="true"
+ android:gravity="center"
+ android:visibility="gone"
+ android:layout_marginEnd="16dp"
+ android:background="@android:color/transparent"
+ android:textSize="14sp"
+ android:textColor="@color/cookie_banner_details_panel_report_a_site_text_color"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/details" />
+
+ <androidx.appcompat.widget.AppCompatButton
+ android:id="@+id/request_support"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:minHeight="48dp"
+ android:visibility="gone"
+ android:layout_marginTop="16dp"
+ android:layout_marginEnd="16dp"
+ android:text="@string/cookie_banner_exception_panel_site_is_not_supported_request_support_button"
+ android:textAllCaps="true"
+ android:gravity="center"
+ android:textSize="14sp"
+ android:background="@android:color/transparent"
+ android:textColor="@color/cookie_banner_details_panel_report_a_site_text_color"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@+id/cancel_button"
+ app:layout_constraintTop_toBottomOf="@id/details"
+ app:layout_constraintLeft_toLeftOf="parent" />
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/cookies_preference.xml b/mobile/android/focus-android/app/src/main/res/layout/cookies_preference.xml
new file mode 100644
index 0000000000..ff29803a23
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/cookies_preference.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:baselineAligned="false"
+ android:gravity="center_vertical"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+
+ <RelativeLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingTop="16dip"
+ android:paddingBottom="16dip">
+
+ <TextView
+ android:id="@android:id/title"
+ style="@style/Preference.Title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
+ <TextView
+ android:id="@android:id/summary"
+ style="@style/Preference.Summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@android:id/title"
+ android:layout_alignStart="@android:id/title"
+ android:maxLines="10" />
+
+ </RelativeLayout>
+
+ <!-- Preference should place its actual preference widget here. -->
+ <LinearLayout
+ android:id="@android:id/widget_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:gravity="end|center_vertical"
+ android:minWidth="58dip"
+ android:orientation="vertical">
+
+ <ImageView
+ android:id="@+id/icon"
+ android:src="@drawable/mozac_ic_chevron_right_24"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:importantForAccessibility="no" />
+ </LinearLayout>
+</LinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/custom_tab_menu_item.xml b/mobile/android/focus-android/app/src/main/res/layout/custom_tab_menu_item.xml
new file mode 100644
index 0000000000..c0e8e28689
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/custom_tab_menu_item.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- This is just a copy of menu_item, which exists so that the CustomTabMenuItemViewHolder
+ can have a separate ID. See that class for more background on why. <include> isn't allowed
+ at the root of a layout file, so a copy is the easiest way to get what we want. -->
+<TextView style="@android:style/TextAppearance.Material.Menu"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="48dp"
+ android:background="?android:attr/selectableItemBackground"
+ android:clickable="true"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:lines="1"
+ android:paddingEnd="16dp"
+ android:paddingStart="16dp"
+ android:textSize="16sp"
+ android:focusable="true" />
diff --git a/mobile/android/focus-android/app/src/main/res/layout/dialog_add_to_homescreen2.xml b/mobile/android/focus-android/app/src/main/res/layout/dialog_add_to_homescreen2.xml
new file mode 100644
index 0000000000..644eae61c8
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/dialog_add_to_homescreen2.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<androidx.constraintlayout.widget.ConstraintLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/dialog_title"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="24dp"
+ android:layout_marginTop="21dp"
+ android:layout_marginEnd="24dp"
+ android:fontFamily="@font/metropolis_semibold"
+ android:letterSpacing="0.05"
+ android:text="@string/menu_add_to_home_screen"
+ android:textColor="@color/primaryText"
+ android:textSize="20sp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:text="Add to home screen" />
+
+ <androidx.appcompat.widget.AppCompatImageView
+ android:id="@+id/homescreen_icon"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_marginTop="31dp"
+ app:layout_constraintStart_toStartOf="@id/dialog_title"
+ app:layout_constraintTop_toBottomOf="@id/dialog_title"
+ tools:src="@drawable/ic_favorite" />
+
+ <androidx.appcompat.widget.AppCompatEditText
+ android:id="@+id/edit_title"
+ style="@style/AddToHomeScreenSiteTitle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="19dp"
+ android:layout_marginEnd="24dp"
+ android:importantForAutofill="no"
+ app:layout_constraintBottom_toBottomOf="@id/homescreen_icon"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@id/homescreen_icon"
+ app:layout_constraintTop_toTopOf="@id/homescreen_icon" />
+
+ <Button
+ android:id="@+id/addtohomescreen_dialog_add"
+ style="@style/ButtonStyle"
+ android:layout_marginTop="36dp"
+ android:layout_marginStart="8dp"
+ android:layout_marginEnd="8dp"
+ android:text="@string/dialog_addtohomescreen_action_add"
+ app:layout_constraintBottom_toTopOf="@id/homescreen_dialog_warning_layout"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/edit_title" />
+
+ <Button
+ android:id="@+id/addtohomescreen_dialog_cancel"
+ style="@style/ButtonStyle"
+ android:layout_marginStart="8dp"
+ android:layout_marginEnd="8dp"
+ android:text="@string/dialog_addtohomescreen_action_cancel"
+ app:layout_constraintEnd_toStartOf="@id/addtohomescreen_dialog_add"
+ app:layout_constraintTop_toTopOf="@id/addtohomescreen_dialog_add"
+ app:layout_constraintBottom_toBottomOf="@id/addtohomescreen_dialog_add"/>
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/homescreen_dialog_warning_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="80dp"
+ android:layout_marginTop="16dp"
+ android:background="@drawable/dialog_warning_background"
+ android:visibility="invisible"
+ tools:visibility="visible"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/addtohomescreen_dialog_add">
+
+ <androidx.appcompat.widget.AppCompatImageView
+ android:id="@+id/homescreen_dialog_block_icon"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_gravity="center_vertical"
+ android:layout_marginStart="24dp"
+ android:layout_marginTop="26dp"
+ android:layout_marginBottom="32dp"
+ android:tint="@color/photonWhite"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/homescreen_dialog_warning"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="16dp"
+ android:layout_marginEnd="16dp"
+ android:fontFamily="@string/font_roboto_regular"
+ android:text="@string/dialog_addtohomescreen_tracking_protection2"
+ android:textColor="@color/photonWhite"
+ android:textSize="14sp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@id/homescreen_dialog_block_icon"
+ app:layout_constraintTop_toTopOf="parent" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/dialog_full_screen_notification.xml b/mobile/android/focus-android/app/src/main/res/layout/dialog_full_screen_notification.xml
new file mode 100644
index 0000000000..293e975d12
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/dialog_full_screen_notification.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/full_screen_notification_layout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_margin="8dp"
+ android:background="@drawable/focus_snackbar_background"
+ android:elevation="4dp"
+ android:minHeight="48dp"
+ android:orientation="horizontal"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp">
+
+ <TextView
+ android:id="@+id/full_screen_notification_text"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:letterSpacing="0.05"
+ android:maxLines="2"
+ android:paddingTop="8dp"
+ android:paddingBottom="8dp"
+ android:text="@string/full_screen_notification"
+ android:textAlignment="textStart"
+ android:textColor="@color/snackbarTextColor"
+ android:textSize="14sp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:text="@string/full_screen_notification" />
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/dialog_tracking_protection_sheet.xml b/mobile/android/focus-android/app/src/main/res/layout/dialog_tracking_protection_sheet.xml
new file mode 100644
index 0000000000..6d31216a10
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/dialog_tracking_protection_sheet.xml
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="@dimen/activity_horizontal_margin"
+ android:paddingTop="@dimen/activity_vertical_margin"
+ android:paddingEnd="@dimen/activity_horizontal_margin"
+ android:paddingBottom="@dimen/activity_vertical_margin">
+
+ <ImageView
+ android:id="@+id/site_favicon"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:importantForAccessibility="no"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:src="@drawable/ic_favorite" />
+
+ <com.google.android.material.textview.MaterialTextView
+ android:id="@+id/site_title"
+ style="@style/PanelTitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="16dp"
+ app:layout_constraintBottom_toBottomOf="@id/site_favicon"
+ app:layout_constraintStart_toEndOf="@id/site_favicon"
+ app:layout_constraintTop_toTopOf="@id/site_favicon"
+ tools:text="url.com" />
+
+ <com.google.android.material.textview.MaterialTextView
+ android:id="@+id/security_info"
+ style="@style/PanelTitle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="28dp"
+ android:drawablePadding="20dp"
+ android:gravity="center_vertical"
+ app:drawableEndCompat="@drawable/mozac_ic_chevron_right_24"
+ app:drawableStartCompat="@drawable/mozac_ic_lock_24"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/site_title"
+ tools:text="@string/secure_connection" />
+
+ <androidx.compose.ui.platform.ComposeView
+ android:id="@+id/cookie_banner_exception"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="28dp"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/security_info" />
+
+ <org.mozilla.focus.widget.SwitchWithDescription
+ android:id="@+id/enhanced_tracking"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:minHeight="48dp"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/cookie_banner_exception"
+ app:switchDescription="@string/enhanced_tracking_protection_state_on"
+ app:switchIcon="@drawable/mozac_ic_shield_24"
+ app:switchTitle="@string/enhanced_tracking_protection" />
+
+ <com.google.android.material.textview.MaterialTextView
+ android:id="@+id/trackers_and_scripts_heading"
+ style="@style/PanelHeading"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="18dp"
+ android:text="@string/trackers_and_scripts"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/enhanced_tracking" />
+
+ <org.mozilla.focus.settings.privacy.PreferenceSwitch
+ android:id="@+id/advertising"
+ style="@style/TrackerSwitchTitle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="20dp"
+ android:theme="@style/SwitchTheme"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/trackers_and_scripts_heading"
+ app:preferenceKey="@string/pref_key_privacy_block_ads"
+ app:preferenceKeyTitle="@string/advertising" />
+
+ <org.mozilla.focus.settings.privacy.PreferenceSwitch
+ android:id="@+id/analytics"
+ style="@style/TrackerSwitchTitle"
+ android:layout_width="match_parent"
+
+ android:layout_height="wrap_content"
+ android:layout_marginTop="20dp"
+ android:theme="@style/SwitchTheme"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/advertising"
+ app:preferenceKey="@string/pref_key_privacy_block_analytics"
+ app:preferenceKeyTitle="@string/analytics" />
+
+ <org.mozilla.focus.settings.privacy.PreferenceSwitch
+ android:id="@+id/social"
+ style="@style/TrackerSwitchTitle"
+ android:layout_width="match_parent"
+
+ android:layout_height="wrap_content"
+ android:layout_marginTop="20dp"
+ android:theme="@style/SwitchTheme"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/analytics"
+ app:preferenceKey="@string/pref_key_privacy_block_social"
+ app:preferenceKeyTitle="@string/social" />
+
+ <org.mozilla.focus.settings.privacy.PreferenceSwitch
+ android:id="@+id/content"
+ style="@style/TrackerSwitchTitle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="20dp"
+ android:theme="@style/SwitchTheme"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/social"
+ app:preferenceKey="@string/pref_key_privacy_block_other3"
+ app:preferenceKeyTitle="@string/content" />
+
+ <com.google.android.material.textview.MaterialTextView
+ android:id="@+id/trackers_count"
+ style="@style/TrackersCount"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="20dp"
+ android:theme="@style/SwitchTheme"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/content" />
+
+ <com.google.android.material.textview.MaterialTextView
+ android:id="@+id/trackers_count_note"
+ style="@style/CaptionText"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="2dp"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/trackers_count" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+</androidx.core.widget.NestedScrollView>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/firstrun_page.xml b/mobile/android/focus-android/app/src/main/res/layout/firstrun_page.xml
new file mode 100644
index 0000000000..dc34362376
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/firstrun_page.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:cardview="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <!-- The actual size of FirstrunCardView is determined in onMeasure() -->
+ <org.mozilla.focus.firstrun.FirstrunCardView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="center"
+ android:layout_marginTop="4dp"
+ android:layout_marginBottom="4dp"
+ android:elevation="4dp"
+ cardview:cardCornerRadius="6dp"
+ cardview:cardBackgroundColor="@color/menuBackground">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:fadingEdgeLength="12sp"
+ android:fillViewport="true"
+ android:requiresFadingEdge="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="top"
+ android:orientation="vertical">
+
+ <ImageView
+ android:id="@+id/image"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ android:layout_marginBottom="24dp"
+ tools:src="@drawable/onboarding_img1" />
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="24dp"
+ android:layout_marginEnd="24dp"
+ android:gravity="center"
+ android:lineSpacingMultiplier="1.25"
+ android:textColor="@color/primaryText"
+ android:textStyle="bold"
+ android:textSize="18sp"
+ tools:text="@string/firstrun_tracking_title" />
+
+ <TextView
+ android:id="@+id/text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="24dp"
+ android:layout_marginEnd="24dp"
+ android:layout_marginTop="16dp"
+ android:gravity="center"
+ android:lineSpacingMultiplier="1.25"
+ android:textColor="@color/secondaryText"
+ android:textSize="14sp"
+ tools:text="@string/firstrun_tracking_text" />
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1" />
+
+ </LinearLayout>
+
+ </ScrollView>
+
+ <Button
+ android:id="@+id/button"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom"
+ android:background="?android:attr/selectableItemBackground"
+ android:textColor="@color/accentBright"
+ android:textSize="16sp"
+ tools:text="@string/firstrun_next_button" />
+
+ </LinearLayout>
+
+ </org.mozilla.focus.firstrun.FirstrunCardView>
+
+</FrameLayout> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/layout/focus_preference.xml b/mobile/android/focus-android/app/src/main/res/layout/focus_preference.xml
new file mode 100644
index 0000000000..7766535f81
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/focus_preference.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Imported directly from the Android Project:
+ http://androidxref.com/7.1.1_r6/xref/frameworks/support/v7/preference/res/layout-v11/preference.xml
+ title has been modified to allow multiline text. -->
+<!--
+ ~ Copyright (C) 2015 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:gravity="center_vertical"
+ android:baselineAligned="false"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+ <LinearLayout
+ android:id="@+id/icon_frame"
+ android:layout_width="48dp"
+ android:layout_height="48dp"
+ android:gravity="center"
+ android:orientation="horizontal">
+ <ImageView
+ android:id="@android:id/icon"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_marginEnd="16dp"
+ android:alpha="0.8"
+ android:importantForAccessibility="no"
+ app:tint="@color/colorSettingsTint" />
+ </LinearLayout>
+
+ <RelativeLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingTop="10dip"
+ android:paddingBottom="10dip">
+
+ <TextView
+ android:id="@android:id/title"
+ style="@style/Preference.Title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:minHeight="24dp" />
+
+ <TextView
+ android:id="@android:id/summary"
+ style="@style/Preference.Summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@android:id/title"
+ android:layout_alignStart="@android:id/title"
+ android:maxLines="10"
+ android:minHeight="16dp" />
+
+ </RelativeLayout>
+
+ <!-- Preference should place its actual preference widget here. -->
+ <LinearLayout android:id="@android:id/widget_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:minWidth="58dip"
+ android:gravity="end|center_vertical"
+ android:orientation="vertical" />
+
+</LinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/focus_preference_category_no_title.xml b/mobile/android/focus-android/app/src/main/res/layout/focus_preference_category_no_title.xml
new file mode 100644
index 0000000000..05b3f61fb9
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/focus_preference_category_no_title.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@android:id/title"
+ android:layout_width="match_parent"
+ android:layout_height="0dp" />
diff --git a/mobile/android/focus-android/app/src/main/res/layout/focus_preference_compose_layout.xml b/mobile/android/focus-android/app/src/main/res/layout/focus_preference_compose_layout.xml
new file mode 100644
index 0000000000..775192e4ee
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/focus_preference_compose_layout.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<androidx.compose.ui.platform.ComposeView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/tool_tip_content"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+</androidx.compose.ui.platform.ComposeView>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/focus_preference_left_checkbox.xml b/mobile/android/focus-android/app/src/main/res/layout/focus_preference_left_checkbox.xml
new file mode 100644
index 0000000000..266be4064d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/focus_preference_left_checkbox.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="48dp"
+ android:layout_marginBottom="8dp"
+ android:clickable="true"
+ android:focusable="true"
+ android:gravity="center_vertical"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp">
+
+ <LinearLayout
+ android:id="@android:id/widget_frame"
+ android:layout_width="48dp"
+ android:layout_height="0dp"
+ android:gravity="center_vertical"
+ android:orientation="vertical"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="8dp"
+ style="@style/Preference.Title"
+ app:layout_constraintBottom_toTopOf="@android:id/summary"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@android:id/widget_frame"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_chainStyle="packed" />
+
+ <TextView
+ android:id="@android:id/summary"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="8dp"
+ style="@style/Preference.Summary"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@android:id/widget_frame"
+ app:layout_constraintTop_toBottomOf="@android:id/title"
+ app:layout_constraintVertical_chainStyle="packed" />
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/focus_preference_new_tab.xml b/mobile/android/focus-android/app/src/main/res/layout/focus_preference_new_tab.xml
new file mode 100644
index 0000000000..449cce72b3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/focus_preference_new_tab.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Imported directly from the Android Project:
+ http://androidxref.com/7.1.1_r6/xref/frameworks/support/v7/preference/res/layout-v11/preference.xml
+ title has been modified to allow multiline text. -->
+<!--
+ ~ Copyright (C) 2015 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:gravity="center_vertical"
+ android:baselineAligned="false"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+
+ <RelativeLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingTop="16dip"
+ android:paddingBottom="16dip">
+
+ <TextView android:id="@android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceListItem" />
+
+ <TextView android:id="@android:id/summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@android:id/title"
+ android:layout_alignStart="@android:id/title"
+ android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+ android:textColor="?android:attr/textColorSecondary"
+ android:maxLines="10" />
+
+ </RelativeLayout>
+
+ <LinearLayout
+ android:id="@+id/icon_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:gravity="end|center_vertical"
+ android:orientation="horizontal">
+ <ImageView
+ android:id="@android:id/icon"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:importantForAccessibility="no"
+ android:layout_marginEnd="16dp" />
+ </LinearLayout>
+ <!-- Preference should place its actual preference widget here. -->
+ <LinearLayout android:id="@android:id/widget_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:minWidth="58dip"
+ android:gravity="end|center_vertical"
+ android:orientation="vertical" />
+
+</LinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/focus_preference_no_icon.xml b/mobile/android/focus-android/app/src/main/res/layout/focus_preference_no_icon.xml
new file mode 100644
index 0000000000..2a43771ef3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/focus_preference_no_icon.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:gravity="center_vertical"
+ android:baselineAligned="false"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+
+ <RelativeLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingTop="16dip"
+ android:paddingBottom="16dip">
+
+ <TextView android:id="@android:id/title"
+ style="@style/Preference.Title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"/>
+
+ <TextView android:id="@android:id/summary"
+ style="@style/Preference.Summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@android:id/title"
+ android:layout_alignStart="@android:id/title"
+ android:maxLines="10" />
+
+ </RelativeLayout>
+
+ <!-- Preference should place its actual preference widget here. -->
+ <LinearLayout android:id="@android:id/widget_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:minWidth="58dip"
+ android:gravity="end|center_vertical"
+ android:orientation="vertical" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/layout/focus_snackbar.xml b/mobile/android/focus-android/app/src/main/res/layout/focus_snackbar.xml
new file mode 100644
index 0000000000..27c9437281
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/focus_snackbar.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/snackbar_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_margin="8dp"
+ android:background="@drawable/focus_snackbar_background"
+ android:elevation="4dp"
+ android:minHeight="48dp"
+ android:orientation="horizontal"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp">
+
+ <TextView
+ android:id="@+id/snackbar_text"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:letterSpacing="0.05"
+ android:maxLines="2"
+ android:paddingTop="8dp"
+ android:paddingBottom="8dp"
+ android:textAlignment="textStart"
+ android:textColor="@color/snackbarTextColor"
+ android:textSize="14sp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toStartOf="@id/snackbar_action"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:text="Custom Focus Snackbar" />
+
+ <Button
+ android:id="@+id/snackbar_action"
+ style="@style/Widget.AppCompat.Button.Borderless"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="16dp"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:letterSpacing="0.05"
+ android:minWidth="48dp"
+ android:minHeight="48dp"
+ android:paddingTop="8dp"
+ android:paddingBottom="8dp"
+ android:textAlignment="textEnd"
+ android:textAllCaps="true"
+ android:textColor="@color/snackbarActionText"
+ android:textSize="14sp"
+ android:visibility="gone"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@id/snackbar_text"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:text="Action text"
+ tools:visibility="visible" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+</FrameLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/fragment_about.xml b/mobile/android/focus-android/app/src/main/res/layout/fragment_about.xml
new file mode 100644
index 0000000000..ccd80790d1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/fragment_about.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/settings_background"
+ android:orientation="vertical"
+ android:padding="@dimen/preference_padding_horizontal">
+
+ <androidx.compose.ui.platform.ComposeView
+ android:id="@+id/about_page_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+
+</LinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/fragment_about_libraries.xml b/mobile/android/focus-android/app/src/main/res/layout/fragment_about_libraries.xml
new file mode 100644
index 0000000000..8c301b663f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/fragment_about_libraries.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/about_libraries"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ tools:context="org.mozilla.focus.settings.AboutLibrariesFragment">
+ <ListView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:id="@+id/about_libraries_listview" />
+</LinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/fragment_autocomplete_add_domain.xml b/mobile/android/focus-android/app/src/main/res/layout/fragment_autocomplete_add_domain.xml
new file mode 100644
index 0000000000..8400731334
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/fragment_autocomplete_add_domain.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/settings_background"
+ android:orientation="vertical"
+ android:padding="8dp">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:text="@string/preference_autocomplete_add_title"
+ android:textColor="@color/colorAccentSettings" />
+
+ <EditText
+ android:id="@+id/domainView"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/preference_autocomplete_add_hint"
+ android:imeOptions="actionGo|flagNoExtractUi|flagNoFullscreen"
+ android:importantForAutofill="no"
+ android:inputType="textUri"
+ android:lines="1"
+ android:paddingStart="8dp"
+ android:paddingTop="8dp"
+ android:paddingEnd="8dp"
+ android:paddingBottom="8dp"
+ tools:targetApi="o" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:text="@string/preference_autocomplete_add_example2" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/layout/fragment_autocomplete_customdomains.xml b/mobile/android/focus-android/app/src/main/res/layout/fragment_autocomplete_customdomains.xml
new file mode 100644
index 0000000000..2cf339cce2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/fragment_autocomplete_customdomains.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/domainList"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/settings_background"
+ android:orientation="vertical" />
+
diff --git a/mobile/android/focus-android/app/src/main/res/layout/fragment_browser.xml b/mobile/android/focus-android/app/src/main/res/layout/fragment_browser.xml
new file mode 100644
index 0000000000..296f833810
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/fragment_browser.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <LinearLayout
+ android:id="@+id/browser_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <View
+ android:id="@+id/status_bar_background"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:background="@drawable/background_gradient" />
+
+ <org.mozilla.focus.widget.ResizableKeyboardCoordinatorLayout
+ android:layout_marginTop="0dp"
+ android:id="@+id/main_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:clipChildren="false">
+
+ <mozilla.components.concept.engine.EngineView
+ tools:ignore="Instantiatable"
+ android:id="@+id/engineView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:focusable="true"
+ android:focusableInTouchMode="true"
+ android:scrollbarThumbVertical="@drawable/scrollbar_thumb" />
+
+ <FrameLayout
+ android:id="@+id/crash_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/destructive"
+ android:visibility="gone"/>
+
+ <mozilla.components.browser.toolbar.BrowserToolbar
+ android:id="@+id/browserToolbar"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/browser_toolbar_height"
+ android:layout_gravity="top"
+ android:background="@drawable/background_gradient"
+ android:clickable="true"
+ android:elevation="4dp"
+ android:focusable="true"
+ android:focusableInTouchMode="true"
+ app:browserToolbarClearColor="?primaryText"
+ app:browserToolbarInsecureColor="?primaryText"
+ app:browserToolbarMenuColor="?primaryText"
+ app:browserToolbarProgressBarGravity="bottom"
+ app:browserToolbarSecureColor="?primaryText" />
+
+ <mozilla.components.feature.findinpage.view.FindInPageBar
+ android:id="@+id/find_in_page"
+ android:layout_width="match_parent"
+ android:elevation="10dp"
+ android:layout_height="56dp"
+ android:padding="4dp"
+ android:background="@color/colorPrimary"
+ app:findInPageQueryHintTextColor="@color/secondaryText"
+ app:findInPageNoMatchesTextColor="@color/error"
+ app:findInPageButtonsTint="@color/primaryText"
+ app:findInPageResultCountTextColor="@color/primaryText"
+ android:visibility="gone" />
+
+ </org.mozilla.focus.widget.ResizableKeyboardCoordinatorLayout>
+ </LinearLayout>
+
+ <FrameLayout
+ android:id="@+id/popup_tint"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:alpha=".5"
+ android:background="@color/colorPrimary"
+ android:visibility="gone" />
+
+ <FrameLayout
+ android:id="@+id/video_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorPrimary"
+ android:visibility="gone" />
+</FrameLayout> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/layout/fragment_crash_reporter.xml b/mobile/android/focus-android/app/src/main/res/layout/fragment_crash_reporter.xml
new file mode 100644
index 0000000000..503d4563b4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/fragment_crash_reporter.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<androidx.constraintlayout.widget.ConstraintLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/photonGrey10">
+
+ <View
+ android:id="@+id/background"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_marginTop="8dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintDimensionRatio="1:1"
+ app:layout_constraintWidth_percent="0.6"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <TextView
+ android:id="@+id/headline"
+ android:layout_width="300dp"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="12dp"
+ android:lineSpacingExtra="8sp"
+ android:singleLine="false"
+ android:text="@string/tab_crash_report_headline"
+ android:textAlignment="center"
+ android:textColor="@android:color/black"
+ android:textSize="20sp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/background" />
+
+ <TextView
+ android:id="@+id/description"
+ android:layout_width="300dp"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:lineSpacingExtra="7sp"
+ android:singleLine="false"
+ android:text="@string/tab_crash_report_description"
+ android:textColor="@android:color/black"
+ android:textSize="15sp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/headline" />
+
+ <CheckBox
+ android:id="@+id/sendCrashCheckbox"
+ android:layout_width="0dp"
+ android:layout_height="32dp"
+ android:layout_marginBottom="24dp"
+ android:buttonTint="@color/colorCrashAccent"
+ android:checked="true"
+ android:text="@string/crash_report_send_crash_label"
+ android:textColor="@android:color/black"
+ android:textSize="15sp"
+ app:layout_constraintBottom_toTopOf="@id/closeTabButton"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintWidth_percent="0.8"
+ tools:text="@string/crash_report_send_crash_label" />
+
+ <Button
+ android:id="@+id/closeTabButton"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="26dp"
+ android:layout_marginEnd="26dp"
+ android:layout_marginBottom="24dp"
+ android:backgroundTint="@color/colorCrashAccent"
+ android:text="@string/tab_crash_report_close_tab_button_label"
+ android:textFontWeight="600"
+ android:textSize="14sp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintWidth_percent="0.8" />
+</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/layout/fragment_exceptions_domains.xml b/mobile/android/focus-android/app/src/main/res/layout/fragment_exceptions_domains.xml
new file mode 100644
index 0000000000..7cd5dbd52d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/fragment_exceptions_domains.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/settings_background"
+ android:orientation="vertical"
+ android:padding="@dimen/preference_padding_horizontal"
+ android:weightSum="1">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingBottom="@dimen/preference_padding_vertical"
+ android:text="@string/preference_exceptions_description"
+ android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+ android:textColor="?android:attr/textColorSecondary" />
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/exceptionList"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="0.9"
+ android:orientation="vertical" />
+
+ <Button
+ android:id="@+id/removeAllExceptions"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingTop="@dimen/preference_padding_vertical"
+ android:paddingBottom="@dimen/preference_padding_vertical"
+ android:text="@string/preference_exceptions_remove_all_button_label"
+ app:backgroundTint="@color/colorErase" />
+</LinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/fragment_firstrun.xml b/mobile/android/focus-android/app/src/main/res/layout/fragment_firstrun.xml
new file mode 100644
index 0000000000..074033be3c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/fragment_firstrun.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/background"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/background_gradient"
+ android:orientation="vertical"
+ android:paddingTop="25dp">
+
+ <Button
+ android:id="@+id/skip"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:text="@string/firstrun_skip_button"
+ android:textColor="@color/primaryText" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <androidx.viewpager.widget.ViewPager
+ android:id="@+id/pager"
+ android:layout_marginTop="24dp"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1" />
+
+ <com.google.android.material.tabs.TabLayout
+ android:id="@+id/tabs"
+ android:layout_width="match_parent"
+ android:layout_height="16dp"
+ android:layout_gravity="bottom"
+ android:layout_marginBottom="16dp"
+ android:importantForAccessibility="noHideDescendants"
+ app:tabBackground="@drawable/indicator_onboarding"
+ app:tabGravity="center"
+ app:tabIndicatorHeight="0dp"
+ app:tabPadding="10dp" />
+
+ </LinearLayout>
+
+</FrameLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/fragment_info.xml b/mobile/android/focus-android/app/src/main/res/layout/fragment_info.xml
new file mode 100644
index 0000000000..c35e975205
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/fragment_info.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+ <mozilla.components.concept.engine.EngineView
+ android:id="@+id/webview"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"/>
+ <ProgressBar
+ android:id="@+id/progress"
+ style="@android:style/Widget.Material.ProgressBar.Horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:layout_gravity="top"
+ android:importantForAccessibility="yes"/>
+</FrameLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/fragment_open_with.xml b/mobile/android/focus-android/app/src/main/res/layout/fragment_open_with.xml
new file mode 100644
index 0000000000..8c6e4ce405
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/fragment_open_with.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="56dp"
+ android:text="@string/menu_open_with_a_browser2"
+ android:gravity="center_vertical"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp"
+ android:textColor="@color/primaryText"
+ android:textSize="16sp" />
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/apps"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+</LinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/fragment_search_suggestions.xml b/mobile/android/focus-android/app/src/main/res/layout/fragment_search_suggestions.xml
new file mode 100644
index 0000000000..081591fca4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/fragment_search_suggestions.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<org.mozilla.focus.widget.ResizableKeyboardLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ tools:context="org.mozilla.focus.searchsuggestions.ui.SearchSuggestionsFragment">
+
+ <androidx.core.widget.NestedScrollView
+ android:id="@+id/scrollView"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:scrollbars="vertical"
+ android:fadeScrollbars="false">
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/enable_search_suggestions_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/background_search_suggestion_section"
+ android:paddingStart="16dp"
+ android:paddingTop="16dp"
+ android:paddingEnd="16dp">
+
+ <TextView
+ android:id="@+id/enable_search_suggestions_title"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:fontFamily="@font/metropolis_bold"
+ android:letterSpacing="0.03"
+ android:lineSpacingExtra="1sp"
+ android:text="@string/enable_search_suggestion_title2"
+ android:textColor="@color/searchSuggestionPromptTitleColor"
+ android:textSize="16sp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <TextView
+ android:id="@+id/enable_search_suggestions_subtitle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="12dp"
+ android:layout_marginEnd="24dp"
+ android:layout_marginBottom="15dp"
+ android:clickable="true"
+ android:focusable="true"
+ android:lineSpacingExtra="4sp"
+ android:text="@string/enable_search_suggestion_description"
+ android:textColor="@color/searchSuggestionPromptSubtitleColor"
+ android:textSize="14sp"
+ app:layout_constraintBottom_toTopOf="@+id/disable_search_suggestions_button"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/enable_search_suggestions_title" />
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/disable_search_suggestions_button"
+ style="@style/MetropolisButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:layout_marginEnd="20dp"
+ android:text="@string/enable_search_suggestions_no"
+ android:textColor="@color/searchSuggestionPromptButtonTextColor"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toStartOf="@+id/enable_search_suggestions_button" />
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/enable_search_suggestions_button"
+ style="@style/MetropolisButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:layout_marginEnd="20dp"
+ android:text="@string/enable_search_suggestions_yes"
+ android:textColor="@color/searchSuggestionPromptButtonTextColor"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ </androidx.core.widget.NestedScrollView>
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/no_suggestions_container"
+ android:background="@drawable/background_search_suggestion_section"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="16dp"
+ android:visibility="gone">
+
+ <TextView
+ android:id="@+id/no_suggestions_message"
+ android:textColor="@color/searchSuggestionPromptTitleColor"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:text="@string/no_suggestions_message"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <Button
+ android:id="@+id/dismiss_no_suggestions_message"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:minWidth="48dp"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="4dp"
+ android:text="@string/dismiss_no_suggestions_prompt_button"
+ android:textColor="@color/searchSuggestionPromptButtonTextColor"
+ android:layout_marginTop="8dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/no_suggestions_message" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+ <androidx.compose.ui.platform.ComposeView
+ android:id="@+id/search_suggestions_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+
+</org.mozilla.focus.widget.ResizableKeyboardLinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/fragment_settings.xml b/mobile/android/focus-android/app/src/main/res/layout/fragment_settings.xml
new file mode 100644
index 0000000000..8471814894
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/fragment_settings.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@android:id/list_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/settings_background"
+ tools:targetApi="n" />
diff --git a/mobile/android/focus-android/app/src/main/res/layout/fragment_studies.xml b/mobile/android/focus-android/app/src/main/res/layout/fragment_studies.xml
new file mode 100644
index 0000000000..ca3e67501b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/fragment_studies.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/settings_background">
+
+ <TextView
+ android:id="@+id/studiesTitle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="72dp"
+ android:clickable="false"
+ android:focusable="false"
+ android:textAppearance="@style/Preference.Title"
+ android:textSize="16sp"
+ app:layout_constraintEnd_toStartOf="@id/studies_switch"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <TextView
+ android:id="@+id/studiesDescription"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="@string/preference_studies_summary"
+ android:textColor="?attr/secondaryText"
+ android:textColorLink="@color/accent"
+ app:layout_constraintEnd_toEndOf="@id/studiesTitle"
+ app:layout_constraintStart_toStartOf="@id/studiesTitle"
+ app:layout_constraintTop_toBottomOf="@id/studiesTitle" />
+
+ <androidx.appcompat.widget.SwitchCompat
+ android:id="@+id/studies_switch"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="16dp"
+ android:minHeight="48dp"
+ android:textOff="@string/preference_state_off"
+ android:textOn="@string/preference_state_on"
+ app:layout_constraintBottom_toBottomOf="@id/studiesDescription"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="@id/studiesTitle" />
+
+ <org.mozilla.focus.settings.privacy.studies.StudiesRecyclerView
+ android:id="@+id/studies_list"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/studiesDescription" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/fragment_urlinput.xml b/mobile/android/focus-android/app/src/main/res/layout/fragment_urlinput.xml
new file mode 100644
index 0000000000..2a5f336e62
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/fragment_urlinput.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/backgroundView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/landingLayout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="@dimen/urlinput_height">
+
+ <androidx.compose.ui.platform.ComposeView
+ android:id="@+id/topSites"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <androidx.appcompat.widget.AppCompatImageView
+ android:id="@+id/logo"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:contentDescription="@string/app_name"
+ android:focusable="false"
+ android:paddingStart="24dp"
+ android:paddingEnd="24dp"
+ android:scaleType="centerInside"
+ app:srcCompat="@drawable/wordmark2"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/topSites" />
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+ <FrameLayout
+ android:id="@+id/urlInputLayout"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/urlinput_height"
+ android:clickable="true"
+ android:clipChildren="false"
+ android:elevation="4dp"
+ android:focusable="true"
+ android:orientation="horizontal">
+
+ <View
+ android:id="@+id/toolbarBackgroundView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/background_gradient" />
+
+ <View
+ android:id="@+id/toolbarBottomBorder"
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:layout_gravity="bottom"
+ android:alpha="0.20"
+ android:background="@color/divider" />
+
+ <FrameLayout
+ android:id="@+id/urlInputContainerView"
+ android:layout_width="match_parent"
+ android:layout_height="56dp"
+ android:layout_gravity="bottom"
+ android:layout_margin="0dp"
+ android:clipChildren="false">
+
+ <View
+ android:id="@+id/urlInputBackgroundView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:visibility="visible" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/background_gradient"
+ android:orientation="horizontal">
+
+ <mozilla.components.browser.toolbar.BrowserToolbar
+ android:id="@+id/browserToolbar"
+ android:layout_width="0dp"
+ android:layout_height="56dp"
+ android:layout_weight="1" />
+
+ <mozilla.components.browser.menu.view.MenuButton
+ android:id="@+id/menuView"
+ android:layout_width="40dp"
+ android:layout_height="56dp" />
+
+ </LinearLayout>
+
+ </FrameLayout>
+
+ </FrameLayout>
+
+ <View
+ android:id="@+id/dismissView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorOverlay"
+ android:contentDescription="@string/content_description_dismiss_input" />
+
+ <FrameLayout
+ android:id="@+id/searchViewContainer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/urlinput_height"
+ android:visibility="gone" />
+
+</FrameLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/item_add_custom_domain.xml b/mobile/android/focus-android/app/src/main/res/layout/item_add_custom_domain.xml
new file mode 100644
index 0000000000..e5e10e80d6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/item_add_custom_domain.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceListItem"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:gravity="center_vertical"
+ android:background="?selectableItemBackground"
+ android:text="@string/preference_autocomplete_action_add" />
diff --git a/mobile/android/focus-android/app/src/main/res/layout/item_app.xml b/mobile/android/focus-android/app/src/main/res/layout/item_app.xml
new file mode 100644
index 0000000000..012e940f09
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/item_app.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- ignore=Overdraw: we're using a (most-of-the-time) transparent background for the touch-ripple
+ effect. That background is item specific (this layout is used as a RecyclerView item), so
+ we can't move the background up to the next layer, hence we need to ignore that lint warning. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ tools:ignore="Overdraw"
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="48dp"
+ android:background="@drawable/background_open_in_item"
+ android:focusable="true"
+ android:clickable="true"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp">
+
+ <ImageView
+ android:id="@+id/icon"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:importantForAccessibility="no"
+ android:layout_gravity="center_vertical"/>
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="0dp"
+ android:layout_height="48dp"
+ android:layout_weight="1"
+ android:layout_marginStart="32dp"
+ android:textColor="@color/primaryText"
+ android:textSize="16sp"
+ android:lines="1"
+ android:ellipsize="end"
+ android:gravity="center_vertical" />
+
+</LinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/item_custom_domain.xml b/mobile/android/focus-android/app/src/main/res/layout/item_custom_domain.xml
new file mode 100644
index 0000000000..953e22c68f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/item_custom_domain.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:clickable="true"
+ android:focusable="true"
+ android:foreground="?selectableItemBackground">
+ <TextView
+ android:id="@+id/domainView"
+ android:orientation="vertical"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceListItem"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:singleLine="true"
+ android:ellipsize="middle"
+ android:gravity="center_vertical"
+ tools:text="mozilla.org" />
+ <ImageView
+ android:id="@+id/handleView"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:src="@drawable/ic_reorder"
+ android:importantForAccessibility="no"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingStart" />
+ <CheckBox
+ android:id="@+id/checkbox"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingStart" />
+</LinearLayout> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/layout/item_indicator_menu_button.xml b/mobile/android/focus-android/app/src/main/res/layout/item_indicator_menu_button.xml
new file mode 100644
index 0000000000..a534662aa1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/item_indicator_menu_button.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <ImageView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="end"
+ android:paddingBottom="8dp"
+ android:paddingEnd="8dp"
+ android:paddingStart="8dp"
+ android:paddingTop="8dp"
+ android:src="@drawable/ic_menu" />
+
+ <ImageView
+ android:id="@+id/dot"
+ android:layout_width="6dp"
+ android:layout_height="6dp"
+ android:layout_marginStart="24dp"
+ android:layout_marginTop="10dp"
+ android:importantForAccessibility="no"
+ android:src="@drawable/highlight_dot" />
+</merge>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/item_install_banner.xml b/mobile/android/focus-android/app/src/main/res/layout/item_install_banner.xml
new file mode 100644
index 0000000000..d7e091bb2f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/item_install_banner.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- ignore=Overdraw: we're using a (most-of-the-time) transparent background for the touch-ripple
+ effect. That background is item specific (this layout is used as a RecyclerView item), so
+ we can't move the background up to the next layer, hence we need to ignore that lint warning. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ tools:ignore="Overdraw"
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="48dp"
+ android:background="@drawable/background_install_banner"
+ android:focusable="true"
+ android:clickable="true"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp">
+
+ <ImageView
+ android:id="@+id/icon"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:importantForAccessibility="no"
+ android:layout_gravity="center_vertical"/>
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="0dp"
+ android:layout_height="48dp"
+ android:layout_weight="1"
+ android:layout_marginStart="32dp"
+ android:textColor="@android:color/white"
+ android:textSize="16sp"
+ android:lines="1"
+ android:text="@string/download_firefox"
+ android:ellipsize="end"
+ android:gravity="center_vertical" />
+
+</LinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/item_session.xml b/mobile/android/focus-android/app/src/main/res/layout/item_session.xml
new file mode 100644
index 0000000000..d7d84be94e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/item_session.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/session_item"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="56dp"
+ android:background="@drawable/background_gradient">
+
+ <TextView
+ android:id="@+id/session_title"
+ android:layout_width="0dp"
+ android:layout_height="56dp"
+ android:drawablePadding="16dp"
+ android:ellipsize="end"
+ android:gravity="start|center_vertical"
+ android:lines="1"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp"
+ android:textColor="@color/primaryText"
+ android:textSize="14sp"
+ app:drawableStartCompat="@drawable/ic_link"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toStartOf="@id/close_button"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:text="www.mozilla.org/en-US/firefox/browsers/mobile/focus/" />
+
+ <ImageView
+ android:id="@+id/close_button"
+ android:layout_width="48dp"
+ android:layout_height="48dp"
+ android:layout_alignParentEnd="true"
+ android:layout_centerVertical="true"
+ android:contentDescription="@string/close_tab"
+ android:scaleType="center"
+ android:src="@drawable/mozac_ic_cross_24"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@id/session_title"
+ app:layout_constraintTop_toTopOf="parent" />
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/menu_item.xml b/mobile/android/focus-android/app/src/main/res/layout/menu_item.xml
new file mode 100644
index 0000000000..19d3c688a8
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/menu_item.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="?android:attr/selectableItemBackground"
+ android:clickable="true"
+ android:focusable="true">
+
+ <androidx.appcompat.widget.AppCompatImageView
+ android:id="@+id/icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="24dp"
+ android:scaleType="centerInside"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toStartOf="@id/title"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <TextView
+ android:id="@+id/title"
+ style="@android:style/TextAppearance.Material.Menu"
+ android:layout_width="0dp"
+ android:layout_height="48dp"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:lines="1"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp"
+ android:textSize="16sp"
+ app:layout_constraintBottom_toBottomOf="@id/icon"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@id/icon"
+ app:layout_constraintTop_toTopOf="@id/icon" />
+
+</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/layout/menu_navigation.xml b/mobile/android/focus-android/app/src/main/res/layout/menu_navigation.xml
new file mode 100644
index 0000000000..0bec4926c3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/menu_navigation.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <ImageButton
+ android:id="@+id/forward"
+ android:layout_width="0dp"
+ android:layout_height="48dp"
+ android:layout_weight="1"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:contentDescription="@string/content_description_forward"
+ android:src="@drawable/mozac_ic_forward_24"/>
+
+ <ImageButton
+ android:id="@+id/refresh"
+ android:layout_width="0dp"
+ android:layout_height="48dp"
+ android:layout_weight="1"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:contentDescription="@string/content_description_reload"
+ android:src="@drawable/mozac_ic_arrow_clockwise_24"/>
+
+ <ImageButton
+ android:id="@+id/stop"
+ android:layout_width="0dp"
+ android:layout_height="48dp"
+ android:layout_weight="1"
+ android:src="@drawable/mozac_ic_stop"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:contentDescription="@string/content_description_stop" />
+</LinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/popup_tabs.xml b/mobile/android/focus-android/app/src/main/res/layout/popup_tabs.xml
new file mode 100644
index 0000000000..02306ddcd7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/popup_tabs.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/card"
+ android:layout_width="280dp"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="@dimen/tab_sheet_end_margin"
+ android:clickable="true"
+ android:elevation="16dp"
+ android:focusable="true"
+ app:cardCornerRadius="4dp">
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/sessions"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ </androidx.cardview.widget.CardView>
+
+</FrameLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/preference_default_browser.xml b/mobile/android/focus-android/app/src/main/res/layout/preference_default_browser.xml
new file mode 100644
index 0000000000..c97391ed0d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/preference_default_browser.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<com.google.android.material.switchmaterial.SwitchMaterial
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/switch_widget"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:gravity="center_vertical"
+ android:orientation="vertical"
+ android:clickable="false"
+ android:focusable="false"/>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/preference_manual_add_search_engine.xml b/mobile/android/focus-android/app/src/main/res/layout/preference_manual_add_search_engine.xml
new file mode 100644
index 0000000000..56493ca633
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/preference_manual_add_search_engine.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:padding="@dimen/preference_root_layout_padding"
+ android:importantForAutofill="noExcludeDescendants">
+
+ <com.google.android.material.textfield.TextInputLayout
+ android:id="@+id/edit_engine_name_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingBottom="@dimen/textinputlayout_spacing">
+ <com.google.android.material.textfield.TextInputEditText
+ android:id="@+id/edit_engine_name"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/search_add_manually_name_hint"
+ android:inputType="text">
+ <requestFocus/>
+ </com.google.android.material.textfield.TextInputEditText>
+ </com.google.android.material.textfield.TextInputLayout>
+
+ <com.google.android.material.textfield.TextInputLayout
+ android:id="@+id/edit_search_string_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+ <com.google.android.material.textfield.TextInputEditText
+ android:id="@+id/edit_search_string"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/search_add_manually_string"
+ android:inputType="text" />
+ </com.google.android.material.textfield.TextInputLayout>
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/search_add_manually_example"
+ android:textColor="@android:color/tertiary_text_dark"
+ android:paddingStart="5dp"
+ android:paddingLeft="5dp"/>
+
+ <ProgressBar
+ android:id="@+id/progress"
+ style="@style/Widget.AppCompat.ProgressBar"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ android:visibility="gone"/>
+
+</LinearLayout> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/layout/preference_radio_button.xml b/mobile/android/focus-android/app/src/main/res/layout/preference_radio_button.xml
new file mode 100644
index 0000000000..c88b35f36c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/preference_radio_button.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<androidx.constraintlayout.widget.ConstraintLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/constraintLayout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:baselineAligned="false">
+
+ <RadioButton
+ android:id="@+id/radio_button"
+ android:layout_width="@dimen/radio_button_preference_height"
+ android:layout_height="@dimen/radio_button_preference_width"
+ android:background="@android:color/transparent"
+ android:layout_gravity="start"
+ android:button="@null"
+ android:clickable="false"
+ android:focusable="false"
+ android:layout_marginStart="@dimen/radio_button_preference_start_margin"
+ tools:drawableStart="?android:attr/listChoiceIndicatorSingle"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"/>
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="0dp"
+ android:layout_marginStart="@dimen/radio_button_preference_title_margins"
+ android:layout_height="wrap_content"
+ android:gravity="center|start"
+ android:layout_marginEnd="@dimen/radio_button_preference_title_margins"
+ tools:text="@tools:sample/lorem"
+ android:textAlignment="viewStart"
+ android:textAppearance="?android:attr/textAppearanceListItem"
+ app:layout_constraintTop_toTopOf="@id/radio_button"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@id/radio_button"
+ app:layout_constraintBottom_toBottomOf="@id/radio_button"/>
+
+ <TextView
+ android:id="@+id/widget_summary"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:textAlignment="viewStart"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="?android:attr/textColorSecondary"
+ tools:text="@tools:sample/lorem"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="@id/title"
+ app:layout_constraintTop_toBottomOf="@id/title"
+ app:layout_constraintStart_toStartOf="@id/title" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/preference_screen_header_layout.xml b/mobile/android/focus-android/app/src/main/res/layout/preference_screen_header_layout.xml
new file mode 100644
index 0000000000..1d763e1496
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/preference_screen_header_layout.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<com.google.android.material.textview.MaterialTextView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@android:id/title"
+ style="@style/PreferenceScreenHeader"
+ android:layout_width="match_parent"
+ android:layout_height="48dp"
+ android:layout_marginStart="16dp"
+ android:gravity="start|center_vertical"
+ android:textAlignment="viewStart" />
diff --git a/mobile/android/focus-android/app/src/main/res/layout/preference_search_engine_chooser.xml b/mobile/android/focus-android/app/src/main/res/layout/preference_search_engine_chooser.xml
new file mode 100644
index 0000000000..644da9dfb2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/preference_search_engine_chooser.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <RadioGroup android:id="@+id/search_engine_group"
+ android:paddingTop="@dimen/preference_padding_top"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+</LinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/preference_section_header_layout.xml b/mobile/android/focus-android/app/src/main/res/layout/preference_section_header_layout.xml
new file mode 100644
index 0000000000..526cb4b007
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/preference_section_header_layout.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<com.google.android.material.textview.MaterialTextView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@android:id/title"
+ style="@style/PreferenceSectionHeader"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="16dp"
+ android:layout_marginTop="20dp"
+ android:gravity="start|center_vertical"
+ android:textAlignment="viewStart"
+ tools:text="Preference header"
+ tools:textColor="@color/photonGrey50" />
diff --git a/mobile/android/focus-android/app/src/main/res/layout/preference_switch_learn_more.xml b/mobile/android/focus-android/app/src/main/res/layout/preference_switch_learn_more.xml
new file mode 100644
index 0000000000..fcffdde75d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/preference_switch_learn_more.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:baselineAligned="false"
+ android:gravity="center_vertical"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:orientation="horizontal"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+
+ <RelativeLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingTop="16dip"
+ android:paddingBottom="16dip">
+
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceListItem"
+ tools:text="@string/preference_mozilla_telemetry2" />
+
+ <TextView
+ android:id="@android:id/summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@android:id/title"
+ android:layout_alignStart="@android:id/title"
+ android:maxLines="10"
+ android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+ android:textColor="?android:attr/textColorSecondary"
+ tools:text="@string/preference_mozilla_telemetry_summary2" />
+
+ <TextView
+ android:id="@+id/link"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@android:id/summary"
+ android:layout_alignStart="@android:id/title"
+ android:lineSpacingExtra="1sp"
+ android:paddingTop="4dp"
+ android:paddingBottom="4dp"
+ android:text="@string/preference_mozilla_telemetry_summary"
+ android:textColor="@color/preference_learn_more_link"
+ android:textSize="12sp" />
+
+ </RelativeLayout>
+
+ <LinearLayout
+ android:id="@android:id/widget_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:gravity="end|center_vertical"
+ android:minWidth="58dip"
+ android:orientation="vertical" />
+
+</LinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/search_engine_checkbox_button.xml b/mobile/android/focus-android/app/src/main/res/layout/search_engine_checkbox_button.xml
new file mode 100644
index 0000000000..7b4463e1ae
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/search_engine_checkbox_button.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<CheckBox xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/checkbox"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/preference_row_height"
+ android:drawableEnd="?android:listChoiceIndicatorMultiple"
+ android:drawablePadding="@dimen/preference_drawable_padding"
+ android:background="?android:attr/selectableItemBackground"
+ android:foreground="@drawable/preference_multiselect_search_engine_foreground"
+ android:paddingBottom="@dimen/preference_padding_top"
+ android:paddingEnd="@dimen/preference_padding_horizontal"
+ android:paddingStart="@dimen/preference_padding_horizontal"
+ android:paddingTop="@dimen/preference_padding_top" />
diff --git a/mobile/android/focus-android/app/src/main/res/layout/search_engine_radio_button.xml b/mobile/android/focus-android/app/src/main/res/layout/search_engine_radio_button.xml
new file mode 100644
index 0000000000..7275caef93
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/search_engine_radio_button.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<RadioButton xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/radio_button"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/preference_row_height"
+ android:background="?android:attr/selectableItemBackground"
+ android:button="@null"
+ android:textColor="@color/selected_search_engine_state"
+ android:drawablePadding="@dimen/preference_drawable_padding"
+ android:paddingBottom="@dimen/preference_padding_vertical"
+ android:paddingEnd="@dimen/preference_padding_horizontal"
+ android:paddingStart="@dimen/preference_padding_horizontal"
+ android:paddingTop="@dimen/preference_padding_vertical"
+ android:textAlignment="viewStart"/>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/studies_section_item.xml b/mobile/android/focus-android/app/src/main/res/layout/studies_section_item.xml
new file mode 100644
index 0000000000..5efbefe5b4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/studies_section_item.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <View
+ android:id="@+id/divider"
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:layout_marginTop="7dp"
+ android:background="?android:attr/listDivider"
+ android:visibility="gone" />
+
+ <com.google.android.material.textview.MaterialTextView
+ android:id="@+id/title"
+ style="@style/Preference.Category"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="72dp"
+ android:background="?android:attr/selectableItemBackground"
+ android:gravity="start|center_vertical"
+ android:paddingVertical="8dp" />
+</LinearLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/switch_with_description.xml b/mobile/android/focus-android/app/src/main/res/layout/switch_with_description.xml
new file mode 100644
index 0000000000..6170ef78fe
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/switch_with_description.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<androidx.constraintlayout.widget.ConstraintLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <TextView
+ android:id="@+id/title"
+ style="@style/SwitchTitle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="44dp"
+ android:layout_marginTop="4dp"
+ android:layout_marginEnd="64dp"
+ android:clickable="false"
+ android:focusable="false"
+ android:importantForAccessibility="no"
+ app:layout_constraintBottom_toTopOf="@id/description"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_chainStyle="packed"
+ tools:text="Title" />
+
+ <TextView
+ android:id="@+id/description"
+ style="@style/SwitchDescription"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="4dp"
+ android:clickable="false"
+ android:focusable="false"
+ android:importantForAccessibility="no"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="@id/title"
+ app:layout_constraintStart_toStartOf="@id/title"
+ app:layout_constraintTop_toBottomOf="@id/title"
+ app:layout_constraintVertical_chainStyle="packed"
+ tools:text="Description" />
+
+ <com.google.android.material.switchmaterial.SwitchMaterial
+ android:id="@+id/switch_widget"
+ android:theme="@style/SwitchTheme"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ app:layout_constraintBottom_toBottomOf="@id/description"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/mobile/android/focus-android/app/src/main/res/layout/toolbar.xml b/mobile/android/focus-android/app/src/main/res/layout/toolbar.xml
new file mode 100644
index 0000000000..5ca4ecfcf7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/layout/toolbar.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<androidx.appcompat.widget.Toolbar
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@color/settings_background"/>
diff --git a/mobile/android/focus-android/app/src/main/res/menu/menu_autocomplete_add.xml b/mobile/android/focus-android/app/src/main/res/menu/menu_autocomplete_add.xml
new file mode 100644
index 0000000000..cbc3acae6a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/menu/menu_autocomplete_add.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+ <item android:id="@+id/save"
+ android:title="@string/action_save"
+ app:showAsAction="always"/>
+</menu>
diff --git a/mobile/android/focus-android/app/src/main/res/menu/menu_autocomplete_list.xml b/mobile/android/focus-android/app/src/main/res/menu/menu_autocomplete_list.xml
new file mode 100644
index 0000000000..6e4b2f2a5e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/menu/menu_autocomplete_list.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+ <item android:id="@+id/remove"
+ android:title="@string/preference_autocomplete_menu_remove"
+ app:showAsAction="never"/>
+</menu>
diff --git a/mobile/android/focus-android/app/src/main/res/menu/menu_autocomplete_remove.xml b/mobile/android/focus-android/app/src/main/res/menu/menu_autocomplete_remove.xml
new file mode 100644
index 0000000000..52c30c75d0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/menu/menu_autocomplete_remove.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+ <item android:id="@+id/remove"
+ android:icon="@drawable/mozac_ic_delete_24"
+ android:title="@string/preference_autocomplete_action_remove_content_description"
+ android:contentDescription="@string/preference_autocomplete_action_remove_content_description"
+ app:showAsAction="always"/>
+</menu>
diff --git a/mobile/android/focus-android/app/src/main/res/menu/menu_exceptions_list.xml b/mobile/android/focus-android/app/src/main/res/menu/menu_exceptions_list.xml
new file mode 100644
index 0000000000..630d3f3fa4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/menu/menu_exceptions_list.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+ <item android:id="@+id/remove"
+ android:title="@string/preference_exceptions_menu_remove"
+ app:showAsAction="never"/>
+</menu>
diff --git a/mobile/android/focus-android/app/src/main/res/menu/menu_remove_search_engines.xml b/mobile/android/focus-android/app/src/main/res/menu/menu_remove_search_engines.xml
new file mode 100644
index 0000000000..35848abd98
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/menu/menu_remove_search_engines.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+ <item android:id="@+id/menu_delete_items"
+ android:title="@string/preference_search_remove"
+ android:icon="@drawable/mozac_ic_delete_24"
+ app:showAsAction="always"/>
+</menu>
diff --git a/mobile/android/focus-android/app/src/main/res/menu/menu_search_engine_manual_add.xml b/mobile/android/focus-android/app/src/main/res/menu/menu_search_engine_manual_add.xml
new file mode 100644
index 0000000000..045942b074
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/menu/menu_search_engine_manual_add.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <!-- We modify the Setting's theme's actionButtonStyle in order to change the padding between
+ these two items - not great, but it works. Details in @style/SettingsActionButtonStyle. -->
+ <item android:id="@+id/learn_more"
+ android:icon="@drawable/mozac_ic_information_fill_24"
+ android:title="@string/preference_autocomplete_learn_more"
+ app:showAsAction="ifRoom"/>
+
+ <item android:id="@+id/menu_save_search_engine"
+ android:title="@string/search_add_manually_save"
+ app:showAsAction="ifRoom"/>
+</menu>
diff --git a/mobile/android/focus-android/app/src/main/res/menu/menu_search_engines.xml b/mobile/android/focus-android/app/src/main/res/menu/menu_search_engines.xml
new file mode 100644
index 0000000000..743599f6f5
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/menu/menu_search_engines.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+ <item android:id="@+id/menu_remove_search_engines"
+ android:title="@string/preference_search_remove"
+ app:showAsAction="never"/>
+
+ <item android:id="@+id/menu_restore_default_engines"
+ android:title="@string/preference_search_restore"
+ app:showAsAction="never"/>
+</menu> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/mobile/android/focus-android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000000..c7743a9582
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@drawable/ic_launcher_background"/>
+ <foreground android:drawable="@drawable/ic_launcher_foreground"/>
+</adaptive-icon> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/mobile/android/focus-android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000000..3241608b37
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..047ad9222f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/mobile/android/focus-android/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000000..ebc18129a9
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..01169ef157
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/mobile/android/focus-android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000000..43ea507a94
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..1d6e03c76f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/mobile/android/focus-android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000..e6c4f25d44
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..171320609d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/mobile/android/focus-android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000..522029dbe9
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..19fc10c2cd
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/main/res/raw/about.html b/mobile/android/focus-android/app/src/main/res/raw/about.html
new file mode 100644
index 0000000000..7e24fcbca7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/raw/about.html
@@ -0,0 +1,55 @@
+<!doctype html>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ - You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<head>
+<meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1">
+<style>
+ body, html {
+ background: #221F1F;
+ color: #FFFFFF;
+ font-family: sans-serif;
+ line-height: 24px;
+ font-size: 14px;
+ }
+
+ body{
+ padding-left: 24px;
+ padding-right: 24px;
+ margin-left: 0px;
+ margin-right: 0px;
+ }
+
+ a {
+ color: #0A9AF4;
+ }
+
+ /* Make only about page links ("learn more") white */
+ .about a {
+ color: #FFFFFF;
+ }
+
+ p.subtitle {
+ text-align: center;
+ opacity: .7;
+ margin: 0;
+ }
+
+ img#wordmark {
+ /* We need to set the dp size here, because by default webview assumes the image is not
+ density specific (but since it's an android resource, we get a density specific version). */
+ width: 180px;
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ padding-top: 24px;
+ }
+</style>
+</head>
+<html>
+<body class="about" dir="%dir%">
+<img src="%wordmark%" id="wordmark"/>
+<p class="subtitle">%about-version%</p>
+%about-content%
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/main/res/raw/gpl.html b/mobile/android/focus-android/app/src/main/res/raw/gpl.html
new file mode 100644
index 0000000000..1af9930b33
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/raw/gpl.html
@@ -0,0 +1,713 @@
+<!DOCTYPE HTML>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ - You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<html lang="en">
+ <head>
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
+ <title>GNU General Public License 3.0</title>
+ <link rel="stylesheet" type="text/css" href="style.css">
+ <style type="text/css">
+ .path {
+ font-family: monospace;
+ }
+
+ dt {
+ font-weight: bold;
+ }
+ </style>
+ <link rel="stylesheet" href="chrome://global/skin/about.css" type="text/css">
+ </head>
+
+<body id="lic-info" class="aboutPageWideContainer">
+
+<h1 id="gpl-3.0">GNU General Public License 3.0</h1>
+
+<pre>Version 3, 29 June 2007
+
+Copyright &copy; 2007 Free Software Foundation, Inc.
+&lt;<a href="http://fsf.org/">http://fsf.org/</a>&gt;
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.</pre>
+
+<h2><a name="preamble"></a>Preamble</h2>
+
+<p>The GNU General Public License is a free, copyleft license for
+software and other kinds of works.</p>
+
+<p>The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.</p>
+
+<p>When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.</p>
+
+<p>To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.</p>
+
+<p>For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.</p>
+
+<p>Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.</p>
+
+<p>For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.</p>
+
+<p>Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.</p>
+
+<p>Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.</p>
+
+<p>The precise terms and conditions for copying, distribution and
+modification follow.</p>
+
+<h2><a name="terms"></a>TERMS AND CONDITIONS</h2>
+
+<h3><a name="section0"></a>0. Definitions.</h3>
+
+<p>&ldquo;This License&rdquo; refers to version 3 of the GNU General Public License.</p>
+
+<p>&ldquo;Copyright&rdquo; also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.</p>
+
+<p>&ldquo;The Program&rdquo; refers to any copyrightable work licensed under this
+License. Each licensee is addressed as &ldquo;you&rdquo;. &ldquo;Licensees&rdquo; and
+&ldquo;recipients&rdquo; may be individuals or organizations.</p>
+
+<p>To &ldquo;modify&rdquo; a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a &ldquo;modified version&rdquo; of the
+earlier work or a work &ldquo;based on&rdquo; the earlier work.</p>
+
+<p>A &ldquo;covered work&rdquo; means either the unmodified Program or a work based
+on the Program.</p>
+
+<p>To &ldquo;propagate&rdquo; a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.</p>
+
+<p>To &ldquo;convey&rdquo; a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.</p>
+
+<p>An interactive user interface displays &ldquo;Appropriate Legal Notices&rdquo;
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.</p>
+
+<h3><a name="section1"></a>1. Source Code.</h3>
+
+<p>The &ldquo;source code&rdquo; for a work means the preferred form of the work
+for making modifications to it. &ldquo;Object code&rdquo; means any non-source
+form of a work.</p>
+
+<p>A &ldquo;Standard Interface&rdquo; means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.</p>
+
+<p>The &ldquo;System Libraries&rdquo; of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+&ldquo;Major Component&rdquo;, in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.</p>
+
+<p>The &ldquo;Corresponding Source&rdquo; for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.</p>
+
+<p>The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.</p>
+
+<p>The Corresponding Source for a work in source code form is that
+same work.</p>
+
+<h3><a name="section2"></a>2. Basic Permissions.</h3>
+
+<p>All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.</p>
+
+<p>You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.</p>
+
+<p>Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.</p>
+
+<h3><a name="section3"></a>3. Protecting Users' Legal Rights From Anti-Circumvention Law.</h3>
+
+<p>No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.</p>
+
+<p>When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.</p>
+
+<h3><a name="section4"></a>4. Conveying Verbatim Copies.</h3>
+
+<p>You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.</p>
+
+<p>You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.</p>
+
+<h3><a name="section5"></a>5. Conveying Modified Source Versions.</h3>
+
+<p>You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:</p>
+
+<ul>
+<li>a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.</li>
+
+<li>b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ &ldquo;keep intact all notices&rdquo;.</li>
+
+<li>c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.</li>
+
+<li>d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.</li>
+</ul>
+
+<p>A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+&ldquo;aggregate&rdquo; if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.</p>
+
+<h3><a name="section6"></a>6. Conveying Non-Source Forms.</h3>
+
+<p>You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:</p>
+
+<ul>
+<li>a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.</li>
+
+<li>b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.</li>
+
+<li>c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.</li>
+
+<li>d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.</li>
+
+<li>e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.</li>
+</ul>
+
+<p>A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.</p>
+
+<p>A &ldquo;User Product&rdquo; is either (1) a &ldquo;consumer product&rdquo;, which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, &ldquo;normally used&rdquo; refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.</p>
+
+<p>&ldquo;Installation Information&rdquo; for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.</p>
+
+<p>If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).</p>
+
+<p>The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.</p>
+
+<p>Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.</p>
+
+<h3><a name="section7"></a>7. Additional Terms.</h3>
+
+<p>&ldquo;Additional permissions&rdquo; are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.</p>
+
+<p>When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.</p>
+
+<p>Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:</p>
+
+<ul>
+<li>a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or</li>
+
+<li>b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or</li>
+
+<li>c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or</li>
+
+<li>d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or</li>
+
+<li>e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or</li>
+
+<li>f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.</li>
+</ul>
+
+<p>All other non-permissive additional terms are considered &ldquo;further
+restrictions&rdquo; within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.</p>
+
+<p>If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.</p>
+
+<p>Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.</p>
+
+<h3><a name="section8"></a>8. Termination.</h3>
+
+<p>You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).</p>
+
+<p>However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.</p>
+
+<p>Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.</p>
+
+<p>Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.</p>
+
+<h3><a name="section9"></a>9. Acceptance Not Required for Having Copies.</h3>
+
+<p>You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.</p>
+
+<h3><a name="section10"></a>10. Automatic Licensing of Downstream Recipients.</h3>
+
+<p>Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.</p>
+
+<p>An &ldquo;entity transaction&rdquo; is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.</p>
+
+<p>You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.</p>
+
+<h3><a name="section11"></a>11. Patents.</h3>
+
+<p>A &ldquo;contributor&rdquo; is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's &ldquo;contributor version&rdquo;.</p>
+
+<p>A contributor's &ldquo;essential patent claims&rdquo; are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, &ldquo;control&rdquo; includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.</p>
+
+<p>Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.</p>
+
+<p>In the following three paragraphs, a &ldquo;patent license&rdquo; is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To &ldquo;grant&rdquo; such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.</p>
+
+<p>If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. &ldquo;Knowingly relying&rdquo; means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.</p>
+
+<p>If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.</p>
+
+<p>A patent license is &ldquo;discriminatory&rdquo; if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.</p>
+
+<p>Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.</p>
+
+<h3><a name="section12"></a>12. No Surrender of Others' Freedom.</h3>
+
+<p>If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.</p>
+
+<h3><a name="section13"></a>13. Use with the GNU Affero General Public License.</h3>
+
+<p>Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.</p>
+
+<h3><a name="section14"></a>14. Revised Versions of this License.</h3>
+
+<p>The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.</p>
+
+<p>Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License &ldquo;or any later version&rdquo; applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.</p>
+
+<p>If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.</p>
+
+<p>Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.</p>
+
+<h3><a name="section15"></a>15. Disclaimer of Warranty.</h3>
+
+<p>THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM &ldquo;AS IS&rdquo; WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</p>
+
+<h3><a name="section16"></a>16. Limitation of Liability.</h3>
+
+<p>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.</p>
+
+<h3><a name="section17"></a>17. Interpretation of Sections 15 and 16.</h3>
+
+<p>If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.</p>
+
+<p>END OF TERMS AND CONDITIONS</p>
+
+<h2><a name="howto"></a>How to Apply These Terms to Your New Programs</h2>
+
+<p>If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.</p>
+
+<p>To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the &ldquo;copyright&rdquo; line and a pointer to where the full notice is found.</p>
+
+<pre> &lt;one line to give the program's name and a brief idea of what it does.&gt;
+ Copyright (C) &lt;year&gt; &lt;name of author&gt;
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.
+</pre>
+
+<p>Also add information on how to contact you by electronic and paper mail.</p>
+
+<p>If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:</p>
+
+<pre> &lt;program&gt; Copyright (C) &lt;year&gt; &lt;name of author&gt;
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+</pre>
+
+<p>The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an &ldquo;about box&rdquo;.</p>
+
+<p>You should also get your employer (if you work as a programmer) or school,
+if any, to sign a &ldquo;copyright disclaimer&rdquo; for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</p>
+
+<p>The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+&lt;<a href="http://www.gnu.org/philosophy/why-not-lgpl.html">http://www.gnu.org/philosophy/why-not-lgpl.html</a>&gt;.</p>
+
+ </body>
+</html>
diff --git a/mobile/android/focus-android/app/src/main/res/raw/initial_experiments.json b/mobile/android/focus-android/app/src/main/res/raw/initial_experiments.json
new file mode 100644
index 0000000000..268c73f0e3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/raw/initial_experiments.json
@@ -0,0 +1,3 @@
+{
+ "data": []
+}
diff --git a/mobile/android/focus-android/app/src/main/res/raw/licenses.html b/mobile/android/focus-android/app/src/main/res/raw/licenses.html
new file mode 100644
index 0000000000..3f90063160
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/raw/licenses.html
@@ -0,0 +1,948 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <link rel="stylesheet" type="text/css" href="style.css">
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+</head>
+<body>
+
+<h1>Licenses</h1>
+
+<p>
+ Binaries of this product are made available to you by Mozilla under the Mozilla Public License 2.0 (MPL).
+</p>
+
+<p>
+ More specifically, most of the source code for this product is available under the Mozilla Public License 2.0 (MPL)
+ and Apache License 2.0. Additional software components for this product are available under one of a variety of
+ other free and open source licenses. Those that require reproduction of the license text in the distribution are
+ given below. (Note: your copy of this product may not contain code covered by one or more of the licenses listed
+ here, depending on the exact product and version you choose.)
+</p>
+
+
+<ul>
+ <li><a href="#mpl2">Mozilla Public License 2.0</a></li>
+ <li><a href="#apache2">Apache License 2.0</a></li>
+ <li><a href="#lgpl21">GNU Lesser General Public License 2.1</a></li>
+ <li><a href="#adjust">adjust-android License</a></li>
+</ul>
+
+<!-- ****************************************************************************************************************************** -->
+<!-- ****************************************************************************************************************************** -->
+<!-- ****************************************************************************************************************************** -->
+
+<h2><a name="mpl2">Mozilla Public License 2.0</a></h2>
+
+<ul>
+ <li>Focus - https://github.com/mozilla-mobile/focus-android</li>
+ <li>Telemetry - https://github.com/mozilla-mobile/telemetry-android</li>
+</ul>
+
+ <h4>1. Definitions</h4>
+ <dl>
+ <dt>1.1. “Contributor”</dt>
+ <dd><p>means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software.</p>
+ </dd>
+ <dt>1.2. “Contributor Version”</dt>
+ <dd><p>means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution.</p>
+ </dd>
+ <dt>1.3. “Contribution”</dt>
+ <dd><p>means Covered Software of a particular Contributor.</p>
+ </dd>
+ <dt>1.4. “Covered Software”</dt>
+ <dd><p>means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof.</p>
+ </dd>
+ <dt>1.5. “Incompatible With Secondary Licenses”</dt>
+ <dd><p>means</p>
+ <ol type="a">
+ <li><p>that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or</p></li>
+ <li><p>that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License.</p></li>
+ </ol>
+ </dd>
+ <dt>1.6. “Executable Form”</dt>
+ <dd><p>means any form of the work other than Source Code Form.</p>
+ </dd>
+ <dt>1.7. “Larger Work”</dt>
+ <dd><p>means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software.</p>
+ </dd>
+ <dt>1.8. “License”</dt>
+ <dd><p>means this document.</p>
+ </dd>
+ <dt>1.9. “Licensable”</dt>
+ <dd><p>means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License.</p>
+ </dd>
+ <dt>1.10. “Modifications”</dt>
+ <dd><p>means any of the following:</p>
+ <ol type="a">
+ <li><p>any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or</p></li>
+ <li><p>any new file in Source Code Form that contains any Covered Software.</p></li>
+ </ol>
+ </dd>
+ <dt>1.11. “Patent Claims” of a Contributor</dt>
+ <dd><p>means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version.</p>
+ </dd>
+ <dt>1.12. “Secondary License”</dt>
+ <dd><p>means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses.</p>
+ </dd>
+ <dt>1.13. “Source Code Form”</dt>
+ <dd><p>means the form of the work preferred for making modifications.</p>
+ </dd>
+ <dt>1.14. “You” (or “Your”)</dt>
+ <dd><p>means an individual or a legal entity exercising rights under this License. For legal entities, “You” includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.</p>
+ </dd>
+ </dl>
+ <h4>2. License Grants and Conditions</h4>
+ <h3>2.1. Grants</h3>
+ <p>Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:</p>
+ <ol type="a">
+ <li><p>under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and</p></li>
+ <li><p>under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version.</p></li>
+ </ol>
+ <h3>2.2. Effective Date</h3>
+ <p>The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution.</p>
+ <h3>2.3. Limitations on Grant Scope</h3>
+ <p>The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor:</p>
+ <ol type="a">
+ <li><p>for any code that a Contributor has removed from Covered Software; or</p></li>
+ <li><p>for infringements caused by: (i) Your and any other third party’s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or</p></li>
+ <li><p>under Patent Claims infringed by Covered Software in the absence of its Contributions.</p></li>
+ </ol>
+ <p>This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4).</p>
+ <h3>2.4. Subsequent Licenses</h3>
+ <p>No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3).</p>
+ <h3>2.5. Representation</h3>
+ <p>Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License.</p>
+ <h3>2.6. Fair Use</h3>
+ <p>This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents.</p>
+ <h3>2.7. Conditions</h3>
+ <p>Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1.</p>
+ <h4>3. Responsibilities</h4>
+ <h3>3.1. Distribution of Source Form</h3>
+ <p>All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form.</p>
+ <h3>3.2. Distribution of Executable Form</h3>
+ <p>If You distribute Covered Software in Executable Form then:</p>
+ <ol type="a">
+ <li><p>such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and</p></li>
+ <li><p>You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License.</p></li>
+ </ol>
+ <h3>3.3. Distribution of a Larger Work</h3>
+ <p>You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s).</p>
+ <h3>3.4. Notices</h3>
+ <p>You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies.</p>
+ <h3>3.5. Application of Additional Terms</h3>
+ <p>You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction.</p>
+ <h4>4. Inability to Comply Due to Statute or Regulation</h4>
+ <p>If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.</p>
+ <h4>5. Termination</h4>
+ <p>5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice.</p>
+ <p>5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate.</p>
+ <p>5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination.</p>
+ <h4>6. Disclaimer of Warranty</h4>
+ <p><em>Covered Software is provided under this License on an “as is” basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer.</em></p>
+ <h4>7. Limitation of Liability</h4>
+ <p><em>Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You.</em></p>
+ <h4>8. Litigation</h4>
+ <p>Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims.</p>
+ <h4>9. Miscellaneous</h4>
+ <p>This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor.</p>
+ <h4>10. Versions of the License</h4>
+ <h3>10.1. New Versions</h3>
+ <p>Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number.</p>
+ <h3>10.2. Effect of New Versions</h3>
+ <p>You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward.</p>
+ <h3>10.3. Modified Versions</h3>
+ <p>If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License).</p>
+ <h3>10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses</h3>
+ <p>If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached.</p>
+ <h4>Exhibit A - Source Code Form License Notice</h4>
+ <blockquote>
+ <p>This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at <a href="http://mozilla.org/MPL/2.0/" target="_blank">http://mozilla.org/MPL/2.0/</a>.</p>
+ </blockquote>
+ <p>If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.</p>
+ <p>You may add additional accurate notices of copyright ownership.</p>
+ <h4>Exhibit B - “Incompatible With Secondary Licenses” Notice</h4>
+ <blockquote>
+ <p>This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0.</p>
+ </blockquote>
+
+<!-- ****************************************************************************************************************************** -->
+<!-- ****************************************************************************************************************************** -->
+<!-- ****************************************************************************************************************************** -->
+
+<h2><a name="apache2">Apache License 2.0</a></h2>
+
+<ul>
+ <li>com.android.support : animated-vector-drawable</li>
+ <li>org.jetbrains : annotations</li>
+ <li>com.android.support : appcompat-v7</li>
+ <li>com.android.support : cardview-v7</li>
+ <li>android.arch.lifecycle : common</li>
+ <li>android.arch.core : common</li>
+ <li>com.android.support : customtabs</li>
+ <li>com.android.support : design</li>
+ <li>android.arch.lifecycle : extensions</li>
+ <li>org.jetbrains.kotlin : kotlin-stdlib-jre7</li>
+ <li>org.jetbrains.kotlin : kotlin-stdlib</li>
+ <li>com.android.support : recyclerview-v7</li>
+ <li>android.arch.core : runtime</li>
+ <li>android.arch.lifecycle : runtime</li>
+ <li>com.android.support : support-annotations</li>
+ <li>com.android.support : support-compat</li>
+ <li>com.android.support : support-core-ui</li>
+ <li>com.android.support : support-core-utils</li>
+ <li>com.android.support : support-fragment</li>
+ <li>com.android.support : support-media-compat</li>
+ <li>com.android.support : support-v4</li>
+ <li>com.android.support :support-vector-drawable</li>
+ <li>com.android.support :transition</li>
+</ul>
+
+ <p><strong><a name="definitions">1. Definitions</a></strong>.</p>
+ <p>"License" shall mean the terms and conditions for use, reproduction, and
+ distribution as defined by Sections 1 through 9 of this document.</p>
+ <p>"Licensor" shall mean the copyright owner or entity authorized by the
+ copyright owner that is granting the License.</p>
+ <p>"Legal Entity" shall mean the union of the acting entity and all other
+ entities that control, are controlled by, or are under common control with
+ that entity. For the purposes of this definition, "control" means (i) the
+ power, direct or indirect, to cause the direction or management of such
+ entity, whether by contract or otherwise, or (ii) ownership of fifty
+ percent (50%) or more of the outstanding shares, or (iii) beneficial
+ ownership of such entity.</p>
+ <p>"You" (or "Your") shall mean an individual or Legal Entity exercising
+ permissions granted by this License.</p>
+ <p>"Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation source,
+ and configuration files.</p>
+ <p>"Object" form shall mean any form resulting from mechanical transformation
+ or translation of a Source form, including but not limited to compiled
+ object code, generated documentation, and conversions to other media types.</p>
+ <p>"Work" shall mean the work of authorship, whether in Source or Object form,
+ made available under the License, as indicated by a copyright notice that
+ is included in or attached to the work (an example is provided in the
+ Appendix below).</p>
+ <p>"Derivative Works" shall mean any work, whether in Source or Object form,
+ that is based on (or derived from) the Work and for which the editorial
+ revisions, annotations, elaborations, or other modifications represent, as
+ a whole, an original work of authorship. For the purposes of this License,
+ Derivative Works shall not include works that remain separable from, or
+ merely link (or bind by name) to the interfaces of, the Work and Derivative
+ Works thereof.</p>
+ <p>"Contribution" shall mean any work of authorship, including the original
+ version of the Work and any modifications or additions to that Work or
+ Derivative Works thereof, that is intentionally submitted to Licensor for
+ inclusion in the Work by the copyright owner or by an individual or Legal
+ Entity authorized to submit on behalf of the copyright owner. For the
+ purposes of this definition, "submitted" means any form of electronic,
+ verbal, or written communication sent to the Licensor or its
+ representatives, including but not limited to communication on electronic
+ mailing lists, source code control systems, and issue tracking systems that
+ are managed by, or on behalf of, the Licensor for the purpose of discussing
+ and improving the Work, but excluding communication that is conspicuously
+ marked or otherwise designated in writing by the copyright owner as "Not a
+ Contribution."</p>
+ <p>"Contributor" shall mean Licensor and any individual or Legal Entity on
+ behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.</p>
+ <p><strong><a name="copyright">2. Grant of Copyright License</a></strong>. Subject to the
+ terms and conditions of this License, each Contributor hereby grants to You
+ a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of, publicly
+ display, publicly perform, sublicense, and distribute the Work and such
+ Derivative Works in Source or Object form.</p>
+ <p><strong><a name="patent">3. Grant of Patent License</a></strong>. Subject to the terms
+ and conditions of this License, each Contributor hereby grants to You a
+ perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made, use,
+ offer to sell, sell, import, and otherwise transfer the Work, where such
+ license applies only to those patent claims licensable by such Contributor
+ that are necessarily infringed by their Contribution(s) alone or by
+ combination of their Contribution(s) with the Work to which such
+ Contribution(s) was submitted. If You institute patent litigation against
+ any entity (including a cross-claim or counterclaim in a lawsuit) alleging
+ that the Work or a Contribution incorporated within the Work constitutes
+ direct or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate as of the
+ date such litigation is filed.</p>
+ <p><strong><a name="redistribution">4. Redistribution</a></strong>. You may reproduce and
+ distribute copies of the Work or Derivative Works thereof in any medium,
+ with or without modifications, and in Source or Object form, provided that
+ You meet the following conditions:</p>
+ <ol style="list-style: lower-latin;">
+ <li>You must give any other recipients of the Work or Derivative Works a
+ copy of this License; and</li>
+
+ <li>You must cause any modified files to carry prominent notices stating
+ that You changed the files; and</li>
+
+ <li>You must retain, in the Source form of any Derivative Works that You
+ distribute, all copyright, patent, trademark, and attribution notices from
+ the Source form of the Work, excluding those notices that do not pertain to
+ any part of the Derivative Works; and</li>
+
+ <li>If the Work includes a "NOTICE" text file as part of its distribution,
+ then any Derivative Works that You distribute must include a readable copy
+ of the attribution notices contained within such NOTICE file, excluding
+ those notices that do not pertain to any part of the Derivative Works, in
+ at least one of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or documentation,
+ if provided along with the Derivative Works; or, within a display generated
+ by the Derivative Works, if and wherever such third-party notices normally
+ appear. The contents of the NOTICE file are for informational purposes only
+ and do not modify the License. You may add Your own attribution notices
+ within Derivative Works that You distribute, alongside or as an addendum to
+ the NOTICE text from the Work, provided that such additional attribution
+ notices cannot be construed as modifying the License.
+ <br/>
+ <br/>
+ You may add Your own copyright statement to Your modifications and may
+ provide additional or different license terms and conditions for use,
+ reproduction, or distribution of Your modifications, or for any such
+ Derivative Works as a whole, provided Your use, reproduction, and
+ distribution of the Work otherwise complies with the conditions stated in
+ this License.
+ </li>
+
+ </ol>
+
+ <p><strong><a name="contributions">5. Submission of Contributions</a></strong>. Unless You
+ explicitly state otherwise, any Contribution intentionally submitted for
+ inclusion in the Work by You to the Licensor shall be under the terms and
+ conditions of this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify the
+ terms of any separate license agreement you may have executed with Licensor
+ regarding such Contributions.</p>
+ <p><strong><a name="trademarks">6. Trademarks</a></strong>. This License does not grant
+ permission to use the trade names, trademarks, service marks, or product
+ names of the Licensor, except as required for reasonable and customary use
+ in describing the origin of the Work and reproducing the content of the
+ NOTICE file.</p>
+ <p><strong><a name="no-warranty">7. Disclaimer of Warranty</a></strong>. Unless required by
+ applicable law or agreed to in writing, Licensor provides the Work (and
+ each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT
+ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including,
+ without limitation, any warranties or conditions of TITLE,
+ NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You
+ are solely responsible for determining the appropriateness of using or
+ redistributing the Work and assume any risks associated with Your exercise
+ of permissions under this License.</p>
+ <p><strong><a name="no-liability">8. Limitation of Liability</a></strong>. In no event and
+ under no legal theory, whether in tort (including negligence), contract, or
+ otherwise, unless required by applicable law (such as deliberate and
+ grossly negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a result
+ of this License or out of the use or inability to use the Work (including
+ but not limited to damages for loss of goodwill, work stoppage, computer
+ failure or malfunction, or any and all other commercial damages or losses),
+ even if such Contributor has been advised of the possibility of such
+ damages.</p>
+ <p><strong><a name="additional">9. Accepting Warranty or Additional Liability</a></strong>.
+ While redistributing the Work or Derivative Works thereof, You may choose
+ to offer, and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this License.
+ However, in accepting such obligations, You may act only on Your own behalf
+ and on Your sole responsibility, not on behalf of any other Contributor,
+ and only if You agree to indemnify, defend, and hold each Contributor
+ harmless for any liability incurred by, or claims asserted against, such
+ Contributor by reason of your accepting any such warranty or additional
+ liability.</p>
+ <p>END OF TERMS AND CONDITIONS</p>
+
+<!-- ****************************************************************************************************************************** -->
+<!-- ****************************************************************************************************************************** -->
+<!-- ****************************************************************************************************************************** -->
+
+<h2><a name="lgpl21">GNU Lesser General Public License 2.1</a></h2>
+
+<ul>
+ <li>findbugs annotations (com.google.code.findbugs:annotations)</li>
+</ul>
+
+<h3><a id="SEC1">GNU LESSER GENERAL PUBLIC LICENSE</a></h3>
+<p>
+Version 2.1, February 1999
+</p>
+
+<p>
+Copyright (C) 1991, 1999 Free Software Foundation, Inc.<br />
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA<br />
+Everyone is permitted to copy and distribute verbatim copies<br />
+of this license document, but changing it is not allowed.
+</p>
+
+<p>
+[This is the first released version of the Lesser GPL. It also counts<br />
+ as the successor of the GNU Library Public License, version 2, hence<br />
+ the version number 2.1.]
+</p>
+
+<h3><a id="SEC2">Preamble</a></h3>
+
+<p>
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+</p>
+<p>
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+</p>
+<p>
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+</p>
+<p>
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+</p>
+<p>
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+</p>
+<p>
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+</p>
+<p>
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+</p>
+<p>
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+</p>
+<p>
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+</p>
+<p>
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+</p>
+<p>
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+</p>
+<p>
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+</p>
+<p>
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+</p>
+<p>
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+</p>
+<p>
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+</p>
+
+<h3><a id="SEC3">TERMS AND CONDITIONS FOR COPYING,
+DISTRIBUTION AND MODIFICATION</a></h3>
+
+
+<p>
+<strong>0.</strong>
+This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+</p>
+<p>
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+</p>
+<p>
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+</p>
+<p>
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+</p>
+<p>
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+</p>
+<p>
+<strong>1.</strong>
+You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+</p>
+<p>
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+</p>
+<p>
+<strong>2.</strong>
+You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+</p>
+
+<ul>
+ <li><strong>a)</strong>
+ The modified work must itself be a software library.</li>
+ <li><strong>b)</strong>
+ You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.</li>
+
+ <li><strong>c)</strong>
+ You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.</li>
+
+ <li><strong>d)</strong>
+ If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+ <p>
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)</p></li>
+</ul>
+
+<p>
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Library, and can be
+reasonably considered independent and separate works in themselves, then
+this License, and its terms, do not apply to those sections when you
+distribute them as separate works. But when you distribute the same
+sections as part of a whole which is a work based on the Library, the
+distribution of the whole must be on the terms of this License, whose
+permissions for other licensees extend to the entire whole, and thus to
+each and every part regardless of who wrote it.
+</p>
+<p>
+Thus, it is not the intent of this section to claim rights or contest your
+rights to work written entirely by you; rather, the intent is to exercise
+the right to control the distribution of derivative or collective works
+based on the Library.
+</p>
+<p>
+In addition, mere aggregation of another work not based on the Library with
+the Library (or with a work based on the Library) on a volume of a storage
+or distribution medium does not bring the other work under the scope of
+this License.
+</p>
+<p>
+<strong>3.</strong>
+You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+</p>
+<p>
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+</p>
+<p>
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+</p>
+<p>
+<strong>4.</strong>
+You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+</p>
+<p>
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+</p>
+<p>
+<strong>5.</strong>
+A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+</p>
+<p>
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+</p>
+<p>
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+</p>
+<p>
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+</p>
+<p>
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+</p>
+<p>
+<strong>6.</strong>
+As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+</p>
+<p>
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+</p>
+
+<ul>
+ <li><strong>a)</strong> Accompany the work with the complete
+ corresponding machine-readable source code for the Library
+ including whatever changes were used in the work (which must be
+ distributed under Sections 1 and 2 above); and, if the work is an
+ executable linked with the Library, with the complete
+ machine-readable "work that uses the Library", as object code
+ and/or source code, so that the user can modify the Library and
+ then relink to produce a modified executable containing the
+ modified Library. (It is understood that the user who changes the
+ contents of definitions files in the Library will not necessarily
+ be able to recompile the application to use the modified
+ definitions.)</li>
+
+ <li><strong>b)</strong> Use a suitable shared library mechanism
+ for linking with the Library. A suitable mechanism is one that
+ (1) uses at run time a copy of the library already present on the
+ user's computer system, rather than copying library functions into
+ the executable, and (2) will operate properly with a modified
+ version of the library, if the user installs one, as long as the
+ modified version is interface-compatible with the version that the
+ work was made with.</li>
+
+ <li><strong>c)</strong> Accompany the work with a written offer,
+ valid for at least three years, to give the same user the
+ materials specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.</li>
+
+ <li><strong>d)</strong> If distribution of the work is made by
+ offering access to copy from a designated place, offer equivalent
+ access to copy the above specified materials from the same
+ place.</li>
+
+ <li><strong>e)</strong> Verify that the user has already received
+ a copy of these materials or that you have already sent this user
+ a copy.</li>
+</ul>
+
+<p>
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+</p>
+<p>
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+</p>
+<p>
+<strong>7.</strong> You may place library facilities that are a work
+based on the Library side-by-side in a single library together with
+other library facilities not covered by this License, and distribute
+such a combined library, provided that the separate distribution of
+the work based on the Library and of the other library facilities is
+otherwise permitted, and provided that you do these two things:
+</p>
+
+<ul>
+ <li><strong>a)</strong> Accompany the combined library with a copy
+ of the same work based on the Library, uncombined with any other
+ library facilities. This must be distributed under the terms of
+ the Sections above.</li>
+
+ <li><strong>b)</strong> Give prominent notice with the combined
+ library of the fact that part of it is a work based on the
+ Library, and explaining where to find the accompanying uncombined
+ form of the same work.</li>
+</ul>
+
+<p>
+<strong>8.</strong> You may not copy, modify, sublicense, link with,
+or distribute the Library except as expressly provided under this
+License. Any attempt otherwise to copy, modify, sublicense, link
+with, or distribute the Library is void, and will automatically
+terminate your rights under this License. However, parties who have
+received copies, or rights, from you under this License will not have
+their licenses terminated so long as such parties remain in full
+compliance.
+</p>
+<p>
+<strong>9.</strong>
+You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+</p>
+<p>
+<strong>10.</strong>
+Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+</p>
+<p>
+<strong>11.</strong>
+If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+</p>
+<p>
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+</p>
+<p>
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+</p>
+<p>
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+</p>
+<p>
+<strong>12.</strong>
+If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+</p>
+<p>
+<strong>13.</strong>
+The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+</p>
+<p>
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+</p>
+<p>
+<strong>14.</strong>
+If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+</p>
+<p>
+<strong>NO WARRANTY</strong>
+</p>
+<p>
+<strong>15.</strong>
+BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+</p>
+<p>
+<strong>16.</strong>
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+</p>
+
+<h3>END OF TERMS AND CONDITIONS</h3>
+
+<!-- ****************************************************************************************************************************** -->
+<!-- ****************************************************************************************************************************** -->
+<!-- ****************************************************************************************************************************** -->
+
+<h2><a name="adjust">adjust-android License</a></h2>
+
+ <p>Copyright (c) 2012-2017 adjust GmbH,<br />
+ http://www.adjust.com</p>
+
+ <p>Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:</p>
+
+ <p>The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.</p>
+
+ <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/main/res/raw/rights.html b/mobile/android/focus-android/app/src/main/res/raw/rights.html
new file mode 100644
index 0000000000..c34c1c5d11
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/raw/rights.html
@@ -0,0 +1,56 @@
+<!doctype html>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ - You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<head>
+<meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1"><style>
+ body, html {
+ background: #221F1F;
+ color: #FFFFFF;
+ font-family: sans-serif;
+ line-height: 24px;
+ font-size: 14px;
+ }
+
+ body{
+ padding-left: 24px;
+ padding-right: 24px;
+ margin-left: 0px;
+ margin-right: 0px;
+ }
+
+ a {
+ color: #0A9AF4;
+ }
+
+ /* Make only about page links ("learn more") white */
+ .about a {
+ color: #FFFFFF;
+ }
+
+ p.subtitle {
+ text-align: center;
+ opacity: .7;
+ margin: 0;
+ }
+
+ img#wordmark {
+ /* We need to set the dp size here, because by default webview assumes the image is not
+ density specific (but since it's an android resource, we get a density specific version). */
+ width: 180px;
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ padding-top: 24px;
+ }
+</style>
+</head>
+<html>
+<body dir="%dir%">
+ <p id="first">%your-rights-content1%</p>
+ <p>%your-rights-content2%</p>
+ <p>%your-rights-content3%</p>
+ <p>%your-rights-content4%</p>
+ <p>%your-rights-content5%</p>
+</body>
+</html>
diff --git a/mobile/android/focus-android/app/src/main/res/transition/firstrun_exit.xml b/mobile/android/focus-android/app/src/main/res/transition/firstrun_exit.xml
new file mode 100644
index 0000000000..535f92a8ad
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/transition/firstrun_exit.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<fade xmlns:android="http://schemas.android.com/apk/res/android"
+ android:fadingMode="fade_out"
+ android:duration="@integer/erase_animation_alpha_duration" /> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/values-ace/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ace/strings.xml
new file mode 100644
index 0000000000..389880cc8d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ace/strings.xml
@@ -0,0 +1,784 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Bateue</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">GÖT</string>
+
+ <string name="action_save">Keubah</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Mita atawa pasoe alamat</string>
+
+ <string name="teaser">Seumeulop rahsia otomatis.\nLop. Sampôh. Ulang.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Riwayat seumeulop droeneuh ka geusampôh.</string>
+ <string name="feedback_erase2">Riwayat peuhah wèb geusampôh</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Riwayat peuhah wèb tab ka geusampôh</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Mita keu %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Bulueng…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Bri Thèe Isu Situs</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Peuhah lam %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Peuhah lam…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Tamah lam layeue Keue</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Tamah keu röt koh</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Böh nibak röt koh</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Atô</string>
+ <string name="menu_about">Bhaih</string>
+ <string name="menu_help">Beunantu</string>
+ <string name="menu_rights">Hak Droeneuh</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Peulacak jitham</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Neupeulen nyoe jeuet geupubeutôi masalah situs</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Theun Asoe</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Peulen keu pubeutôi situs</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Jikuasa lé %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Bulueng röt</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Sampôh riwayat pumeuhah</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Peuhah</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Sampôh ngön Peuhah</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Sampôh</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Sampôh riwayat pumeuhah</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Sampôh ngön peuhah</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Sampôh ngön peuhah %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Mita lam Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Mita lam Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Mita lam Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Mita lam Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s peuduek droeneuh lam keumudoe.</p>
+<p>Ngui sibagoe browser rahsia:
+ <ul>
+ <li>Mita ngön lop lam aplikasi</li>
+ <li>Tham ureueng seutöt (atawa pubarô seuneuatô keu peuidin ureueng seutöt)</li>
+ <li>Lhi keu sampôh cookies lagèe riwayat mita ngön seumeulop</li>
+ </ul>
+</p>
+<p>%1$s geupeugöt lé Mozilla. Misi kamoe nakeuh keu meusatoh internet nyang sihat ngön teuhah.<br/>
+<a href="%2$s">Learn more</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privasi &amp; Keuamanan</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Seumeutöt, kuki, peuniléh data</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Ato teutap, peuleungkap keudroe</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Bhaih %1$s, beunantu</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Tamah Lindông Seumeutöt</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Asoe Web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Tuka App</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Umom</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Browser baku, bahsa</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Peusapat Data &amp; Ngui</string>
+
+ <string name="preference_category_search">Mita</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Peuleumah saran mita</string>
+
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s meung geupeuét peue nyang neukeutik lam bateueng alamat keu meusén mita droeneuh</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Teutap</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Meusén mita</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Udép</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Maté</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Peuleungkap URL keudroe</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Keu situs hayeue</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Peuudép keu na %s peuleungkap otomatis keu 450 boh URL nyang meusyeuhu lam bateueng alamat.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Keu situs nyang neutamah</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Peuudép keu na %s peuleungkap otomatis alamat URL geunalak droeneuh.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Atô situs</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Atô situs</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Tamah URL kustom</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Dapeuta auto leungkap droeneuh:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Tamah URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Tamah URL kustom</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Tamah URL kustom</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Tamah peunawôt keu peuleungkap keudroe</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Kuki ngön Data Situs</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Peuniléh Data</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Sampôh URL kustom</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Meurunoë lom</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Tamah ngön atô URL peuleungkap keudroe kustom</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL keu geutamah</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Tipèk atawa pasoe URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Miseue: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Miseue: miseue.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">URL kustom barô ka geutamah.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Sampôh</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Sampôh</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Paréksa dua go URL nyang neupasoe.</string>
+
+ <string name="preference_language">Bahsa</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Bawaan sistem</string>
+
+ <string name="preference_category_privacy">Privasi</string>
+ <string name="preference_privacy_block_ads">Tham peulacak iklan</string>
+
+ <string name="preference_privacy_block_ads_summary">Ladôm iklan jiseutöt seunaweue situs, bahpih meunyo hana neuteugön iklan nyan</string>
+ <string name="preference_privacy_block_analytics">Tham peulacak analitik</string>
+ <string name="preference_privacy_block_analytics_summary">Geungui keu peusaho, analisis ngön seumipat buet lagèe klik ngon skrol</string>
+ <string name="preference_privacy_block_social">Tham peulacak sosial</string>
+
+ <string name="preference_privacy_block_social_summary">Geupeukeumat bak situs keu jilacak seunaweueneuh ngön jipeuleumah fungsi lagèe teuneuthèp bulueng</string>
+ <string name="preference_privacy_block_content">Tham peulacak asoe nyang laén</string>
+ <string name="preference_privacy_block_content_summary2">Meunyo neupeuudép akébatjih ladôm mieng mungkén akan jimeulagèe </string>
+ <string name="preference_privacy_category_cookies">Tham kuki</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Han</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Tham kuki peulacak pihak keulhèe mantöng</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Tham kuki pihak keulhèe mantöng</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Tham kuki lintas-situs</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Nyo</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Ngui sidék jaroe keu peuhah aplikasi</string>
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Ngui sidék jaroe keu peuhah meunyo neutamah shortcut atawa watèe situs wèb ka teuhah bak %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Bèk peuleumah</string>
+
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Som mieng wèb watèe gantoe aplikasi ngon tham cok drop layeue.</string>
+
+ <string name="preference_category_security">Seuneuaman</string>
+
+ <string name="preference_category_performance">Hasé buet</string>
+ <string name="preference_performance_block_webfonts">Tham haraih web</string>
+
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Jeuet gadöh ikon atawa gamba</string>
+
+ <string name="preference_performance_block_javascript">Blokir JavaScript</string>
+
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Mieng jeuet jipeuhah leubèh bagah, tapi jeuet cit jimubuet lagèe nyang kön geuharap</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Peujeuet %1$s browser teutap</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+
+ <string name="preference_mozilla_telemetry2">Peuét data teungui</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Meurunoë lom</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla geuôseuha keu geupeusaho nyang geupeureulèe mantöng keu geuseudiya dan geupeujroh %1$s keu bandum ureueng.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Reusam Privasi</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Keutrangan lisènsi</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Pustaka nyang meungui</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Pustaka OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Bhaih %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Meusén mita teupasang</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Piléh meusén mita</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Peuriwang meusén mita teutap</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Tamah meusén mita laén</string>
+ <string name="preference_search_remove_title">Sampôh meusén mita</string>
+ <string name="preference_search_remove">Sampôh</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Tamah meusén mita nyang laén</string>
+
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Piléh meusén nyang neugalak:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Tamah meusén mita</string>
+
+ <string name="search_add_manually_name_hint">Nan meusén mita</string>
+ <string name="search_add_manually_string">String mita keu geungui</string>
+ <string name="search_add_manually_save">Keubah</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Miseue: miseue.com/mita/?q=%s</string>
+
+ <string name="search_add_confirmation">Meusén mita nyang barô geutamah.</string>
+
+ <string name="search_add_error_empty_name">Peutamong nan meusén mita</string>
+
+ <string name="search_add_error_duplicate_name">Meusén mita nyang teupasang ka geungui nan nyan.</string>
+
+ <string name="search_add_error_empty_search">Peutamong string mita</string>
+
+ <string name="search_add_error_format">Neuparéksa meunyo string meunita ka pah ngön beuntuk Miseue</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Peugléh teunamong</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Tôp</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Sampôh riwayat pumeuhah</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Tab teuhah: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Seunambat aman</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Teungöh jipeuhah</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Situh wèb ka teuhah</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Peuniléh laén</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Tombol peuniléh laén</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Jak u keue</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Peuhah ulang situs wèb</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Gisa u likôt</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Bèk lé peuhah situihweb</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Gisa u app sat nyoe</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Jumeulah peulacak teutham</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blokir peulacak</string>
+
+ <string name="your_rights">Hak Droeneuh</string>
+
+ <string name="external_app_prompt_title">Peuhah link lam aplikasi laén</string>
+
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Droeneuh jeuet neutinggai %1$s keu neupeuhah peunawôt nyoe bak %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Mita saboh app nyang jeuet peuhah link</string>
+
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Hana meu sabôh app lam peukakah droeneuh nyang jeuet peuhah link nyoe. Droeneu jeuet neutinggai %1$s keu jak mita %2$s keu app nyang jeuet.</string>
+
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Teubiet Pumeuhah Rahsia?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s seuleusoe</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Peuhah</string>
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Geutamah u röt koh!</string>
+
+ <string name="error_hostLookup_title">Server hana geuteumeung</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Tôp</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Neupiyôh bak %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Bagah. Rahsia. Hana karu.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Puphôn</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s kön lagèe browser laén</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Peujeuet sibagoe browser teutap</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Lingkeue</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Peuköng privasi droeneuh</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Hasé mita droeneuh, kri droeneuh</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Peujeuet privasi jeuet keu reusam</string>
+
+ <string name="firstrun_close_button">Göt, lôn muphôm!</string>
+ <string name="firstrun_skip_button">Lingkeue</string>
+ <string name="firstrun_next_button">Lom</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Tamah</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">NYO</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Bateuë</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">HAN</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sesi pumeuhah rahsia</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Sampôh riwayat pumeuhah</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Cok keubah Firefox</string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nan ureung ngui</string>
+ <string name="gv_prompt_password_hint">Lageuem tamöng</string>
+ <string name="gv_prompt_clear">Peugléh</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Seunambat Aman</string>
+ <string name="security_popup_insecure_connection">Seunambat Hana Aman</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Geupeusahèh lé: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Keuamanan Situh</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL ka na</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Mita lam laman</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Mita lam laman</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d nibak %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Kalön hasé u keue</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Kalön hasé u likôt</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Sampôh nyang meuteumèe lam laman</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Lakèe situs desktop</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Situs desktop</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL teusalén</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Alat peukeumang</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Peuhah peunawôt bak aplikasi</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Leubèh le</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Idin situs</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Peukureueng Spanduk Kuki</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Udép</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Maté</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Peukureueng Spanduk Kuki</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Peukureueng Spanduk Kuki</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">HU keu situh nyoe</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">LEN keu situh nyoe</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Peukureueng Spanduk Kuki</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">LEN keu situh nyoe</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">HU keu situh nyoe</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Bateue</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Lakèe dukôngan</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">atô</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Puta Keudroe</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Keu peuidin:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Jak u Atô Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Thèp <b>Idin</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Atô</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Pinah <b>%1$s</b> jeuet ON]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamèra</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Neuduek</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Bri thèe</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Lakèe idin</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Geutham</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Geupeuidin</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Geutham lé Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Peuidin su ngön video</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Geupeusaran</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Tham audio ngön video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Beuet</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Sampôh</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktif</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Seuleusoe</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Peuhah</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Peuhah peunawôt bak Sèsi Barô</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">H‘an</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Nyo</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Tôp</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Gantoe</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Keucuwali</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Sampôh</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Sampôh bandum situs</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Tham Kuki</string>
+
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Tôp Tab</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Tamah Lindông Seumeutöt</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Layeue</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Peungeuh</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Seupôt</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Geuatô lé Himat Batré</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Seutöt layeue peukakaih</string>
+
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Tôp</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Tôp</string>
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-af/strings.xml b/mobile/android/focus-android/app/src/main/res/values-af/strings.xml
new file mode 100644
index 0000000000..3fe8224ae2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-af/strings.xml
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Kanselleer</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Stoor</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Soek, of tik adres in</string>
+
+ <string name="teaser">Outomatiese privaat-lees modus.\nLees. Vergeet. Herhaal.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Jou leesrekord is uitgevee.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Soek vir %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Deel…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Rapporteer \'n probleem met die webwerf</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Maak oop in %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Maak oop in…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Voeg by tuisskerm</string>
+
+ <string name="menu_settings">Instellings</string>
+ <string name="menu_about">Inligting hieroor</string>
+ <string name="menu_help">Hulp</string>
+ <string name="menu_rights">Jou regte</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Moontlik gemaak deur %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Deel via</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Skrap leesgeskiedenis</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Maak oop</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Skrap en maak oop</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Skrap</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Skrap leesgeskiedenis</string>
+
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privaatheid en sekuriteit</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Naspoor-koekies, data keuses</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Stel verstekwaardes, outovoltooi</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Meer oor %1$s, hulp</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Webinhoud</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Wissel tussen toepassings</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Algemeen</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Data versameling &amp; gebruik</string>
+
+ <string name="preference_category_search">Soek</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Verstek</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Aan</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Af</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL Outovoltooi</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Datakeuses</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Meer inligting</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Plak of tik URL</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Voorbeeld: voorbeeld.com</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Verwyder</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Verwyder</string>
+
+ <string name="preference_language">Taal</string>
+
+ <string name="preference_category_privacy">Privaatheid</string>
+ <string name="preference_privacy_block_ads_summary">Sommige advertensies hou rekord van jou webwerfbesoeke, selfs al kliek jy nie op hulle nie</string>
+ <string name="preference_privacy_block_social">Blokkeer sosiale speurders</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Meer inligting</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Privaatheidkennisgewing</string>
+
+ <string name="preference_search_remove_title">Verwyder soekenjins</string>
+ <string name="preference_search_remove">Verwyder</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Voeg soekenjin by</string>
+
+ <string name="search_add_manually_save">Stoor</string>
+
+ <string name="search_add_confirmation">Nuwe soekenjin bygevoeg.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Beveiligde verbinding</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Besig om te laai</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Webwerf gelaai</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Meer keuses</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Navigeer vorentoe</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Herlaai webwerf</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Navigeer terug</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Gaan terug na vorige toep</string>
+
+ <string name="your_rights">Jou regte</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Maak oop</string>
+
+
+
+ <string name="error_hostLookup_title">Bediener nie gevind nie</string>
+
+
+
+
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Jou soek, jou manier</string>
+
+ <string name="firstrun_close_button">Reg so!</string>
+ <string name="firstrun_next_button">Volgende</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Voeg by</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Kanselleer</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Skrap blaaigeskiedenis</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Laai Firefox af</string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Gebruikersnaam</string>
+ <string name="gv_prompt_password_hint">Wagwoord</string>
+ <string name="gv_prompt_clear">Vee uit</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Beveiligde verbinding</string>
+ <string name="security_popup_insecure_connection">Onbeveiligde verbinding</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Geverifieer deur: %1$s</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-am/strings.xml b/mobile/android/focus-android/app/src/main/res/values-am/strings.xml
new file mode 100644
index 0000000000..4fb899dc51
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-am/strings.xml
@@ -0,0 +1,1096 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">ተወው</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">እሺ</string>
+
+ <string name="action_save">አስቀምጥ</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">ፍለጋ ወይም አድራሻ ያስገቡ</string>
+
+ <string name="teaser">አውቶማቲክ የግል አሰሳ\nያስሱ. ደምስስ. ድገም.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">የአሰሳ ታሪክዎ ተደምስሷል</string>
+
+ <string name="feedback_erase2">የአሰሳ ታሪክ ጸድቷል</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">የትሩ የአሰሳ ታሪክ ተደምስሷል።</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">ፈልግ ስለ %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">ያጋሩ…\n\n</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">የድረ-ገጹን ችግር አመልክት</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">በ %1$s ክፈት</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">ክፈት በ…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">ወደ መነሻ ማያ ገጽ አክል</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">ወደ አቋራጭ ጨምር</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">ከአቋራጭ ላይ አስወድግ</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">ቅንብሮች</string>
+ <string name="menu_about">ስለ</string>
+ <string name="menu_help">እገዛ</string>
+ <string name="menu_rights">የእርስዎ መብቶች</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">ተከታታዮች ታግደዋል</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">ይህን ማጥፋት አንዳንድ የድረ-ገፅ ችግሮችን ሊፈታ ይችላል</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">የይዘት እገዳ</string>
+
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">አንዳንድ ድረ-ገፆችን ለመጠገን አጥፋ</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">በ%1$s የተጎላበተ</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">ያጋሩ በ</string>
+
+ <string name="notification_erase_title_android_14">የአሰሳ ታሪክን ይጥፋ?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">የአሰሳ ታሪክዎን ደህንነቱ በተጠበቀ መልኩ ለማጥፋት ይህን ማሳወቂያ መታ ያድርጉ ወይም ያጽዱ።</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">የአሰሳ ታሪክዎን ደህንነቱ በተጠበቀ መልኩ ለማጥፋት ይህን ማሳወቂያ መታ ያድርጉ ወይም ያንሸራትቱ።</string>
+
+ <string name="notification_erase_text">የአሰሳ ታሪክን አጥፋ</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">ክፈት</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">አጠፉ እና ክፈት</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">አጠፉ</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">የአሰሳ ታሪክን አጥፋ</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">አጥፋ እና ከፈት</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">አጥፋ እና ክፈት %1$s</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Focus ላይ ፈልግ</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Klar ላይ ፈልግ</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Focus Beta ላይ ፈልግ</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Focus Nightly ላይ ፈልግ</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s እርስዎን ውሣኔ ሰጪ ያደርግዎታል።</p>
+<p>እንደ የግል አሳሽ ይጠቀሙበት፡-
+ <ul>
+ <li>በመተግበሪያው ውስጥ ይፈልጉ እና ያስሱ</li>
+ <li>መከታተያዎችን ያግዱ (ወይም መከታተያዎችን ለመፍቀድ ቅንብሮችን ያዘምኑ)</li>
+ <li>ኩኪዎችን እንዲሁም የፍለጋ እና የአሰሳ ታሪክን ለማጥፋት ይደምስሱ</li>
+ </ul>
+</p>
+<p>%1$s የሚመረተው በሞዚላ ነው። የእኛ ተልዕኮ ጤናማ እና ክፍት በይነመረብን ማዳበር ነው።<br/>
+<a href="%2$s">የበለጠ ለመረዳት</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">ግላዊነት እና ደህንነት</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">ክትትል፣ ኩኪዎች፣ የውሂብ ምርጫዎች</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">ነባሪ አዘጋጅ፣ ራስ-አጠናቅቅ</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">ስለ %1$s፣ እገዛ</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">የተሻሻለ የመከታተያ ጥበቃ</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">የድር ይዘት</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">መተግበሪያዎችን በመቀያየር ላይ</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">አጠቃላይ</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">ነባሪ አሳሽ፣ ቋንቋ</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">የውሂብ ስብሰባ እና አጠቃቀም</string>
+
+ <string name="preference_category_search">ፍለጋ</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">የፍለጋ ጥቆማዎችን ያግኙ</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s በአድራሻ አሞሌው ላይ የሚተይቡትን ወደ የፍለጋ ፍርግምዎ ይልካል</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">ነባሪ</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">የፍለጋ ፍርግም</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">በርቷል</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">ጠፍቷል</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL ራስ-አጠናቅቅ</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">ለዋና ዋና ድረ-ገፆች</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">በአድራሻ አሞሌው ውስጥ ከ450 በላይ ታዋቂ ዩአርኤሎችን %s በራስ ሰር እንዲያጠናቅቅ ያንቁ።</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">ለሚያክሏቸው ድረ-ገፆች</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">የሚወዷቸውን ዩአርኤሎች %s በራስ ሰር እንዲያጠናቅቅ ያንቁ።</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">ድረ-ገፆችን ያስተዳድሩ</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">ድረ-ገፆችን ያስተዳድሩ</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ ብጁ አክል URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">የእርስዎ ራስ-አጠናቅቅ ዝርዝር፡-</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">ዩአርኤል አክል</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">ብጁ አክል URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">ብጁ ዩአርኤል አክል</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">ወደ ራስ-አጠናቅቅ አገናኝ አክል</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">ኩኪዎች እና የድረ-ገፅ ውሂብ</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">የውሂብ ምርጫዎች</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">ብጁ አስወግድ URLs</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">ተጨማሪ እወቅ</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">አክል ወይም አደራጅ ብጁ ራስ-አጠናቅቅ URLs</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL መጨመር</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">ለጥፍ ወይም ግባ URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">ምሳሌ: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">ምሳሌ : ምሳሌ.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">አዲስ ብጁ URL ታክሏል</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">አስወግድ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">አስወግድ</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">በድጋሚ አረጋጡ ያስገቡትን URL</string>
+
+ <string name="preference_language">ቋንቋ</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">የስርዓት ነባሪ</string>
+
+ <string name="preference_category_privacy">የግል መብት መጠበቅ</string>
+ <string name="preference_privacy_block_ads">የማስታወቂያ መከታተያዎችን አግድ</string>
+ <string name="preference_privacy_block_ads_summary">&quot;ማስታወቂያዎች ባይጫኑ እንኳን አንዳንድ የማስታወቂያ መከታተያዎች የጣቢያ ጉብኝቶችን ይከታተላሉ &quot;</string>
+ <string name="preference_privacy_block_analytics">መተንተኛ ተቆጣጣሪዎች ያግዱ</string>
+ <string name="preference_privacy_block_analytics_summary">እንደ ማሸብለል እና መታ በማድረግ ያሉ እንቅስቃሴዎችን ለመተንተን እና ለመለካት ጥቅም ላይ የዋለ</string>
+ <string name="preference_privacy_block_social">ማህበራዊ ሚዲያ መከታተያዎችን አግድ\n</string>
+ <string name="preference_privacy_block_social_summary">የእርስዎን ጉብኝቶች ለመከታተል እና እንደ የአጋራ አዝራሮች ያሉ ተግባሮችን ለማሳየት በጣቢያዎች ላይ የተካተተ</string>
+ <string name="preference_privacy_block_content">ሌሎች የይዘት መከታተያዎችን ያግዱ\n</string>
+ <string name="preference_privacy_block_content_summary2">ማስቻል አንዳንድ ገፆችን ያልታሰበ ፀባይ እንዲፈጽሙ ሊያደርጋቸው ይችላል</string>
+ <string name="preference_privacy_category_cookies">ኩኪዎችን አግድ</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">አልፈልግም፣አመሰግናለሁ</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">የሶስተኛ ወገን መከታተያ ኩኪዎችን ብቻ አግድ</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">የሶስተኛ ወገን ኩኪዎችን ብቻ አግድ</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">ከድረ-ገፅ ድረ-ገፅ የሚከታተሉ ኩኪዎችን አግድ</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">አዎ እባክዎ</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">መተግበሪያን ለመክፈት የጣት አሻራ ይጠቀሙ</string>
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">አቋራጮችን ካከሉ ወይም አንድ ድረ-ገፅ በ%s ውስጥ ክፍት ከሆነ፤ የጣት አሻራ በመጠቀም ይክፈቱ።</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">ስውር</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">መተግበሪያዎች በሚቀይሩበት ጊዜ ድረ-ገጾችን ደብቅ እና ስክሪንሻት መውሰድን አግድ።</string>
+
+ <string name="preference_category_security">ደህንነት</string>
+
+ <string name="preference_category_performance">አፈፃፀም</string>
+ <string name="preference_performance_block_webfonts">የድር ቅርጸ ቁምፊዎችን አግድ</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">አዶዎችን ወይም ምስሎችን የጠፉ ሊያስከትል ይችላል\n</string>
+
+ <string name="preference_performance_block_javascript">ጃቫ-ስክሪፕት አግድ</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">ገፆች በፍጥነት ሊከፍቱ ይችላሉ፣ ግን ደግሞ ያልተጠበቀ ባህሪ ሊኖራቸው ይችላል</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">አከናውን %1$s ነባሪ አሳሽ</string>
+
+ <string name="preference_category_mozilla">ሞዚላ</string>
+ <string name="preference_mozilla_telemetry2">የአጠቃቀም ውሂብ ይላኩ</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">ተጨማሪ ይወቁ</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">ሞዚላ %1$s ለሁሉም ለማቅረብ እና ለማሻሻል የሚያስፈልገንን ብቻ ለመሰብሰብ ይጥራል</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">የግላዊነት ማሳወቂያ</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">የፈቃድ መረጃ</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">የምንጠቀማቸው ጥቅሎች</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | ክፍት ምንጭ ሶፍትዌር (OSS) ጥቅሎች</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">ስለ %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">የተጫኑ የፍለጋ ፕሮግራሞች</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">የፍለጋ ፍርግም ይምረጡ</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">ነባሪ የፍለጋ ፕሮግራሞችን ወደነበረበት መልስ</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ ሌላ የፍለጋ ፕሮግራም አክል</string>
+ <string name="preference_search_remove_title">የፍለጋ ፕሮግራሞችን አስወግድ</string>
+ <string name="preference_search_remove">አስወግድ</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">ሌላ የፍለጋ ፍርግም አክል</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">የእርስዎን ተመራጭ ፍርግም ይምረጡ፡-</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">የፍለጋ ፕሮግራም አክል\n</string>
+
+ <string name="search_add_manually_name_hint">የመፈለጊያ ማሸን ስም</string>
+ <string name="search_add_manually_string">የሚጠቀሙ ሕብረ ቁምፊዎችን ፈልግ</string>
+ <string name="search_add_manually_save">አስቀምጥ</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">ለምሳሌ: ለምሳሌ.com /search/?q=%s</string>
+
+ <string name="search_add_confirmation">አዲስ የፍለጋ ፕሮግራም ታክሏል</string>
+
+ <string name="search_add_error_empty_name">የፍለጋውን ስም አስገባ</string>
+ <string name="search_add_error_duplicate_name">አንድ የተጫነ የፍለጋ ፕሮግራም አስቀድሞ በዚያ ስም እየተጠቀመ ነው\n</string>
+
+ <string name="search_add_error_empty_search">የፍለጋ ህብረ ቁምፊ ያስገቡ</string>
+
+ <string name="search_add_error_format">የፍለጋ ሕብረቁምፊ ና የምሳሌ ቅርጸት እንደ ሚመሳሰሉ አረጋግጥ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">ግቤት አጽዳ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">አሰናብት</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">የአሰሳ ታሪክን አጥፋ</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">ትሮች ተከፍተዋል: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">ደህንነቱ የተጠበቀ ግንኙነት</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">በመጫን ላይ</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">ድር ጣቢያ ተጭኗል</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">ተጨማሪ አማራጮች</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">ተጨማሪ አማራጮች አዝራር</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">ወደ ፊት አስስ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">ድር ጣቢያ እንደገና ይጫኑ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">ወደ ኋላ ዳስስ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">ድር ጣቢያ መጫን አቁም</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">ወደ ቀዳሚው መተግበሪያ ይመለሱ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">የታገዱ መከታተያዎች ብዛት</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">መከታተያዎችን አግድ</string>
+
+ <string name="your_rights">የእርስዎ መብቶች</string>
+
+ <string name="external_app_prompt_title">አገናኙን በሌላ መተግበሪያ ውስጥ ይክፈቱ</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">መሄድ ይችላሉ %1$s ይህንን አገናኝ በ ውስጥ ለመክፈት %2$s</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">አገናኙን መክፈት የሚችል መተግበሪያ ያግኙ</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">በመሣሪያዎ ላይ ካሉት መተግበሪያዎች ውስጥ አንዳቸውም ይህን አገናኝ መክፈት አይችሉም። የሚችል መተግበሪያ %2$s ለመፈለግ %1$sን ትተው መሄድ ይችላሉ።</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">የግል አሰሳውን ውጣ?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s ተጠናቅቋል</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">ክፈት</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">ወደ አቋራጮች ታክሏል!</string>
+
+ <string name="error_hostLookup_title">አገልጋይ አልተገኘም</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">ዝጋ</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">እንኳን ወደ %1$s በደህና መጡ</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">ፈጣን። የግል። ትኩረትን የሚከፋፍሉ ነገሮች የሌለው።</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">ይጀምሩ </string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s እንደ ሌሎች አሳሾች አይደለም</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">ለተጨማሪ ግላዊነት መተግበሪያውን ሲዘጉ ታሪክዎን እናጸዳለን።</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">በሚከፍቱት እያንዳንዱ አገናኝ ውሂብዎን ለመጠበቅ %1$s ነባሪ ያድርጉ።</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">ነባሪ አሳሽ አድርገህ አስቀምጥ</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">ዝለል</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">ግላዊነትዎን ያስፉ</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">የግል ፍለጋን ወደ ቀጣዩ ደረጃ ይወስዳል::በጣቢያዎች ውስጥ እርስዎን ሊከታተል የሚችል እና የገፅ ጭነት ጊዜዎችን ማደንዘዝ ማስታወቂያዎችን እና ሌላ ይዘትን አግድ</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">የእርስዎ ፍለጋ, የእርስዎ መንገድ</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">የሆነ የተለየ ነገር በመፈለግ ላይ? በቅንብሮች ውስጥ ሌላ ነባሪ የፍለጋ ፕሮግራም ይምረጡ</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">ወደ መነሻ ማያ ገጽዎ አቋራጮችን ያክሉ</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">ወደ እርስዎ ተወዳጅ ጣቢያዎች ይመለሱ %1$s በፍጥነት:: በቀላሉ ይምረጡ \&quot;ወደ መነሻ ማያ ገጽ አክል\&quot; ከ ዘንድ %1$s ምናሌ::</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">ግላዊነት የማድረግ ልማድ ያድርጉ</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">እንደ %1$s ነባሪ አሳሽዎ አድርገው ያቀናብሩ እና የድር ገጾች ከሌላ መተግበሪያዎች ሲከፍቱ የግል ማሰሻዎችን ጥቅሞች ያግኙ</string>
+
+ <string name="firstrun_close_button">እሺ ገባኝ!</string>
+ <string name="firstrun_skip_button">እለፍ</string>
+ <string name="firstrun_next_button">ቀጣይ</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">ጨምር</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">አዎ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">አጥፋ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">ይቅር</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">አቋራጩ የተሻሻለ የክትትል ጥበቃ የሌለው ሆኖ ይከፈታል</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">የግል የማሰሻ ክፍል</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">ማሳወቂያዎች የ%1$s ክፍለ ጊዜዎን አንዴ በመንካት እንዲሰርዙ ያስችሉዎታል። መተግበሪያውን መክፈት ወይም በአሳሽዎ ውስጥ ምን እንደሚካሄድ ማየት አያስፈልግዎትም።</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">የማሰሻ ታሪክን አጥፋ</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">ፋየርፎክስ አውርድ</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s ሞዚላ እና ሌሎች አስተዋፅዖ አድራጊዎች የተሰሩ ነጻ እና ግልጽ ምንጭ ሶፍትዌሮች ናቸው]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s ለእርስዎ የቀረበው በ<a href="%2$s">ሞዚላ የሕዝብ ፈቃድ</a> እና ሌሎች የክፍት ምንጭ ፈቃዶች ውል መሠረት ነው።]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[የሞዚላ፣ ፋየርፎክስ ወይም %1$s ስሞችን ወይም ዓርማዎችን ጨምሮ የሞዚላ ፋውንዴሽን ወይም የማንኛውም አካል የንግድ ምልክቶች ምንም ዓይነት መብት ወይም ፍቃድ አልተሰጠዎትም። ተጨማሪ መረጃ <a href="%2$s">እዚህ</a> ሊገኝ ይችላል።]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[የ%1$s ተጨማሪ ምንጭ ኮድ በተለያዩ ነፃ እና ክፍት ምንጭ <a href="%2$s">ፈቃዶች</a> ስር ይገኛል።]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s በተጨማሪም በ Disconnect, Inc. የሚቀርቡ የእግድ ዝርዝሮችን በ<a href="%2$s">በጂኤንዩ አጠቃላይ የህዝብ ፍቃድ v3</a> ስር እንደ ገለልተኛ ስራዎች ይጠቀማል፤ እና <a href="%3$s">እዚህ</a> ይገኛል።]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">የተጠቃሚ ስም</string>
+ <string name="gv_prompt_password_hint">የይለፍ ቃል</string>
+ <string name="gv_prompt_clear">አጽዳ</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">ደህንነቱ የተጠበቀ ግንኙነት</string>
+ <string name="security_popup_insecure_connection">ደህንነቱ ያልተጠበቀ ግንኙነት</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">አረጋጋጭ: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">የድረ-ገፅ ደህንነት</string>
+ <string name="preference_autocomplete_duplicate_url_error">ዩአርኤል አስቀድሞ አለ</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">በገጽ ውስጥ ያግኙ</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">በገጽ ውስጥ ያግኙ</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d ከ%2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">የሚቀጥለውን ውጤት ያግኙ</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">ያለፈውን ውጤት ያግኙ</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">በገጽ ውስጥ ማግኘትን አሰናብት</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">የዴስክቶፕ ድረ-ገፅን ይጠይቁ</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">የዴስክቶፕ ድረ-ገፅ</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">ዩአርኤል ተቀድቷል</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">የገንቢ መሳሪያዎች</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">አገናኞችን በመተግበሪያዎች ውስጥ ይክፈቱ</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">የላቀ</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">የድረ-ገፅ ፈቃዶች</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">የኩኪ ባነር ቅነሳ</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">በርቷል</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">ጠፍቷል</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">የኩኪ ባነር ቅነሳ</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">በተቻለ መጠን የኩኪ ጥያቄዎችን በራስ-ሰር ውድቅ በማድረግ ያነሱ ባነሮችን ይመልከቱ።</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">የኩኪ ባነር ቅነሳ</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ለዚህ ድረ-ገፅ በርቷል</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">በአሁኑ ጊዜ የማይደገፍ ድረ-ገፅ</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">ለዚህ ድረ-ገፅ ጠፍቷል</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">የኩኪ ባነር ቅነሳ</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">ለዚህ ድረ-ገፅ ጠፍቷል</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ለዚህ ድረ-ገፅ በርቷል</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">ለ%1$s የኩኪ ባነር ቅነሳ ይብራ?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">ለ%1$s የኩኪ ባነር ቅነሳ ይጥፋ?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s የዚህን ጣቢያ ኩኪዎች ያጠራል እና ገጹን ያድሳል። ሁሉንም ኩኪዎች ማጽዳት እርስዎን ሊያስወጣዎት ወይም የግዢ ጋሪዎችን ባዶ ሊያደርግ ይችላል።</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s የኩኪ ጥያቄዎችን በራስ ሰር ውድቅ ለማድረግ መሞከር ይችላል።</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">ይህ ድረ-ገጽ በአሁኑ ጊዜ በኩኪ ሰሌዳ ቅነሳ አይደገፍም። ቡድናችን ይህንን ድረ-ገጽ እንዲገመግም እና ለወደፊቱ ድጋፍ እንዲጨምር መጠየቅ ይፈልጋሉ?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">ተወው</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">ድጋፍ ይጠይቁ</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">የድረ-ገጽ ድጋፍ ጥያቄ ገብቷል።</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">የድረ-ገጽ ድጋፍ ጥያቄ ገብቷል።</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s የሚረብሹ የኩኪ ባነሮችን ለማሰናበት የኩኪ ጥያቄዎችን ውድቅ ለማድረግ ይሞክራል።\n\nየኩኪ ባነር ምርጫዎችን በ%2$s ውስጥ ያስተዳድሩ።</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">ቅንብሮች</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">ራስ-አጫዋች</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">ለመፍቀድ:-</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. ወደ አንድሮይድ መቼቶች ይሂዱ</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. <b>ፍቃዶችን</b> መታ ያድርጉ]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">ወደ ቅንብሮች ይሂዱ</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. <b>%1$s</b> ን ወደ አብራ ቀይር]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">ካሜራ</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">ድምፅ ማጉያ</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">ቦታ</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">ማሳወቂያ</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">በDRM ቁጥጥር የሚደረግበት ይዘት</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">ለመፍቀድ ጠይቅ</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">ታግዷል</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">ተፈቅዷል</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">በአንድሮይድ ታግዷል</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">ድምፅ እና ተንቀሳቃሽ ምሥል ፍቀድ</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">ድምፅን ብቻ አግድ</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">የሚመከር</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">ድምፅ እና ተንቀሳቃሽ ምሥል አግድ</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">ጥናቶች</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">ፋየርፎክስ ከጊዜ ወደ ጊዜ ጥናቶችን ሊጭን እና ሊያሄድ ይችላል።</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">ተጨማሪ ይወቁ</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">ለውጦችን ለመተግበር መተግበርያው ያቆማል</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">አስወግድ</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">ንቁ</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">የተጠናቀቀ</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">በUSB/Wi-Fi በኩል የርቀት ማረም</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">ይክፈቱ</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">የጣት አሻራዎን በመጠቀም ያረጋግጡ</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">የአሁኑን የመተግበሪያ ክፍለ ጊዜዎን ለመቀጠል የጣት አሻራዎን መጠቀም ይችላሉ።</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">አገናኝ በአዲስ ክፍለ ጊዜ ክፈት</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">የጣት አሻራ አዶ</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">የማይታወቅ የጣት አሻራ። እንደገና ይሞክሩ።</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">ጣትዎ በጣም በፍጥነት ተንቀሳቅሷል። እንደገና ይሞክሩ።</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">የፍለጋ ጥቆማዎችን አሳይ?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> ጥቆማዎችን ለማግኘት %1$s በአድራሻ አሞሌው ላይ የሚተይቡትን ወደ ፍለጋ ፍርግም መላክ አለበት።</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">ይቅር</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">አዎ</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">አንዳንድ የፍለጋ ፍርግሞች ጥቆማዎችን ማሳየት አይችሉም።</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">አሰናብት</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">ድረ-ገፁ ያልተጠበቀ ባህሪ አለው?\n
+ የክትትል ጥበቃን በማጥፋት ይሞክሩ</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[ብዙ ጊዜ የሚጠቀሟቸውን ድረ-ገፆች በቅርብ ለማግኘት%1$s ምናሌ > ወደ መነሻ ገፅ አክል]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">እያንዳንዱን አገናኝ በ %1$s ክፈት\n
+ %1$sን ነባሪ አሳሽ አድርግ</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">በብዛት ለሚጠቀሙባቸው ድረ-ገፆች ዩአርኤሎችን በራስ ሰር ያጠናቅቁ\n
+ በአድራሻ አሞሌው ውስጥ ማንኛውንም ዩአርኤል በረጅሙ ይጫኑ</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">በአዲስ ትር ውስጥ አገናኝ ክፈት\n
+ በገጽ ላይ ያለውን ማንኛውንም አገናኝ በረጅሙ ይጫኑ</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">በመነሻ ማያ ገጹ ላይ ጠቃሚ ምክሮችን አጥፋ</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">አዲስ ትር ተከፍቷል</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">ቀይር</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">ወደ ሙሉ ማያ ገጽ ሁነታ በመግባት ላይ</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">ወደ አገናኝ አዲስ ትር ወዲያውኑ ቀይር</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">አደገኛ ሊሆኑ የሚችሉ እና አታላይ ድረ-ገፆችን አግድ</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">ሪፖርት የተደረጉ የማታለል እና የጥቃት ድረ-ገፆችን፣ የማልዌር ድረ-ገፆችን እና ያልተፈለጉ የሶፍትዌር ድረ-ገፆችን አግድ።</string>
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">HTTPS-ብቻ ሁነታ</string>
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">ለበለጠ ደህንነት የ HTTPS ምስጠራ ፕሮቶኮልን በመጠቀም ከድረ-ገፆች ጋር በራስ-ሰር ለመገናኘት ይሞክራል።</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">የተለዩ</string>
+
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">ለእነዚህ ድረ-ገጾች የሚከለክል የይዘት እገዳን አንስተዋል።</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">አስወግድ</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">ሁሉንም ድረ-ገፆች አስወግድ</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">ኩኪዎችን አግድ</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">ኩኪዎችን ማገድ ይፈልጋሉ?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">ትር ተበላሽቷል</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">እናዝናለን። በዚህ ትር ላይ ችግር እያጋጠመን ነው።</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">እንደ የግል አሳሽ፣ ይህን ትር በፍፁም አናስቀምጥም እና ወደነበረበት መመለስ አንችልም።</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">ትርን ዝጋ</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">የብልሽት ሪፖርት ወደ ሞዚላ ይላኩ</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">ከ%s ጀምሮ የታገዱ መከታተያዎች </string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">ይዘት</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">ማስታወቂያ</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">ማኅበራዊ</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">ትንታኔ</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">የተሻሻለ የመከታተያ ጥበቃ</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">ለዚህ ጣቢያ ጥበቃዎች ጠፍተዋል</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">ጥበቃዎች ለዚህ ጣቢያ በርተዋል</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">ግንኙነት ደህንነቱ የተጠበቀ ነው</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">ግንኙነት ደህንነቱ የተጠበቀ አይደለም</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">መከታተያዎች እና ስክሪፕቶች ለማገድ </string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">ተመለስ</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">አስወግድ</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">እንደገና ይሰይሙ</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">እንደገና ይሰይሙ</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">የአቋራጭ ስም</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">የተቀመጡ እና የተጋሩ ምስሎች የ%1$s ታሪክን ሲደመስሱ &lt;b&gt;አይጠፉም&lt;/b&gt;</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">ገጽታ</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">ፈካ ያለ</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">ጨለም ያለ</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">በባትሪ ቆጣቢ የተዘጋጀ</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">የመሳሪያውን ገጽታ ተከተል</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">ይህ ድረ-ገፅ HTTPSን አይደግፍም</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s ለበለጠ ደህንነት በተቻለ መጠን የHTTPS ግንኙነት ለመጠቀም ይሞክራል።
+ <a href="%2$s">የበለጠ ለመረዳት</a> <br/><br/>
+ ይህን ቅንብር በቅንብሮች> ግላዊነት &amp; ደህንነት > ደህንነት።]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">ግንኙነት ደህንነቱ የተጠበቀ አይደለም</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ ይህ የሰርቨር ውቅር ችግር ሊሆን ይችላል፣ ወይም ሰርቨሩን ለመምሰል የሚሞክር ሰው ሊሆን ይችላል። <br/><br/>
+ ከዚህ ሰርቨር ጋር ከዚህ ቀደም በተሳካ ሁኔታ ከተገናኙ፤ ስህተቱ ጊዜያዊ ሊሆን ይችላል።
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>አንድ ሰው ድረ-ገፁን ለማስመሰል እየሞከረ ሊሆን ይችላል እና መቀጠል አደገኛ ሊሆን ይችላል።</label>
+ <br><br>
+ <label>%1$s <b>%2$s</b>ን አያምንም ምክንያቱም የእውቅና ማረጋገጫ ሰጪው ስለማይታወቅ፣ የእውቅና ማረጋገጫው በራሱ የተፈረመ ነው ወይም ሰርቨሩ ትክክለኛ መካከለኛ የእውቅና ማረጋገጫዎችን እየላከ አይደለም።</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">ትርን ዝጋ</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">ይዘናቸዋል! ይህ ድረ-ገፅ እርስዎን እንዳይሰልል አቁመነዋል። የምንከለክለውን ለማየት በማንኛውም ጊዜ መከለያውን ይንኩ።</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">ብቅ ባይን ዝጋ</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">እርስዎ ጥበቃ ይደረግልዎታል!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">እነዚህ ነባሪ ቅንጅቶች ጠንካራ ጥበቃ ይሰጣሉ። ግን ልዩ ፍላጎቶችዎን ለማሟላት ቅንብሮቹን ማስተካከል ቀላል ነው።</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">አሰናብት</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">ሁሉንም - ታሪክን፣ ኩኪዎችን፣ ሁሉንም ነገር ለማጥፋት እዚህ ነካ ያድርጉ እና በአዲስ ትር ላይ አዲስ ይጀምሩ።</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">ዝጋ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">የፍለጋ መግብር</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">የአሰሳ ታሪክ ጸድቷል! 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">የግል አሰሳ ክፍለ ጊዜህን ጀምር፣ እና ሲጠቀሙ መከታተያዎችን እና ሌሎች መጥፎ ነገሮችን እናግዳለን።</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">እርስዎን ከግል አሰሳዎ ጋር እንተውዎታለን፣ ነገር-ግን በሚቀጥለው ጊዜ በመነሻ ማያዎ ላይ ባለው %1$s መግብር በፍጥነት ይጀምሩ።</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">መግብርን ወደ መነሻ ማያ ገጽ ያክሉ</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">መግብር ወደ መነሻ ማያ ገጽ ታክሏል</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-an/strings.xml b/mobile/android/focus-android/app/src/main/res/values-an/strings.xml
new file mode 100644
index 0000000000..7e798cf8f6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-an/strings.xml
@@ -0,0 +1,311 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <string name="action_cancel">Cancelar</string>
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Alzar</string>
+
+ <string name="urlbar_hint">Buscar u escribir adreza</string>
+
+ <string name="teaser">Navegación privada automatica.\nNavegar. Borrar. Repetir.</string>
+
+ <string name="feedback_erase">S\'ha borrau lo suyo historial de navegación.</string>
+
+ <string name="search_hint">Buscar %1$s</string>
+
+ <string name="menu_share">Compartir…</string>
+
+ <string name="menu_report_site_issue">Reportar problema en o puesto web</string>
+
+ <string name="menu_open_with_default_browser2">Ubrir en %1$s</string>
+
+ <string name="menu_open_with_a_browser2">Ubrir en…</string>
+
+ <string name="menu_add_to_home_screen">Anyader a la pantalla d\'inicio</string>
+
+ <string name="menu_settings">Achustes</string>
+ <string name="menu_about">Quanto a</string>
+ <string name="menu_help">Aduyar</string>
+ <string name="menu_rights">Los tuyos dreitos</string>
+
+ <string name="menu_trackers_blocked_title">Trazadors blocaus</string>
+
+ <string name="menu_custom_tab_branding">Empentau per %1$s</string>
+
+ <string name="share_dialog_title">Compartir vía</string>
+
+ <string name="notification_erase_text">Borrar l\'historial de navegación</string>
+
+ <string name="notification_action_open">Ubrir</string>
+
+ <string name="notification_action_erase_and_open">Borrar y ubrir</string>
+
+ <string name="shortcut_erase_short_label">Borrar</string>
+
+ <string name="shortcut_erase_long_label">Borrar l\'historial de navegación</string>
+
+
+ <string name="preference_privacy_and_security_header">Privacidat y seguranza</string>
+
+ <string name="preference_privacy_and_security_summary">Seguimiento, cookies, trías de datos</string>
+
+ <string name="preference_search_summary">Valors per defecto, autocompletar</string>
+
+ <string name="preference_mozilla_summary">Quanto a %1$s, aduya</string>
+
+ <string name="preference_category_web_content">Conteniu web</string>
+
+ <string name="preference_category_switching_apps">Cambiar entre las aplicacions</string>
+
+ <string name="preference_category_general">Cheneral</string>
+
+ <string name="preference_category_data_collection_use">Replega y uso de datos</string>
+
+ <string name="preference_category_search">Buscar</string>
+
+ <string name="preference_search_engine_default">Per defecto</string>
+
+ <string name="preference_state_on">Activau</string>
+
+ <string name="preference_state_off">Desactivau</string>
+
+ <string name="preference_subitem_autocomplete">Autocompletar URL</string>
+
+ <string name="preference_autocomplete_action_add">+ Anyader URL personalizada</string>
+
+ <string name="preference_autocomplete_title_add">Anyader URL personalizada</string>
+
+ <string name="custom_autocomplete_quick_add">Anyadir una URL personalizada</string>
+
+ <string name="preference_category_cookies">Cookies y datos d\'o puesto</string>
+
+ <string name="preference_category_data_choices">Trías de datos</string>
+
+ <string name="preference_autocomplete_title_remove">Borrar URLs personalizadas</string>
+
+ <string name="preference_autocomplete_learn_more">Saber-ne mas</string>
+
+ <string name="preference_autocomplete_custom_summary">Anyader y chestionar l\'autocompletau personalizau d\'URLs.</string>
+
+ <string name="preference_autocomplete_add_title">URL a anyader</string>
+
+ <string name="preference_autocomplete_add_hint">Apegar u escribir URL</string>
+
+ <string name="preference_autocomplete_add_example2">Eixemplo: mozilla.org</string>
+
+ <string name="preference_autocomplete_add_example">Eixemplo: eixemplo.com</string>
+
+ <string name="preference_autocomplete_add_confirmation">Nueva URL personalizada anyadida.</string>
+
+ <string name="preference_autocomplete_menu_remove">Borrar</string>
+
+ <string name="preference_autocomplete_action_remove_content_description">Borrar</string>
+
+ <string name="preference_autocomplete_add_error">Compreba la URL que has escrito.</string>
+
+ <string name="preference_language">Idioma</string>
+ <string name="preference_language_systemdefault">Predeterminau d\'o sistema</string>
+
+ <string name="preference_category_privacy">Privacidat</string>
+ <string name="preference_privacy_block_ads">Blocar los trazadors publicitarios</string>
+ <string name="preference_privacy_block_ads_summary">Bells anuncios fan seguimiento d\'as visitas alo puesto, mesmo si no fas clic en os anuncios</string>
+ <string name="preference_privacy_block_analytics">Bloca los trazadors analiticos</string>
+ <string name="preference_privacy_block_analytics_summary">Usaus pa replegar, analisar y medir actividatz como toques a la pantalla y desplazamientos de pantalles</string>
+ <string name="preference_privacy_block_social">Bloca los trazadors socials</string>
+ <string name="preference_privacy_block_social_summary">Incrustaus en puestos web pa trazar las tuyas visitas y amostrar funcionalidatz coo los botons de compartición</string>
+ <string name="preference_privacy_block_content">Bloca los trazadors d\'atro conteniu</string>
+ <string name="preference_privacy_block_content_summary2">Activar esta opción puede provocar problemas en bellas pachinas</string>
+ <string name="preference_privacy_category_cookies">Blocar las cookies</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Blocar nomás las cookies de tercers</string>
+
+ <string name="preference_privacy_secure_mode">Indetectable</string>
+ <string name="preference_privacy_stealth_summary">Amagar pachinas web quan se cambie d\'aplicación</string>
+
+ <string name="preference_category_performance">Rendimiento</string>
+ <string name="preference_performance_block_webfonts">Blocar fuents de Web</string>
+ <string name="preference_performance_block_webfonts_summary">Puede fer que no se veigan iconos u imachens</string>
+
+ <string name="preference_performance_block_javascript">Blocar JavaScript</string>
+ <string name="preference_performance_block_javascript_summary">Las pachinas se cargarán mas aprisa, pero talment no se comporten en a traza esperada</string>
+
+ <string name="preference_default_browser2">Fer que %1$s siga lo navegador per defecto</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Ninviar datos d\'uso</string>
+
+ <string name="preference_mozilla_telemetry_summary">Saber-ne mas</string>
+
+ <string name="preference_mozilla_telemetry_summary2">Mozilla s\'esfuerza per replegar nomás lo necesario pa fornir y amillorar %1$s pa totz.</string>
+
+ <string name="preference_privacy_notice">Politica de privacidat</string>
+
+ <string name="preference_about">Quanto a %1$s</string>
+
+ <string name="preference_search_installed_search_engines">Motors de busqueda instalaus</string>
+
+ <string name="preference_search_restore">Restaurar los motors de busqueda per defecto</string>
+
+ <string name="preference_search_add2">+ Anyader belatro motor de busqueda</string>
+ <string name="preference_search_remove_title">Sacar motors de busqueda</string>
+ <string name="preference_search_remove">Eliminar</string>
+
+ <string name="action_option_add_search_engine">Anyader motor de busqueda</string>
+
+ <string name="search_add_manually_name_hint">Nombre d\'o motor de busqueda</string>
+ <string name="search_add_manually_string">Cadena de busqueda a emplegar</string>
+ <string name="search_add_manually_save">Alzar</string>
+
+ <string name="search_add_manually_example">Eixemplo: eixemplo.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Nuevo motor de busqueda anyadiu.</string>
+
+ <string name="search_add_error_empty_name">Escribir lo nombre d\'o motor de busqueda</string>
+ <string name="search_add_error_duplicate_name">Un motor de busqueda instalau ye emplegando ya ixe nombre.</string>
+
+ <string name="search_add_error_empty_search">Escribe la cadena de busqueda</string>
+
+ <string name="search_add_error_format">Compreba que la cadena de busqueda concuerda con lo formato d\'eixemplo</string>
+
+ <string name="content_description_clear_input">Borrar lo texto</string>
+
+ <string name="content_description_dismiss_input">Descartar</string>
+
+ <string name="content_description_erase">Borrar l\'historial de navegación</string>
+
+ <string name="content_description_tab_counter">Pestanyas ubiertas: %1$s</string>
+
+ <string name="content_description_lock">Connexión segura</string>
+
+ <string name="accessibility_announcement_loading">Se ye cargando</string>
+
+ <string name="accessibility_announcement_loading_finished">Puesto web cargau</string>
+
+ <string name="content_description_menu">Mas opcions</string>
+
+ <string name="content_description_forward">Abanzar en l\'historial</string>
+
+ <string name="content_description_reload">Esviellar la pachina</string>
+
+ <string name="content_description_back">Ir enta zaga en l\'historial</string>
+
+ <string name="content_description_stop">Aturar la carga d\'a pachina</string>
+
+ <string name="content_description_customtab_exit">Tornar ta l\'aplicación anterior</string>
+
+ <string name="content_description_blocking_switch">Blocar trazadors</string>
+
+ <string name="your_rights">Los tuyos dreitos</string>
+
+ <string name="external_app_prompt_title">Ubrir lo vinclo en belatra aplicación</string>
+ <string name="external_app_prompt">Puetz salir d\'o %1$s pa ubrir este vinclo en %2$s.</string>
+ <string name="external_app_prompt_no_app_title">Trobar una aplicación que pueda ubrir lo vinclo</string>
+ <string name="external_app_prompt_no_app">Garra d\'as aplicacions d\'o tuyo dispositivo ha estau capable d\'ubrir este vinclo. Puetz zarrar lo %1$s pa mirar en %2$s una aplicación que lo pueda ubrir.</string>
+ <string name="external_multiple_apps_matched_exit">Salir d\'a Navegación Privada?</string>
+
+ <string name="download_snackbar_finished">%1$s ha rematau</string>
+
+ <string name="download_snackbar_open">Ubrir</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">No s\'ha trobau lo servidor</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <string name="firstrun_defaultbrowser_title">Refuerza la tuya privacidat</string>
+ <string name="firstrun_defaultbrowser_text2">Leva la navegación privada ta lo siguient nivel. Bloca anuncios y atros contenius que puedan seguir-te a través d\'a web y enlenteixen la carga d\'as pachinas.</string>
+
+ <string name="firstrun_search_title">Busca a la tuya traza</string>
+ <string name="firstrun_search_text">Yes mirando bella cosa diferent? Triga belatro motor de busqueda en os Achustes.</string>
+
+ <string name="firstrun_shortcut_title">Anyade alcorces a la tuya pantalla d\'inicio</string>
+ <string name="firstrun_shortcut_text">Torna rapidament ta los tuyos puestos favoritos en %1$s. Triga simplement \&quot;Anyader en a pantalla d\'inicio\&quot; dende lo menú %1$s.</string>
+
+ <string name="firstrun_privacy_title">Fe d\'a privacidat un costumbre</string>
+ <string name="firstrun_privacy_text">Fe de %1$s lo tuyo navegador per defecto y aconsigue los beneficios d\'a navegación privada quan ubres pachinas web dende atras aplicacions.</string>
+
+ <string name="firstrun_close_button">Entendiu!</string>
+ <string name="firstrun_skip_button">Blincar</string>
+ <string name="firstrun_next_button">Siguient</string>
+
+ <string name="content_blocking_disabled">-</string>
+
+ <string name="dialog_addtohomescreen_action_add">Anyader</string>
+
+ <string name="dialog_addtohomescreen_action_cancel">Cancelar</string>
+
+ <string name="notification_browsing_session_channel_name">Sesión de navegación privada</string>
+
+ <string name="notification_browsing_session_channel_description">Las notificacions te deixar borrar la tuya sesión de %1$s d\'un toque. No te cal ubrir l\'aplicación ni amostrar lo conteniu d\'o navegador.</string>
+
+ <string name="tabs_tray_action_erase">Borra l\'historial de navegación</string>
+
+ <string name="download_firefox">Baixa-te lo Firefox</string>
+
+ <string name="your_rights_content1">%1$s ye software libre y de codigo ubierto, feito per Mozilla y atros colaboradors.</string>
+
+
+
+
+ <string name="gv_prompt_username_hint">Nombre d\'usuario</string>
+ <string name="gv_prompt_password_hint">Clau</string>
+ <string name="gv_prompt_clear">Borrar</string>
+
+ <string name="security_popup_secure_connection">Connexión segura</string>
+ <string name="security_popup_insecure_connection">Connexión no segura</string>
+ <string name="security_popup_security_verified">Verificau per: %1$s</string>
+
+ <string name="site_security_icon_content_description">Seguranza de puesto web</string>
+ <string name="preference_autocomplete_duplicate_url_error">La URL ya existe</string>
+
+ <string name="find_in_page">Trobar en a Pachina</string>
+
+ <string name="find_in_page_input">Trobar en a pachina</string>
+
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <string name="accessibility_find_in_page_result">%1$d de %2$d</string>
+
+ <string name="accessibility_next_result">Trobar lo siguient resultau</string>
+ <string name="accessibility_previous_result">Trobar lo resultau anterior</string>
+ <string name="accessibility_dismiss_find_in_page">Deixar de buscar en a pachina</string>
+
+
+
+ <string name="preference_performance_request_desktop_site">Demandar lo puesto de sobremesa</string>
+
+ <string name="custom_tab_copy_url_action">URL copiada</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-anp/strings.xml b/mobile/android/focus-android/app/src/main/res/values-anp/strings.xml
new file mode 100644
index 0000000000..83cdf11f64
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-anp/strings.xml
@@ -0,0 +1,730 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">रद्द करियै</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ठीक</string>
+
+ <string name="action_save">सहेजियै</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">खोजियै अथवा पता भरियै</string>
+
+ <string name="teaser">स्वचालित निजी ब्रॉउजिंग.ब्रॉउज. मेटैइयै. दोहरैइयै.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">अपने के ब्रॉउजिंग इतिहास मेटाए देलो गेलए.</string>
+ <string name="feedback_erase2">ब्राउज़िंग इतिहास मेटाल्य गेलै</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">टैब्स के ब्रॉउजिंग इतिहास मेटाए देलो गेलए.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s लेली खोजियै</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">शेयर…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">साइट क रिपोर्ट करियै</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s में खोलियै</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">एकरा में खोलियै…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">होम स्क्रीन में जोड़ि‍यै</string>
+
+ <string name="menu_settings">सेटिंग्स</string>
+ <string name="menu_about">के संबंध में</string>
+ <string name="menu_help">मदत</string>
+ <string name="menu_rights">अपने के अधिकार</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">ट्रेकर्स ब्लॉक भेलै</string>
+
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">कुछ साइटों के ठीक करै ले बंद करियै</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s के द्वारा चलाएल जाए रहलो छै</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">एकरा द्वारा शेयर करियै</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">ब्राउज़िंग इतिहास मेटैइयै</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">खोलियै</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">मेटैइयै आरू खोलियै</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">मेटैइयै</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">ब्राउज़िंग इतिहास मेटैइयै</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">मेटैइयै आरू खोलियै</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">%1$s मेटैइयै आरू खोलियै</string>
+
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">गोपनियता आरु सुरक्षा</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">ट्रैकिंग, कुकीज़, डेटा चुनियै</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">डिफॉल्ट सेट करियै, आपनो सऽ पूर्न</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s कऽ बारो मे, मदद</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">वेब सामग्री</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">स्विचिंग एप्स</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">सामान्य</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">डेटा संग्रह आरु उपयोग</string>
+
+ <string name="preference_category_search">खोजियै</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">खोज सुझाव प्राप्त करियै</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">आपनो के सर्च ईंजन के एड्रेस बार म जे टाइप करबे %1$s उकरा भेज देत</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">डिफ़ॉल्ट</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">सर्च ईंजन</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">चालू</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">बंद</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL अपना सँ पूर्ण</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">सर्वोच्च साइट्स खातिर</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">एड्रेस बार में 450 लोकप्रिय URLs पर %1$s स्वत: पूर्णता लेली सक्षम करू</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">साइटों ले आपने जोड़ि‍यै</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">साइटों के प्रबंध करियै</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">साइटों के प्रबंध करियै</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ अपन पसंदीदा URL जोड़ि‍यै</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL जोड़ि‍यै</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">पसंदीदा URL जोड़ि‍यै</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">पसंदीदा URL जोड़ि‍यै</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">अपना सँ पूर्ण खातिर लिंक जोड़ि‍यै</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">कुकीज़ आरु साइट डेटा</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">डेटा चुनियै</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">पसंदीदा URLs जोड़ि‍यै</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">बेसी जानकारी</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">जोड़ि‍यै आरु मैनेज करि‍यै पसंदीदा अपना सँ पूर्ण URLs.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">जोड़ए लेली URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">URL पेस्ट करि‍यै या भरि‍यै</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">उदाहरण: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">उदाहरण: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">नया उपभोक्ता पसंदीदा URL जोड़लोऽ गेलै.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">हटैइयै</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">हटैइयै</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">जे URL भरने छथिन ओकरा फिनु सँ जाँच करि‍यै.</string>
+
+ <string name="preference_language">भाषा</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">डिफ़ॉल्ट सिस्टम</string>
+
+ <string name="preference_category_privacy">गोपनीयता</string>
+ <string name="preference_privacy_block_ads">विज्ञापन ट्रैकर्स कs ब्लॉक करियै</string>
+ <string name="preference_privacy_block_ads_summary">कुछ विज्ञापन साइट विजिट ट्रैक करै छै, भले अपने विज्ञापन पर क्लिक नै करै छी</string>
+ <string name="preference_privacy_block_analytics">एनालेटिक ट्रैकर्स ब्लौक करियै</string>
+ <string name="preference_privacy_block_analytics_summary">इकट्ठा करै लऽ, विश्लेषण और मापे लऽ उपयोग करलो जाय छै</string>
+ <string name="preference_privacy_block_social">सोशल ट्रैकर्स ब्लौक करियै</string>
+ <string name="preference_privacy_block_social_summary">साइट पर अपने के आबै जाए पर निगरानी राखए आरू शेयर बटन जेहन कार्यक्षमता प्रदर्शित करए लेली अंत:स्थापित</string>
+ <string name="preference_privacy_block_content">दोसरो कोंटेंट ट्रैकर्स ब्लौक करियै</string>
+ <string name="preference_privacy_block_content_summary2">सक्षम करै सऽ कुछ पृष्ठ के व्यवहार अप्रत्याशित हुए सकै छै</string>
+ <string name="preference_privacy_category_cookies">कुकीज ब्लौक करियै</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">नै, धन्यवाद</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">खाली 3र्ड पार्टी ट्रैकर कूकीज ब्लौक करियै</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">खाली 3र्ड पार्टी कूकीज ब्लौक करियै</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">ऐप अनलॉक करै ले फिंगरप्रिंट क प्रयोग करियै</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">गोपनीयता</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">ऐप्स क स्विच करै समय आरु स्क्रीनशॉट लै पर ब्लोक करै समय वेबपेज नुकैइयै.</string>
+
+ <string name="preference_category_security">सुरक्षा</string>
+
+ <string name="preference_category_performance">प्रदर्शन</string>
+ <string name="preference_performance_block_webfonts">वेब फ्रंट ब्लौक करियै</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">आइकन अथवा छवि गुम हुए सकै छै</string>
+
+ <string name="preference_performance_block_javascript">&quot; JavaScript ब्लौक करियै&quot;</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">पेज तेजी सँ लोड हुए सकै छै, मगर अनजान व्यवहार भी करै सकै छै</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s कऽ डिफ़ॉल्ट ब्रॉजर बनैइयै</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">उपयोग डेटा भेजियै</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">बेसी जानकारी</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla केवल ओ चीज के जमा करै छै जकरा %1$s मे सभक लेली सुधार करै केरो आवश्यक्ता छै.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">गोपनीयता सूचना</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s के बारे मे</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">सर्च ईंजन इंसटॉल करलो गेलै</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">सर्च ईंजन चुनियै</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">डिफॉल्ट सर्च इंजन के रिस्टोर करियै</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ अन्य सर्च इंजन जोड़ियै</string>
+ <string name="preference_search_remove_title">सर्च ईंजन हटैइयै</string>
+ <string name="preference_search_remove">हटैइयै</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">दोसरो सर्च इंजन जोड़ियै</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">सर्च ईंजन जोरियै</string>
+
+ <string name="search_add_manually_name_hint">सर्च ईंजन नाम</string>
+ <string name="search_add_manually_string">उपयोग लेली सर्च स्ट्रिंग</string>
+ <string name="search_add_manually_save">सहेजियै</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">उदाहरण: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">नया सर्च ईंजन जोड़लो गेल.</string>
+
+ <string name="search_add_error_empty_name">सर्च ईंजन केरो नाम भरियै</string>
+ <string name="search_add_error_duplicate_name">एक ठो इंस्टॉल करल सर्च इंजन पहिने सs ओए नाम के उपयोग करि रहलो छै.</string>
+
+ <string name="search_add_error_empty_search">सर्च स्ट्रिंग भरियै</string>
+
+ <string name="search_add_error_format">जाँचू जे सर्च स्ट्रिंग उदाहरण प्रारूप सँ मेल करै छै</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">इनपुट मेटैइयै</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">रद्द करियै</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">ब्राउजिंग इतिहास मेटैइयै</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">%1$s टैब्स खोलियै</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">सुरक्षित कनेक्सन</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">लोड भ्या रहलो छै</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">वेबसाईट लोड भेलै</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">अधिक विकल्प</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">अधिक विकल्प बटन</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">आगाँ मार्गनिर्देशित करियै</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">वेबसाईट फेनु लोड करियै</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">पाछाँ मार्गनिर्देशित करियै</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">लोड भ्या रहलो वेबसाईट के रोकियै</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">पिछला ऐप पर वापस घुरियैs</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">ब्लॉक भेल ट्रैकर्स के संख्या</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">ट्रेकर्स ब्लॉक करियै</string>
+
+ <string name="your_rights">अपने के अधिकार</string>
+
+ <string name="external_app_prompt_title">दोसर एप मे लिंक खोलियै</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">अपने लिंक %2$s में खोलै लेली %1$s छोड़ि सकै छी.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">एकठो ऐप खोजू जे लिंक खोलि सकैत छै</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">अपने के डिवाइस केरो कोनो ऐप ई लिंक के खोलि नै सकै छै. अपने ऐप %2$s खोजै लेली %1$s छोड़ि सकै छी जे ऐप खोजि सकै छै.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">निजी ब्राउज़िंग से बाहर निकलब?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s समाप्त भेलै</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">खोलियै</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">सर्वर नय भेटल</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">बंद करियै</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">%1$s रो स्वागत छै</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">डिफ़ॉल्ट ब्राउज़र सेट करो</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">छोड़ियै</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">अपन गोपनीयता के बढ़ैइयै</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">निजी ब्राउज़िंग के अगिला स्तर धरि लिअ. विज्ञापन आरू आन सामग्री के ब्लॉक करू जे अहाँक सभ साइट के ट्रैक करि सकै छै आरू पृष्ठ लोड समय के बढ़ाए दै छै.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">अपने के खोज, अपने के रस्ता</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">कुछ अलग खोजि रहलो छी? सेटिंग्स में दोसर डिफ़ॉल्ट खोज इंजन चुनियै.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">अपन मुख्य स्क्रीन पर शॉर्टकट जोड़ियै</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">%1$s में अपन पसंदीदा साइट पर तेज़ी सँ वापस जइयै. बस %1$s मेनू से \&quot;मुख्य स्क्रीन पर जोड़ियै\&quot; चुनियै.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">गोपनीयता अपन आदत बनैइयै</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">%1$s क अपनो तयशुदा ब्राउज़र रूप में सेट करू आरू जखन अहाँ आन ऐप सँ वेबपृष्ठ खोलै छी तब निजी ब्राउज़िंग केरो फायदा प्राप्त करियै.</string>
+
+ <string name="firstrun_close_button">ठीक, बुझि गेलियै!</string>
+ <string name="firstrun_skip_button">छोड़ियै</string>
+ <string name="firstrun_next_button">अगिला</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">जोड़ियै</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">हा</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">रद्द करियै</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">ना</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">निजी ब्राउज़िंग सत्र</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">अधिसूचनाएँ अपने क अपन %1$s सत्र एक टैप सँग मेटाबै दय छै. अपने के ऐप खोलए या ब्राउज़र में कथि भ्या रहलो छै, देखए केरो ज़रूरत नय छै.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">ब्राउज़िंग इतिहास मेटैइयै</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox डाउनलोड करियै</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s Mozilla आरू आन योगदानकर्ता द्वारा बनाएल गेलो स्वतंत्र आरू मुक्त स्रोत सॉफ्टवेयर छै.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s <a href="%2$s">मोज़िला सार्वजनिक लाइसेंस</a> आरू आन मुक्त स्रोत लाइसेंस केरो नियम के अंतर्गत अहाँ के उपलब्ध करैलो जाए छै.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[%1$s लेली अतिरिक्त स्रोत कोड अनेक आन निशुल्क आरू मुक्त स्रोत <a href="%2$s">लाइसेन्स</a> केरो अंतर्गत उपलब्ध छै.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">यूजरनाम</string>
+ <string name="gv_prompt_password_hint">पासवर्ड</string>
+ <string name="gv_prompt_clear">हटैइयै</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">सुरक्षित कनेक्शन</string>
+ <string name="security_popup_insecure_connection">असुरक्षित कनेक्शन</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">%1$s द्वारा सत्यापित</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">साइट सुरक्षा</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL पहले से मौजूद छै</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">पेज मs खोजिइयै</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">पेज मs खोजिइयै</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%2$d सs %1$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">अगलो परिणाम जानिइयै</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">पिछ्लो परिणाम जानिइयै</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">पेज में रद्द करियै</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">डेस्कटॉप साइट लs आग्रह करियै</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL कॉपी भेलऽ</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">डेवलपर उपकरण</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">विकसित करल गेल</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">चालू</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">बंद</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">रद्द करियै</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">सेटिंग्स</string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">सेटिंग्स में जाहो</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">स्थान</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">बेसी जानकारी</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">हटैइयै</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">पूरा भेल</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">USB/Wi-Fi के द्वारा रिमोट डीबगिंग</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">नए सत्र में लिंक खोलियै</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">फिंगरप्रिंट आइकन</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">फिंगरप्रिंट नै पहचानल गेल छकै. फेनु प्रयास करियै.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">फिंगर बहुत तेज छ्कै. फेनु प्रयास करियै.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">खोज सुझाव देखबै?</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">नैय</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">हौं</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">कुछ सर्च ईंजन सुझाव नै दिखाय सकै छै.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">रद्द करियै</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">कि साइट अप्रत्याशित रूप से व्यवहार कैर रहल छै?\n ट्रैकिंग सुरक्षा बंद करै के प्रयास करियै</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[सबसे जादा उपयोग करै वाला साइटों के एक-टैप मे एक्सेस प्राप्त करियै%1$s मेनू> होम स्क्रीन में जोरियै]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">%1$s में सब लिंक खोलियै\n डिफ़ॉल्ट ब्राउज़र के रूप में %1$s सेट करियै</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">सबसे जादा उपयोग करै वाला साइटों के अपना सँ पूर्ण URLs ले\n एड्रेस बार में कोनो URL के देर तक दबियै</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">नया टैब में एगो लिंक खोलियै\n  पेज पर कोनो लिंक के देर तक दाबियै</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">प्रारंभ स्क्रीन सलाह के बंद करियै</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">नया टैब खुलल</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">बदलियै</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">अपवाद</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">हटैइयै</string>
+
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">सब वेबसाईट हटैइयै</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">कुकीज ब्लौक करियै</string>
+
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">टैब बंद करियै</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">सामाजिक</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">पिछू जाइयै</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">हटैइयै</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">नाम बदलियै</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">नाम बदलियै</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">सहेजलो गेल आरू शेयर कएल गेल छवि &lt;b&gt;हटाएलो नय जाएत&lt;/b&gt; जखन अहाँ %1$s इतिहास के मेटाएबै</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">थीम</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">हल्का</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">गहरा</string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">टैव बंद करियै</string>
+
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">रद्द करियै</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">बंद करियै</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">ब्राउज़िंग इतिहास मेटाल्य गेलै!</string>
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ar/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ar/strings.xml
new file mode 100644
index 0000000000..b736d40c6a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ar/strings.xml
@@ -0,0 +1,839 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">ألغِ</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">حسنا</string>
+
+ <string name="action_save">احفظ</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">ابحث أو أدخل عنوانا</string>
+
+ <string name="teaser">تصفح خاص تلقائي.\nتصفح. امسح. كرر.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">لقد مسح تأريخ تصفحك.</string>
+ <string name="feedback_erase2">مُسح تأريخ التصفح</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">مُسح تأريخ التصفّح للسان.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">ابحث عن %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">شارك…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">أبلِغ عن مشكلة بالموقع</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">افتح في %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">افتح في…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">أضِف إلى شاشة البداية</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">أضِف إلى الاختصارات</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">أزِل من الاختصارات</string>
+
+ <string name="menu_settings">الإعدادات</string>
+ <string name="menu_about">عن</string>
+ <string name="menu_help">مساعدة</string>
+ <string name="menu_rights">حقوقك</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">المتعقبات المحجوبة</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">يمكن بتعطيل هذا إصلاح مشاكل بعض المواقع</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">حجب المحتوى</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">عطّله لإصلاح علل بعض المواقع</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">تدعمها %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">شارك عبر</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">امسح تأريخ التصفح</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">افتح</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">امسح و افتح</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">امسح</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">امسح تأريخ التصفح</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">امسح وافتح</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">امسح وافتح %1$s</string>
+
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>يعطيك %1$s الدفّة.</p>
+<p>استعمله كمتصفّح خاص:
+ <ul>
+ <li>ابحث وتصفّح مباشرة في التطبيق</li>
+ <li>احجب المتعقّبات (أو حدّث الإعدادات للسماح بها)</li>
+ <li>امسح الكعكات بالإضافة إلى حذف تأريخ البحث والتصفّح</li>
+ </ul>
+</p>
+<p>%1$s منتج من Mozilla. مهمتنا تكمن في التشجيع نحو إنترنت مفتوح وصحّي.<br/>
+<a href="%2$s">اطّلع على المزيد</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">الخصوصية والسريّة</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">التّعقّب، و الكعكات، و اختيار البيانات</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">الضبط كمبدئي والإكمال التلقائي</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">عن %1$s والمساعدة</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">الحماية الموسّعة من التعقب</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">محتوى الوب</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">التبديل بين التطبيقات</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">عام</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">المتصفّح المبدئي، اللغة</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">تجميل البيانات واستخدامها</string>
+
+ <string name="preference_category_search">البحث</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">اجلب اقتراحات البحث</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">سيُرسل %1$s ما تكتبه في شريط العنوان إلى محرك البحث الذي فضّله</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">المبدئي</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">محرك البحث</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">مفعّل</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">معطّل</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">إكمال المسارات تلقائيا</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">لأكثر المواقع زيارة</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">فعّله ليُكمل %s تلقائيا أكثر من ٤٥٠ عنوان وِب في شريط العناوين.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">للمواقع التي تُضيفها</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">فعّله ليُكمل %s تلقائيا المسارات في المفضّلة.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">أدِر المواقع</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">أدِر المواقع</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ أضِف مسارا مخصصا</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">قائمة مخصّصة من الإكمال التلقائي:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">أضِف مسارًا</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">أضِف مسارا مخصصا</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">أضِف مسارا مخصصا</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">أضِف رابطا لإكماله تلقائيا</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">الكعكات و بيانات المواقع</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">اختيارات البيانات</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">أزِل المسارات المخصصة</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">اطّلع على المزيد</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">أضِف وأدِر إكمال المسارات المخصصة تلقائيا.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">المسار لإضافته</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">ألصِق مسارا أو أدخِله</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">مثال: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">مثال: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">أُضيف مسار مخصص جديد.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">أزِل</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">أزِل</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">تحقق من المسار الذي أدخلته.</string>
+
+ <string name="preference_language">اللغة</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">المبدئية للنظام</string>
+
+ <string name="preference_category_privacy">الخصوصية</string>
+ <string name="preference_privacy_block_ads">احجب متعقبات الإعلانات</string>
+ <string name="preference_privacy_block_ads_summary">تتعقّب بعض الإعلانات زياراتك إلى المواقع، حتى إن لم تنقرها</string>
+ <string name="preference_privacy_block_analytics">احجب متعقبات التحليلات</string>
+ <string name="preference_privacy_block_analytics_summary">تُستخدم لجمع نشاطاتك وتحليلها وقياسها، مثل النقر وتمرير الصفحات</string>
+ <string name="preference_privacy_block_social">احجب المتعقبات الاجتماعية</string>
+ <string name="preference_privacy_block_social_summary">تُضمّن في المواقع لتتعقب زياراتك ولعرض بعض الخصائص مثل أزرار المشاركة</string>
+ <string name="preference_privacy_block_content">احجب متعقبات المحتوى الأخرى</string>
+ <string name="preference_privacy_block_content_summary2">تفعيل الخيار قد يتسبب بألا تعمل بعض الصفحات كما يجب</string>
+ <string name="preference_privacy_category_cookies">احجب الكعكات</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">لا، شكرًا</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">احجب كعكات المتعقّبات من الأطراف الثالثة فحسب</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">احجب الكعكات من الأطراف الثالثة فحسب</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">احجب الكعكات بين المواقع</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">نعم، أودّ ذلك</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">استخدم البصمة لإلغاء قفل التطبيق</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">التخفّي</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">أخفِ صفحات الوب عند الانتقال بين التطبيقات وامنع التقاط الشاشة.</string>
+
+ <string name="preference_category_security">الأمان</string>
+
+ <string name="preference_category_performance">الأداء</string>
+ <string name="preference_performance_block_webfonts">احجب خطوط الوب</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">قد يسبب اختفاء بعض الأيقونات أو الصور</string>
+
+ <string name="preference_performance_block_javascript">احجب جافاسكرِبت</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">قد تتحمّل الصفحات بشكل أسرع، ولكنها قد لا تعمل كما ينبغي أيضا</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">اجعل %1$s متصفّحك المبدئي</string>
+
+ <string name="preference_category_mozilla">موزيلا</string>
+ <string name="preference_mozilla_telemetry2">أرسل بيانات الاستخدام</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">اطّلع على المزيد</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">تحاول موزيلا ألا تجمع أكثر مما تحتاجه لإتاحة %1$s و تحسينه للجميع.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">تنويه الخصوصية</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">عن %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">محركات البحث المثبتة</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">اختر محرك البحث</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">استعد محركات البحث المبدئية</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ أضف محرك بحث آخر</string>
+ <string name="preference_search_remove_title">أزِل محركات البحث</string>
+ <string name="preference_search_remove">أزِل</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">أضِف محرك بحث آخر</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">اختر محرك البحث المفضل لك:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">أضف محرك بحث</string>
+
+ <string name="search_add_manually_name_hint">اسم محرك البحث</string>
+ <string name="search_add_manually_string">نص البحث المستخدم</string>
+ <string name="search_add_manually_save">احفظ</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">مثال: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">أُضيف محرك البحث الجديد.</string>
+
+ <string name="search_add_error_empty_name">أدخِل اسم محرك البحث</string>
+ <string name="search_add_error_duplicate_name">هناك محرك بحث مثبّت يحمل نفس الاسم بالفعل.</string>
+
+ <string name="search_add_error_empty_search">أدخِل نص البحث</string>
+
+ <string name="search_add_error_format">تحقق من أن نص البحث يطابق تنسيق المثال</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">امسح الإدخال</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">غادِر</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">امسح تأريخ التصفح</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">الألسنة المفتوحة: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">اتصال آمن</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">يُحمّل</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">تم تحميل الموقع</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">المزيد من الخيارات</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">زر ”خيارات أخرى“</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">تصفّح للأمام</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">أعِد تحميل الموقع</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">تصفّح للوراء</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">أوقف تحميل الموقع</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">ارجع للتطبيق السابق</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">عدد المتعقّبات المحجوبة</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">احجب المتعقّبات</string>
+
+ <string name="your_rights">حقوقك</string>
+
+ <string name="external_app_prompt_title">افتح الرابط في تطبيق آخر</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">يمكنك مغادرة %1$s لفتح هذا الرابط في %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">ابحث عن تطبيق يدعم فتح الرابط</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">لا يوجد أي تطبيق على جهازك يدعم فتح هذا الرابط. يمكنك مغادرة %1$s للبحث في %2$s عن تطبيق يدعم الرابط.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">أتريد مغادرة التصفح الخاص؟</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">اكتمل %1$s</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">افتح</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">الخادوم غير موجود</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">حسّن خصوصيتك</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">انتقل بالتصفّح الخاص إلى المستوى التالي. احجب الإعلانات وغيرها من المحتويات التي تتعقبك أثناء التصفح وتأخذ من وقت تحميل الصفحات.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">تبحثُ بأسلوبك أنت</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">أتبحث عن شيء مختلف؟ اختر محرّك بحث آخر ليكون المبدئي من الإعدادات.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">أضف اختصارات إلى شاشة البداية</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">عُد إلى مواقعك المفضلة في %1$s بسرعة. اختر ”أضف إلى شاشة البداية“ من قائمة %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">اجعل من الخصوصية عادة</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">اضبط %1$s ليكون المتصفّح المبدئي وتمتع بفوائد التصفح الخاص عندما تفتح موقعا من تطبيق آخر.</string>
+
+ <string name="firstrun_close_button">حسنًا، فهمت</string>
+ <string name="firstrun_skip_button">تخطّ</string>
+ <string name="firstrun_next_button">التالي</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">أضِف</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">نعم</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">ألغِ</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">لا</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">سيُفتح الاختصار مع تعطيل الحماية الموسّعة من التعقب</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">جلسة تصفح الخاص</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">تتيح لك التنبيهات مسح جلسة %1$s بضغطة واحدة. لا تحتاج إلى فتح التطبيق أو رؤية ما المعروض فيه.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">امسح تأريخ التصفح</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">نزّل فَيرفُكُس</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s برمجية حرة مفتوحة المصدر صنعتها موزيلا ومساهمين آخرين.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[إن %1$s مُتاح لك وفق بنود <a href="%2$s">رخصة موزيلا العامة</a> وترخيصات المصادر المفتوحة الأخرى.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[لا يعطيك هذا أي حقوق أو تراخيص للعلامات التجارية لمؤسسة موزيلا أو أي طرف آخر، متضمنًا على سبيل المثال لا الحصر الأسماء والشعارات الآتية: Mozilla، وFirefox و%1$s. يمكنك الاطلاع على مزيد من المعلومات <a href="%2$s">من هنا</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[تُتاح النصوص المصدرية الإضافية المستعملة في %1$s وفق مختلف <a href="%2$s">الرخص</a> الحرة والمفتوحة المصدر.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[كما يستعمل %1$s قوائم الحجب التي توفّرها شركة Disconnect, Inc كأعمال منفصلة ومستقلّة برخصة <a href="%2$s">غنو العمومية الإصدارة الثالثة</a>، وهي متاحة <a href="%3$s">هنا</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">اسم المستخدم</string>
+ <string name="gv_prompt_password_hint">كلمة السر</string>
+ <string name="gv_prompt_clear">امسح</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">اتّصال آمن</string>
+ <string name="security_popup_insecure_connection">اتّصال غير آمن</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">تثبّت منها: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">أمن الموقع</string>
+ <string name="preference_autocomplete_duplicate_url_error">المسار موجود بالفعل</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">ابحث في الصفحة</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">ابحث في الصفحة</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">‏%1$d/‏%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d من أصل %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">ابحث عن النتيجة التالية</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">ابحث عن النتيجة السابقة</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">أخفِ لوحة البحث في الصفحة</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">اطلب موقع سطح المكتب</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">نسخة سطح مكتب</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">نُسِخَ المسار</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">أدوات المطوّرين</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">افتح الروابط في التطبيقات</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">متقدم</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">تصاريح المواقع</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">التشغيل التلقائي</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">اسمح بالصوت والڤِديو</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">احجب الصوت فقط</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">يُنصح به</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">احجب الصوت والڤِديو</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">الدراسات</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">قد يثبّت Firefox بعض الدراسات ويشغّلها من وقت لآخر.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">اعرف المزيد</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">سيُغلق التطبيق لتطبيق التغييرات</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">أزِل</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">مفعّلة</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">مكتملة</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">التنقيح عن بعد عبر واي-فاي/USB</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">افتح الرابط في جلسة جديدة</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">أيقونة البصمة</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">فشل التعرف على البصمة. أعِد المحاولة.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">حرّكت إصبعك بسرعة. أعِد المحاولة.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">أتريد عرض اقتراحات البحث؟</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">لتستلم الاقتراحات، يحتاج %1$s إلى إرسال ما تكتبه في شريط العنوان إلى محرك البحث.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">لا</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">نعم</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">لا تعرض بعض محركات البحث أية اقتراحات.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">أهمِل</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">أترى أن سلوك الموقع غريب؟\nجرّب تعطيل الحماية من التعقّب</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[اصنع زرًا لتفتح المواقع التي تزورها باستمرار بسرعة%1$s القائمة > أضِف إلى شاشة البداية]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">افتح كل الروابط في %1$s\nاضبط %1$s ليكون المتصفح المبدئي</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">أكمِل تلقائيًا عناوين المواقع التي تزورها باستمرار\nاضغط مطوّلًا على أي عنوان في شريط العنوان</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">افتح الرابط في لسان جديد\nانقر مطوّلًا على أي رابط في الصفحة</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">عطّل النصائح في شاشة البداية</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">فُتِح لسان جديد</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">انتقل</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">انتقل إلى الرابط في اللسان حالا</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">احجب المواقع التي قد تكون ضارة وخدّاعة</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">احجب المواقع التي لها بلاغ بأنها ضارة أو هجومية، أو فيها ما هو ضار أو ما هو غير مرغوب من برمجيات.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">وضع HTTPS فقط</string>
+
+ <string name="preference_https_only_summary3">يحاول الاتصال بالمواقع تلقائيا باستعمال بروتوكول التعمية HTTPS لمزيد من الأمان.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">الاستثناءات</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">عطّلت حجب المحتوى في هذه المواقع.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">أزِل</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">أزِل كل مواقع الوِب</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">احجب الكعكات</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">أتريد حجب الكعكات؟</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">انهار اللسان</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">نأسف. نُواجه مشكلة مع هذا اللسان.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">باعتبار هذا متصفح خاص، لن نحفظ هذا اللسان ولا نقدر على استعادته.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">أغلِق اللسان</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">أرسِل تقرير الانهيار إلى موزيلا</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">المتعقّبات المحجوبة منذ %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">المحتوى</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">الإعلانات</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">التواصل الاجتماعي</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">التحليلات</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">الحماية الموسّعة من التعقب</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">عُطّلت الحماية في هذا الموقع</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">فُعّلت الحماية في هذا الموقع</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">الاتصال آمن</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">الاتصال غير آمن</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">المتعقّبات والسكربتات التي تريد حجبها</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">انتقل للخلف</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">أزِل</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">غيّر الاسم</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">غيّر الاسم</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">اسم الاختصار</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">الصور المحفوظة و المُشاركة &lt;b&gt;لن تُحذف&lt;/b&gt; عندما تمسح تأريخ %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">السمة</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">فاتحة</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">داكنة</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">حسب وضع توفير الطاقة</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">اتبع سمة الجهاز</string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">أغلِق اللسان</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ast/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ast/strings.xml
new file mode 100644
index 0000000000..82d97ab732
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ast/strings.xml
@@ -0,0 +1,490 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Encaboxar</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">D\'acuerdu</string>
+
+ <string name="action_save">Guardar</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Busca o introduz dalguna direición</string>
+
+ <string name="teaser">Restolar en privao automático.\nRestola. Balera. Repiti.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Borróse l\'historial de restolar.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Buscar «%1$s»</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Compartir…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Informar de fallu del sitiu</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Abrir en %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Abrir en…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Amestar a la pantalla d\'aniciu</string>
+
+ <string name="menu_settings">Axustes</string>
+ <string name="menu_about">Tocante a</string>
+ <string name="menu_help">Ayuda</string>
+ <string name="menu_rights">Los tos drechos</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Rastrexadores bloquiaos</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Cola potencia de %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Compartir per</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Balerar historial de restolar</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Abrir</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Balerar y abrir</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Balerar</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Balerar historial de restolar</string>
+
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privacidá y seguranza</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Rastrexu, cookies y escoyetes de datos</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Predeterminación, autocompletáu</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Tocante a %1$s, ayuda</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Conteníu web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Cambéu d\'aplicaciones</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Xeneral</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Recoyida y usu de datos</string>
+
+ <string name="preference_category_search">Gueta</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Consiguir suxerencies de gueta</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s va unviar lo que teclexes na barra de direiciones al motor de gueta</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Por defeutu</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Sí</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Non</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Autocompletáu d\'URLs</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Amestar URL personalizada</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Amestar URL personalizada</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Amestar URL personalizada</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies y datos del sitiu</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Escoyetes de datos</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Desaniciar URL personalizada</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Deprendi más</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Amiesta o xestiona URLs personalizaes d\'autocompletáu.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL p\'amestar</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Apega o introduz la URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Exemplu: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Exemplu: exemplu.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Amestóse una URL nueva personalizada.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Desaniciar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Desaniciar</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Volvi comprobar la URL qu\'introduxesti.</string>
+
+ <string name="preference_language">Llingua</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Predeterminada del sistema</string>
+
+ <string name="preference_category_privacy">Privacidá</string>
+ <string name="preference_privacy_block_ads">Bloquiar rastrexadores publicitarios</string>
+ <string name="preference_privacy_block_ads_summary">Dellos anuncios rastrexen los sitios qu\'andes, incluso si nun faes clic nellos</string>
+ <string name="preference_privacy_block_analytics">Bloquiar rastrexadores d\'analítiques</string>
+ <string name="preference_privacy_block_analytics_summary">Úsase pa recoyer, analizar y midir actividaes como calcos y desplazamientos</string>
+ <string name="preference_privacy_block_social">Bloquiar rastrexadores sociales</string>
+ <string name="preference_privacy_block_social_summary">Intégrase en sitios pa rastrexar les tos visites y amosar funcionalidaes como botones de compartición</string>
+ <string name="preference_privacy_block_content">Bloquiar otros rastrexadores</string>
+ <string name="preference_privacy_block_content_summary2">Activalo quiciabes faiga que delles páxines se comporten de mou inesperáu</string>
+ <string name="preference_privacy_category_cookies">Bloquéu de cookies</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Bloquiar namái cookies de terceros</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Usa la buelga pa desbloquiar l\'aplicación</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Invisible</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Anubre les páxines web al camudar d\'aplicaciones y bloquia la fechura de caputres de pantalla.</string>
+
+ <string name="preference_category_security">Seguranza</string>
+
+ <string name="preference_category_performance">Rindimientu</string>
+ <string name="preference_performance_block_webfonts">Bloquiar fontes web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Pue facer que falten iconos o imáxenes</string>
+
+ <string name="preference_performance_block_javascript">Bloquiar JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Les páxines podríen cargar aína pero tamién podríe comportase de mou inesperáu</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Predeterminar %1$s</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Unviar datos d\'usu</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Deprendi más</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla esfuérciase en recoyer namái lo que precisa pa fornir y ameyorar %1$s pa tol mundu.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Avisu de privacidá</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Tocante a %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Motores de gueta instalaos</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Reafitar motores de gueta</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Amestar otru motor de gueta</string>
+ <string name="preference_search_remove_title">Desaniciar motores de gueta</string>
+ <string name="preference_search_remove">Desaniciar</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Amestar motor de gueta</string>
+
+ <string name="search_add_manually_name_hint">Nome del motor de gueta</string>
+ <string name="search_add_manually_string">Cadena de gueta a usar</string>
+ <string name="search_add_manually_save">Guardar</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Exemplu: exemplu.com/gueta/?q=%s</string>
+
+ <string name="search_add_confirmation">Amestóse\'l motor de gueta nuevu.</string>
+
+ <string name="search_add_error_empty_name">Introduz el nome del motor de gueta</string>
+ <string name="search_add_error_duplicate_name">Un motor de gueta instaláu yá ta usando esi nome.</string>
+
+ <string name="search_add_error_empty_search">Introduz la cadena de gueta</string>
+
+ <string name="search_add_error_format">Comprueba que la cadena de gueta concase col formatu del exemplu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Llimpiar entrada</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Escartar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Balerar historial de restolar</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Llingüetes abiertes: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Conexón segura</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Cargando</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Sitiu web cargáu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Más opciones</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Dir haza alantre</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Recargar sitiu web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Restolar p\'atrás</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Parar carga del sitiu web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Volver a l\'aplicación previa</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Númberu de rastrexadores bloquiaos</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Bloquia los rastrexadores</string>
+
+ <string name="your_rights">Los tos drechos</string>
+
+ <string name="external_app_prompt_title">Apertura d\'enllaz n\'otra aplicación</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Pues colar de %1$s p\'abrir esti enllaz en %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Alcuentra una aplicación que puea abrir l\'enllaz</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Denguna aplicación del to preséu ye abrir esti enllaz. Pues colar de %1$s y guetar en %2$s una aplicación compatible.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">¿Colar de restolar en privao?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s finó</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Abrir</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Nun s\'alcontró\'l sirvidor</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Potencia la to privacidá</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Lleva\'l restolar en privao a un nivel meyor. Bloquia anuncios y otru conteníu que pue rastrexate nes páxines y faen lentos los tiempos de carga.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Guetes al to xeitu</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">¿Guetes daqué diferente? Escueyi otru motor de gueta predetermináu nos axustes.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Amiesta atayos a la to pantalla d\'aniciu</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Volvi aína a los tos sitios favoritos en %1$s. Namái esbilla «Amestar a la pantalla d\'aniciu» nel menú de %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Fai de la privacidá un vezu</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Predetermina %1$s como\'l to restolador y consigui los beneficios del restolar en privao cuando abres páxines web dende otres aplicaciones.</string>
+
+ <string name="firstrun_close_button">¡Val, coyílo!</string>
+ <string name="firstrun_skip_button">Saltar</string>
+ <string name="firstrun_next_button">Siguiente</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Amestar</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Encaboxar</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sesión de restolar en privao</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Los avisos déxente balerar la to sesión de %1$s con un toque. Nun precises abrir l\'aplicación pa ver lo que ta n\'execución nel to restolador.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Balerar historial de restolar</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Baxar Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s ye un programa de baldre y de códigu abiertu fechu por Mozilla y otros collaboradores.]]></string>
+
+
+
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nome d\'usuariu</string>
+ <string name="gv_prompt_password_hint">Contraseña</string>
+ <string name="gv_prompt_clear">Llimpiar</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Conexón segura</string>
+ <string name="security_popup_insecure_connection">Conexón insegura</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verificáu por: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Seguranza del sitiu</string>
+ <string name="preference_autocomplete_duplicate_url_error">Yá esiste la URL</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Alcontrar na páxina</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Alcontrar na páxina</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d de %2$d</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Non</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Sí</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Dalgunos motores de gueta nun puen amosar suxerencies.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Escartar</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ay/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ay/strings.xml
new file mode 100644
index 0000000000..7544ae9e64
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ay/strings.xml
@@ -0,0 +1,476 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Suyt\'ayaña</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Walikiwa</string>
+
+ <string name="action_save">Imaña</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Thaqtam jan ukax imayluma</string>
+
+ <string name="teaser">Justupach jark\'as thaqtaña. Thaqhaña. Pichsuña. Mayampi.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Taqpach thaqhatanakamax pichsutawa.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Thaqtam %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Ch\'iqiyaña</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Llika janjat yatiyaña</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Jist\'aram %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Jist\'aram…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Janja llikar yapkatam</string>
+
+ <string name="menu_settings">Mayjt\'ayaña</string>
+ <string name="menu_about">Ukxata</string>
+ <string name="menu_help">Yanapa</string>
+ <string name="menu_rights">Yäqayasiñataki</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Thaqhañanakax jark\'antatawa</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Ukamp ch\'amañchatawa %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Uka tuq ch\'iqiyaña</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Thaqhañ imatanak pichsuña</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Jist\'araña</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Pichsuña ukat jist\'araña</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Pichsuña</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Thaqhañ imatanak pichsuña</string>
+
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Imantatäña ukatx jark\'atäña</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Thaqhata, kukinaka, ukatx utjir ajllinaka</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Pantjat imaña, justupach phuqhaña</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s ukxata, yanapa</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Llikan utjirinaka</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Lurañanak turkaña</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Taqpacha</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Utjirinak apthapita ukatx apnaqaña</string>
+
+ <string name="preference_category_search">Taqhaña</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Pantjata</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Aqtayata</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">jiwt\'ayata</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL justupach phuqhachata</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">URL ukar wakt\'ayasiñ yapt\'aña</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">URL ukar wakt\'ayasiñ yapt\'aña</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">URL Wakt\'ayasiñ yapt\'aña</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">juk\'a yatiyäwimp llikan utjirinakampi</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Utjirinak ajlliña</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">URLs wakicht\'atanak jittayaña</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Juk\'amp amuyañataki</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">URLs ukar yapkatam ukat justupach wakicht\'añar ucht\'am</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL ukar yapkataña</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">URL uk ucht\'am jan ukax mantaña</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Sakiñani: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Sakiñani: ukhama.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Machaq wakt\'ayasiña URL yapkatatawa.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Jittayaña</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Jittayaña</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Pay kut uka URL uk uchktas ukar limt\'am.</string>
+
+ <string name="preference_language">Aru</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Llikaw jan walt\'kiti</string>
+
+ <string name="preference_category_privacy">Maynitakiki</string>
+ <string name="preference_privacy_block_ads">Yatiyawinak uñachayir jark\'antaña</string>
+ <string name="preference_privacy_block_ads_summary">Yaqhip yatiyanakax uñstaskakiwa, janis ukar limt\'kat ukhaxa</string>
+ <string name="preference_privacy_block_analytics">Uñakipir thaqhirinak jark\'antaña</string>
+ <string name="preference_privacy_block_analytics_summary">Uka apthapiña, uñakipiri ukhamarak tupur luratanak llamt\'as saraqas apnaqaña</string>
+ <string name="preference_privacy_block_social">Jaqit thaqhirinak jark\'antaña</string>
+ <string name="preference_privacy_block_social_summary">Uka llika janjan k\'iñantatanak mantatanakam thaqtaña ukatx wutunanakar uñacht\'ayaña</string>
+ <string name="preference_privacy_block_content">Yaqha utjir thaqhirinak jark\'antaña</string>
+ <string name="preference_privacy_block_content_summary2">Jark\'antasinx inas yaqhip llika janjanakax jan walixchispati</string>
+ <string name="preference_privacy_category_cookies">Yatiyanak jark\'antaña</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">&quot;Yatiyawinakx chikatan chikatapak 3 jist\'antaña&quot;</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Amuyump unxtaña</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Llika janjanak imantaña, kunawsatix wakichanakax rukatak ukha</string>
+
+ <string name="preference_category_performance">Luraña</string>
+ <string name="preference_performance_block_webfonts">Llikan qillqanakap jark\'antaña</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Inas uka chimpus jamuqas jan uñstxchispati</string>
+
+ <string name="preference_performance_block_javascript">JavaScript Jark\'antaña</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Janja llikanakax jank\'akiw phuqhachasispa, inas jan ukhamarakikchispati</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s justupach thaqhiri</string>
+
+ <string name="preference_category_mozilla">Musilla</string>
+ <string name="preference_mozilla_telemetry2">Apnaqat imatanak apayaña</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Juk’amp yatiña</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">&quot;Musillax ajllsuwa kunatix askiki ukak churi ukhamarak taqinitakis sumaptayi %1$s&quot;</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Maynitakik yatiya</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Kunxatasa %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Thaqhirinak uchaña</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Jan walt’ir thaqhirinak kutt’ayaniña</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">Yaqha thakhir yapkataña</string>
+ <string name="preference_search_remove_title">Thakhirinak jittayaña</string>
+ <string name="preference_search_remove">Jittayaña</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Thaqhir yapkataña</string>
+
+ <string name="search_add_manually_name_hint">Thaqhirin sutip thaqtaña</string>
+ <string name="search_add_manually_string">Apnaqat arunak thaqtaña</string>
+ <string name="search_add_manually_save">Imaña</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Ukhama: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Machaq thaqhiriw yapkatata</string>
+
+ <string name="search_add_error_empty_name">Thaqhirin sutip ucham</string>
+ <string name="search_add_error_duplicate_name">Apaqat thaqhiriw pach sutin utji</string>
+
+ <string name="search_add_error_empty_search">Thaqhir arunak ucham</string>
+
+ <string name="search_add_error_format">Thaqhir arunakax purapt’añapawa, uñakipt’am</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Uchat pichsum</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Apanukuña</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Thaqhatanak pichsum</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">P’uyunak jist’araña: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Suma waythapiriwa</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Phuqhachaskiwa</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Phuqhachat llika janjanaka</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Juk’ampinaka</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Nayraqatar tuyuskakim</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Mayamp mantam uka llika janjaru</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Qhipar kutt’am</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Llika janjanak phuqhachir sayt’ayaña</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Nayrir wakichañar kutt’aña</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Thaqhirinak jark’antaña</string>
+
+ <string name="your_rights">Yäqayasiñanakama</string>
+
+ <string name="external_app_prompt_title">Chhitthap yaqha wakichar jist’aram</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Jaytxasmawa %1$s uka chhitthap jist\'arañataki %2$s</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Mä lurañ thaqtam chhitthap jist\'arañapataki</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">&quot;Janiw kuna lurawis uka chhitthapx jawsañaman jist\'arkaspati. Jaytxakim %1$s ukhamat yaqha %2$s lurir jist\'arañapataki.&quot;</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Uka maynitakik thaqhañat misxatati?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s tukutawa</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Jist\'araña</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Tunux janiw katutakiti</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">jumankirikis uk ch\'amañcham</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Uka juman thaqhatam yaqhar apam. Yatiyäwinak jark\'antam ukat yaqha utjirinak llika janjanakan jan jayarst\'añatal thaqtasmawa.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Thaqhatam ukhamark jumankiri</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Yaqht thaqhaskta? Yaqha thaqhañamp thaqtam.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Jank\'ak mantañanak uka mantañawjar ucht\'asim.</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Sapa kut mantat llikarjank\'ak %1$s kutt\'am. \&quot;Mantañawjar yapkatam\&quot; jiskis uka ajllt\'asin %1$s ucht\'asim.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Uka jumatakikis ukx sapakut ucht\'asim</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">%1$s uka thaqhirinakx justupach mistsur ucht\'asim ukat sum aka tuqin jist\'arañanak tuqinakat jikxatam.</string>
+
+ <string name="firstrun_close_button">Ukhamax, amuyataxiwa.</string>
+ <string name="firstrun_skip_button">T\'isktam</string>
+ <string name="firstrun_next_button">Ukxaru</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Yapt\'aña</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Sayt\'aña</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Jumatakik thaqhañawja</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Uka yatiyaw tuqix pichsuñ yanapt\'iristam%1$s limt\'asaki. Janiw uka wakichaw jist\'arañamakiti ukhamarak yaqhatuq thaqtasasa.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Uka thaqhatanak pichsum</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox apaqaña</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA["%1$s Ukax inakiwa ukhamarak uka Mozillan luratanak apaqt\'asim."]]></string>
+
+
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Suti (qillqayasita)</string>
+ <string name="gv_prompt_password_hint">Chimpu</string>
+ <string name="gv_prompt_clear">Pichsuña</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Makhatax walikiskiwa</string>
+ <string name="security_popup_insecure_connection">Makhatax janiw walikiti</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Uñakipatawa: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">LLika janjanakan sumt\'añapataki</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL ukax utjxiwa</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Llika janjan jikxatasma</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Llika janjan jikxatam</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">&quot;%1$d /%2$d &quot;</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d mistsutawa %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Ukxarukix uk jikxatam</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Nayrir katjat jikxatam</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Kutt\'añ thaqhañanxa</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Qhanankix uka llik mayiña</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL waruqataxiwa</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-az/strings.xml b/mobile/android/focus-android/app/src/main/res/values-az/strings.xml
new file mode 100644
index 0000000000..aac42062d6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-az/strings.xml
@@ -0,0 +1,403 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <string name="action_cancel">Ləğv et</string>
+ <string name="action_ok">Tamam</string>
+
+ <string name="action_save">Saxla</string>
+
+ <string name="urlbar_hint">Ünvanı daxil et və ya axtar</string>
+
+ <string name="teaser">Avtomatik məxfi səyahət.\nGəz. Poz. Təkrarla.</string>
+
+ <string name="feedback_erase">Səyahət tarixçəniz silindi.</string>
+
+ <string name="feedback_erase_custom_tab">Vərəqin tarixçəsi pozuldu.</string>
+
+ <string name="search_hint">%1$s üçün axtar</string>
+
+ <string name="menu_share">Paylaş…</string>
+
+ <string name="menu_report_site_issue">Sayt Problemini Bildir</string>
+
+ <string name="menu_open_with_default_browser2">%1$s ilə aç</string>
+
+ <string name="menu_open_with_a_browser2">Bununla aç…</string>
+
+ <string name="menu_add_to_home_screen">Ana Ekrana əlavə et</string>
+
+ <string name="menu_settings">Tənzimləmələr</string>
+ <string name="menu_about">Haqqında</string>
+ <string name="menu_help">Kömək</string>
+ <string name="menu_rights">Hüquqlarınız</string>
+
+ <string name="menu_trackers_blocked_title">İzləyicilər bloklandı</string>
+
+ <string name="menu_trackers_blocked_subtitle">Bunu söndürmə bəzi sayt uyğunsuzluqlarını həll edə bilər</string>
+
+ <string name="menu_content_blocking">Məzmun Əngəlləmə</string>
+ <string name="menu_content_blocking_subtitle">Bəzi saytlardakı problemləri həll etmək üçün söndürün</string>
+
+ <string name="menu_custom_tab_branding">%1$s Tərəfindən</string>
+
+ <string name="share_dialog_title">Bununla paylaş:</string>
+
+ <string name="notification_erase_text">Səyahət keçmişini poz</string>
+
+ <string name="notification_action_open">Aç</string>
+
+ <string name="notification_action_erase_and_open">Poz və Aç</string>
+
+ <string name="shortcut_erase_short_label">Poz</string>
+
+ <string name="shortcut_erase_long_label">Səyahət keçmişini poz</string>
+
+
+ <string name="shortcut_erase_and_open_short_label">Poz və Aç</string>
+
+ <string name="shortcut_erase_and_open_long_label">Poz və %1$s tətbiqini aç</string>
+
+ <string name="preference_privacy_and_security_header">Məxfilik və Təhlükəsizlik</string>
+
+ <string name="preference_privacy_and_security_summary">İzlənmə, çərəzlər, məlumat seçimləri</string>
+
+ <string name="preference_search_summary">Əsas olaraq qur, avto tamamlama</string>
+
+ <string name="preference_mozilla_summary">%1$s haqqında, kömək</string>
+
+ <string name="preference_category_web_content">Web Məzmun</string>
+
+ <string name="preference_category_switching_apps">Tətbiq Keçidi</string>
+
+ <string name="preference_category_general">Ümumi</string>
+
+ <string name="preference_category_data_collection_use">Məlumat yığılması və istifadəsi</string>
+
+ <string name="preference_category_search">Axtar</string>
+
+ <string name="preference_show_search_suggestions">Axtarış təkliflərini al</string>
+ <string name="preference_show_search_suggestions_summary">%1$s ünvan sətrində yazdıqlarınızı axtarış mühərriyinizə göndərəcək</string>
+
+ <string name="preference_search_engine_default">İlkin hal</string>
+
+ <string name="preference_search_engine_label">Axtarış mühərriyi</string>
+
+ <string name="preference_state_on">Açıq</string>
+
+ <string name="preference_state_off">Bağlı</string>
+
+ <string name="preference_subitem_autocomplete">Ünvan Avtomatik Tamamlama</string>
+
+ <string name="preference_switch_autocomplete_topsites">Çox istifadə edilən saytlar üçün</string>
+
+ <string name="preference_switch_autocomplete_user_list">Əlavə etdiyiniz saytlar üçün</string>
+
+ <string name="preference_category_autocomplete_manage_sites">Saytları idarə et</string>
+
+ <string name="preference_autocomplete_subitem_manage_sites">Saytları idarə et</string>
+
+ <string name="preference_autocomplete_action_add">+ Fərdi ünvan əlavə et</string>
+
+ <string name="preference_autocomplete_title_add">Fərdi ünvan əlavə et</string>
+
+ <string name="custom_autocomplete_quick_add">Fərdi ünvan əlavə et</string>
+
+ <string name="add_custom_autocomplete_label">Avtomatik tamamlama üçün keçid əlavə edin</string>
+
+ <string name="preference_category_cookies">Çərəzlər və Sayt Məlumatları</string>
+
+ <string name="preference_category_data_choices">Məlumat Seçimləri</string>
+
+ <string name="preference_autocomplete_title_remove">Fərdi ünvanı sil</string>
+
+ <string name="preference_autocomplete_learn_more">Ətraflı öyrən</string>
+
+ <string name="preference_autocomplete_custom_summary">Avtomatik tamamlanacaq fərdi ünvanları idarə edin.</string>
+
+ <string name="preference_autocomplete_add_title">Əlavə ediləcək ünvan</string>
+
+ <string name="preference_autocomplete_add_hint">Ünvanı yapışdırın və ya daxil edin</string>
+
+ <string name="preference_autocomplete_add_example2">Məsələn: mozilla.org</string>
+
+ <string name="preference_autocomplete_add_example">Məsələn: example.com</string>
+
+ <string name="preference_autocomplete_add_confirmation">Yeni fərdi ünvan əlavə edildi.</string>
+
+ <string name="preference_autocomplete_menu_remove">Sil</string>
+
+ <string name="preference_autocomplete_action_remove_content_description">Sil</string>
+
+ <string name="preference_autocomplete_add_error">Daxil etdiyiniz ünvanı bir də yoxlayın.</string>
+
+ <string name="preference_language">Dil</string>
+ <string name="preference_language_systemdefault">Sistemin dili</string>
+
+ <string name="preference_category_privacy">Məxfilik</string>
+ <string name="preference_privacy_block_ads">Reklam izləyicilərini əngəllə</string>
+ <string name="preference_privacy_block_ads_summary">Bəzi reklamlar onlara klikləməsəniz belə sayt ziyarətlərinizi izləyirlər</string>
+ <string name="preference_privacy_block_analytics">Analiz izləyicilərini əngəllə</string>
+ <string name="preference_privacy_block_analytics_summary">Toxunma və sürüşdürmə kimi aktivlikləri yığıb, ölçüb, analiz etmək üçün işlədilir</string>
+ <string name="preference_privacy_block_social">Sosial izləyiciləri əngəllə</string>
+ <string name="preference_privacy_block_social_summary">Ziyarətinizi izləmək və paylaşma düymələri kimi funksionallıqları göstərmək üçün saytlara yerləşdirilir</string>
+ <string name="preference_privacy_block_content">Digər məzmun izləyicilərini əngəllə</string>
+ <string name="preference_privacy_block_content_summary2">Aktivləşdirmə bəzi səhifələrdə gözlənilməz səhvlərə səbəb ola bilər</string>
+ <string name="preference_privacy_category_cookies">Çərəzləri əngəllə</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Ancaq 3cü tərəf izləmə çərəzlərini əngəllə</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Ancaq 3cü tərəf çərəzləri əngəllə</string>
+
+ <string name="preference_security_biometric">Tətbiqi açmaq üçün barmaq izi işlət</string>
+
+ <string name="preference_privacy_secure_mode">Görünməzlik</string>
+ <string name="preference_privacy_stealth_summary">Tətbiqlər arası keçərkən saytları gizlət və ekran görüntüləri çəkməyi əngəllə.</string>
+
+ <string name="preference_category_security">Təhlükəsizlik</string>
+
+ <string name="preference_category_performance">Məhsuldarlıq</string>
+ <string name="preference_performance_block_webfonts">Web şriftlərini əngəllə</string>
+ <string name="preference_performance_block_webfonts_summary">Əksik icon və şəkillərə səbəb ola bilər</string>
+
+ <string name="preference_performance_block_javascript">JavaScript-i əngəllə</string>
+ <string name="preference_performance_block_javascript_summary">Səhifələr daha sürətli yüklənə bilər, ancaq səhv işləyə bilərlər</string>
+
+ <string name="preference_default_browser2">%1$s səyyahını əsas et</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">İstifadə məlumatlarını göndər</string>
+
+ <string name="preference_mozilla_telemetry_summary">Ətraflı öyrən</string>
+
+ <string name="preference_mozilla_telemetry_summary2">Mozilla ancaq %1$s səyyahını hamı üçün yaxşılaşdırmağa lazım olan məlumatları yığır.</string>
+
+ <string name="preference_privacy_notice">Məxfilik Bildirişi</string>
+
+ <string name="preference_about">%1$s Haqqında</string>
+
+ <string name="preference_search_installed_search_engines">Quraşdırılmış axtarış mühərrikləri</string>
+
+ <string name="preference_search_restore">İlkin axtarış nizamlarını bərpa et</string>
+
+ <string name="preference_search_add2">+ Digər axtarış mühərriyini əlavə et</string>
+ <string name="preference_search_remove_title">Axtarış mühərriklərini sil</string>
+ <string name="preference_search_remove">Sil</string>
+
+ <string name="action_option_add_search_engine">Axtarış mühərriyini əlavə et</string>
+
+ <string name="search_add_manually_name_hint">Axtarış mühərriyinin adı</string>
+ <string name="search_add_manually_string">İstifadə ediləcək axtarış sətri</string>
+ <string name="search_add_manually_save">Saxla</string>
+
+ <string name="search_add_manually_example">Məsələn: mozillaz.org/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Yeni axtarış mühərriyi əlavə edildi.</string>
+
+ <string name="search_add_error_empty_name">Axtarış mühərriyinin adını daxil edin</string>
+ <string name="search_add_error_duplicate_name">Qurulu axtarış mühərriyi artıq bu adı işlədir.</string>
+
+ <string name="search_add_error_empty_search">Axtarış mətnini daxil edin</string>
+
+ <string name="search_add_error_format">Axtarış mətninin nümunədəki formata uyğun olduğunu yoxlayın</string>
+
+ <string name="content_description_clear_input">Girişi təmizlə</string>
+
+ <string name="content_description_dismiss_input">Ləğv et</string>
+
+ <string name="content_description_erase">Səyahət tarixçəsini təmizlə</string>
+
+ <string name="content_description_tab_counter">Açıq vərəqlər: %1$s</string>
+
+ <string name="content_description_lock">Təhlükəsiz əlaqə</string>
+
+ <string name="accessibility_announcement_loading">Yüklənir</string>
+
+ <string name="accessibility_announcement_loading_finished">Sayt yükləndi</string>
+
+ <string name="content_description_menu">Digər seçimlər</string>
+
+ <string name="indicator_content_description_menu">Daha çox seçim düyməsi</string>
+
+ <string name="content_description_forward">İrəli keç</string>
+
+ <string name="content_description_reload">Saytı yenilə</string>
+
+ <string name="content_description_back">Geri get</string>
+
+ <string name="content_description_stop">Səhifəni yükləməyi dayandır</string>
+
+ <string name="content_description_customtab_exit">Əvvəlki tətbiqə qayıt</string>
+
+ <string name="content_description_trackers_blocked">Əngəllənmiş izləyicilərin sayı</string>
+
+ <string name="content_description_blocking_switch">İzləyiciləri əngəllə</string>
+
+ <string name="your_rights">Hüquqlarınız</string>
+
+ <string name="external_app_prompt_title">Keçidi başqa tətbiqdə aç</string>
+ <string name="external_app_prompt">%1$s səyyahını tərk edərək keçidi %2$s üzərində aça bilərsiz.</string>
+ <string name="external_app_prompt_no_app_title">Keçid aça bilən tətbiq tap</string>
+ <string name="external_app_prompt_no_app">Cihazınızdakı heç bir tətbiq bu keçidi aça bilmir. %1$s səyyahını tərk edərək %2$s ilə bunu bacaran tətbiq axtara bilərsiz.</string>
+ <string name="external_multiple_apps_matched_exit">Məxfi Səyahətdən çıxırsın?</string>
+
+ <string name="download_snackbar_finished">%1$s endirildi</string>
+
+ <string name="download_snackbar_open">Aç</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Server tapılmadı</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <string name="firstrun_defaultbrowser_title">Məxfiliyinizi gücləndirin</string>
+ <string name="firstrun_defaultbrowser_text2">Məxfi səyahəti fərqli səviyyəyə götürün. Saytlar üzərindən sizə izləyə biləcək reklam və digər məzmunları bloklayın və yüklənmə sürətini artırın.</string>
+
+ <string name="firstrun_search_title">Sizin axtarış, sizin qaydalar</string>
+ <string name="firstrun_search_text">Fərqli şeylər axtarırsız? Tənzimləmələrdən fərqli axtarış mühərriyi seçin.</string>
+
+ <string name="firstrun_shortcut_title">Ana ekranınıza keçidlər əlavə edin</string>
+ <string name="firstrun_shortcut_text">%1$s üzərindəki sevimli saytlarınıza cəld girin. %1$s menyusundan \&quot;Ana ekrana əlavə et\&quot; seçməyiniz kifayətdir.</string>
+
+ <string name="firstrun_privacy_title">Məxfiliyi vərdiş halına gətirin</string>
+ <string name="firstrun_privacy_text">Əsas səyyahınız olaraq %1$s seçin və digər tətbiqlərdən keçid açarkən məxfi səyahətin üstünlüklərindən faydalanın.</string>
+
+ <string name="firstrun_close_button">Tamam, başa düşdüm!</string>
+ <string name="firstrun_skip_button">Keç</string>
+ <string name="firstrun_next_button">Sonrakı</string>
+
+ <string name="content_blocking_disabled">-</string>
+
+ <string name="dialog_addtohomescreen_action_add">Əlavə et</string>
+
+ <string name="dialog_addtohomescreen_action_cancel">Ləğv et</string>
+
+ <string name="notification_browsing_session_channel_name">Məxfi səyahət sessiyası</string>
+
+ <string name="notification_browsing_session_channel_description">Bildirişlər tək toxunuşla %1$s sessiyanınızı pozmağa imkan verəcək. Tətbiqi açmağa və ya səyyahınızda nəyin işlədiyinə baxmağa ehtiyyacınız yoxdur.</string>
+
+ <string name="tabs_tray_action_erase">Səyahət keçmişini poz</string>
+
+ <string name="download_firefox">Firefox Endir</string>
+
+ <string name="your_rights_content1">%1$s Mozilla və digər töhfəverənlər tərəfindən yaradılmış azad və açıq qaynaqlı proqramdır.</string>
+
+
+
+
+ <string name="gv_prompt_username_hint">İstifadəçi adı</string>
+ <string name="gv_prompt_password_hint">Parol</string>
+ <string name="gv_prompt_clear">Təmizlə</string>
+
+ <string name="security_popup_secure_connection">Təhlükəsiz Əlaqə</string>
+ <string name="security_popup_insecure_connection">Təhlükəli Əlaqə</string>
+ <string name="security_popup_security_verified">Doğrulayan: %1$s</string>
+
+ <string name="site_security_icon_content_description">Sayt Təhlükəsizliyi</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL artıq mövcuddur</string>
+
+ <string name="find_in_page">Səhifədə Tap</string>
+
+ <string name="find_in_page_input">Səhifədə tap</string>
+
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <string name="accessibility_find_in_page_result">%2$d nəticədən %1$d dənəsi</string>
+
+ <string name="accessibility_next_result">Sonrakı nəticəni tap</string>
+ <string name="accessibility_previous_result">Əvvəlki nəticəni tap</string>
+ <string name="accessibility_dismiss_find_in_page">Səhifədə axtarışı qapat</string>
+
+
+
+ <string name="preference_performance_request_desktop_site">Masaüstü saytını istə</string>
+
+ <string name="custom_tab_copy_url_action">URL köçürüldü</string>
+
+ <string name="preference_advanced_summary">Tərtibatçı alətləri</string>
+
+ <string name="preference_category_advanced">Təkmilləşmiş</string>
+
+ <string name="preference_remote_debugging">USB/Wi-Fi ilə məsafəli sazlama</string>
+
+ <string name="biometric_auth_image_description">Barmaq izi ikonu</string>
+
+ <string name="biometric_auth_not_recognized_error">Barmaq izi tanınmadı. Təkrar yoxlayın.</string>
+
+ <string name="biometric_auth_moved_too_quickly">Barmaq çox sürətli hərəkət elədi. Təkrar yoxlayın.</string>
+
+ <string name="enable_search_suggestions_no">Xeyr</string>
+
+ <string name="enable_search_suggestions_yes">Bəli</string>
+
+ <string name="no_suggestions_message">Bəzi axtarış mühərrikləri məsləhətləri göstərə bilmirlər.</string>
+
+ <string name="dismiss_no_suggestions_prompt_button">Qapat</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <string name="tip_disable_tracking_protection">Sayt gözlənilməyən hərəkətlər edir?\n İzləmə Qorumasınını söndürməyi yoxlayın</string>
+
+ <string name="tip_add_to_homescreen">Çox işlətdiyiniz saytları tək toxunuşla açın%1$s Menyu &gt; Ana Ekrana əlavə et</string>
+
+ <string name="tip_set_default_browser">Bütün keçidləri %1$s ilə açın\n %1$s əsas səyyahınız olsun</string>
+
+ <string name="tip_autocomplete_url">Çox işlətdiyiniz saytlar üçün avto doldurma\n Ünvan sətrindəki hər hansı bir ünvana uzun basın</string>
+
+ <string name="tip_open_in_new_tab">Keçidi yeni vərəqdə açın\n Səhifədə hər hansı bir keçidə uzun basın</string>
+
+ <string name="tip_disable_tips2">Ana ekranındakı məsləhətləri söndür</string>
+
+ <string name="new_tab_opened_snackbar">Yeni vərəq açıldı</string>
+
+ <string name="open_new_tab_snackbar">Keç</string>
+
+ <string name="preference_open_new_tab">Yeni vərəqdəki keçidə dərhal keç</string>
+
+ <string name="preference_safe_browsing_title">Potensial təhlükəli və aldadıcı saytları əngəllə</string>
+ <string name="preference_safe_browsing_summary">Zərərverici, aldadıcı, istənməyən saytları əngəllə.</string>
+
+ <string name="preference_exceptions">İstisnalar</string>
+ <string name="preference_exceptions_description">Bu saytlar üçün Məzmun Əngəlləməni söndürmüsünüz.</string>
+ <string name="preference_exceptions_menu_remove">Sil</string>
+ <string name="preference_exceptions_remove_all_button_label">Bütün saytları sil</string>
+
+ <string name="tab_crash_report_title">Vərəq Çökdü</string>
+ <string name="tab_crash_report_headline">Üzr istəyirik. Bu vərəqlə əlaqədar problemimiz var.</string>
+ <string name="tab_crash_report_description">Məxfi səyyah olaraq biz heç vaxt vərəqləri saxlamırıq və bu səbəbdən də bu vərəqi bərpa edə bilməyəcik.</string>
+ <string name="tab_crash_report_close_tab_button_label">Vərəqi Qapat</string>
+
+
+
+
+ <string name="crash_report_send_crash_label">Çökmə hesabatını Mozillaya göndər</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-be/strings.xml b/mobile/android/focus-android/app/src/main/res/values-be/strings.xml
new file mode 100644
index 0000000000..bd8a4703c8
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-be/strings.xml
@@ -0,0 +1,1086 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Скасаваць</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Захаваць</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Шукаць ці ўвесці адрас</string>
+
+ <string name="teaser">Аўтаматычны прыватнае агляданне.\Паглядзець. Сцерці. Паўтарыць.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Ваша гісторыя прагляду была сцёрта.</string>
+ <string name="feedback_erase2">Гісторыя аглядання выдалена</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Гісторыя прагляду карткі была сцёрта.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Шукаць %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Падзяліцца…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Паведаміць аб праблеме з сайтам</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Адкрыць у %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Адкрыць у…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Дадаць на хатні экран</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Дадаць у цэтлікі</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Выдаліць з цэтлікаў</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Налады</string>
+
+
+ <string name="menu_about">Пра нас</string>
+ <string name="menu_help">Даведка</string>
+ <string name="menu_rights">Вашы правы</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Трэкераў заблакіравана</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Адключэнне гэтай функцыі можа вырашыць некаторыя праблемы з сайтам</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Блакіроўка змесціва</string>
+
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Адключыць для вырашэння праблем з некаторымі сайтамі</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Пры падтрымцы %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Падзяліцца праз</string>
+
+ <string name="notification_erase_title_android_14">Сцерці гісторыю аглядання?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Націсніце або ачысціце гэта апавяшчэнне, каб надзейна сцерці гісторыю аглядання.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Націсніце або пасуньце гэта апавяшчэнне, каб надзейна сцерці гісторыю аглядання.</string>
+
+ <string name="notification_erase_text">Сцерці гісторыю аглядання</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Адкрыць</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Сцерці і адкрыць</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Сцерці</string>
+
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Сцерці гісторыю аглядання</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Сцерці і адкрыць</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Сцерці і адкрыць %1$s</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Шукаць у Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Шукаць у Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Шукаць у Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Шукаць у Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s дае вам кантроль.</p>
+<p>Выкарыстоўвайце яго як прыватны браўзер:
+ <ul>
+ <li>Шукайце і аглядайце наўпрост з праграмы</li>
+ <li>Блакіруйце трэкеры (або змяніце налады, каб дазволіць трэкеры)</li>
+ <li>Сцірайце сеанс, каб выдаліць кукі разам з пошукамі і гісторыяй аглядання</li>
+ </ul>
+</p>
+<p>%1$s створаны Mozilla. Наша місія — спрыяць здароваму, адкрытаму Інтэрнэту.<br/>
+<a href="%2$s">Даведацца больш</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Прыватнасць і бяспека</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Асочванне, кукі, выбар даных</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Зрабіць прадвызначаным, аўтазапаўненне</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Аб %1$s, дапамога</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Узмоцненая ахова ад сачэння</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Сеціўнае змесціва</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Пераключэнне праграм</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Агульныя</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Прадвызначаны браўзер, мова</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Збор і выкарыстанне даных</string>
+
+ <string name="preference_category_search">Пошук</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Атрымліваць пошукавыя прапановы</string>
+
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s будзе адпраўляць правайдару пошуку тэкст, які вы ўводзіце ў адрасны радок</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Прадвызначана</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Пашукавік</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Укл.</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Выкл.</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Аўтадапаўненне URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Для папулярных сайтаў</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Уключыць аўтадапаўненне ў %s для больш чым 450 папулярных сайтаў у адрасным радку.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Для даданых вамі сайтаў</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Уключыце, каб %s аўтаматычна завяршаў URL-адрасы вашых улюбёных сайтаў.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Кіраванне сайтамі</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Кіраванне сайтамі</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Дадаць уласны URL-адрас</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Ваш спіс аўтадапаўнення:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Дадаць URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Дадаць уласны URL-адрас</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Дадаць уласны URL-адрас</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Дадаць спасылку для аўтадапаўнення</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Кукі і даныя сайтаў</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Выбар даных</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Выдаліць уласныя URL-адрасы</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Падрабязней</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Даданне і кіраванне ўласнымі URL-адрасамі аўтадапаўнення.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL для дадавання</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Устаўце або ўвядзіце URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Прыклад: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Прыклад: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Новы ўласны URL-адрас дададзены.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Выдаліць</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Выдаліць</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Уважліва праверце ўведзены URL-адрас.</string>
+
+ <string name="preference_language">Мова</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Прадвызначаная сістэмы</string>
+
+ <string name="preference_category_privacy">Прыватнасць</string>
+ <string name="preference_privacy_block_ads">Блакіраваць рэкламнае сачэнне</string>
+
+ <string name="preference_privacy_block_ads_summary">Некаторая рэклама асочвае наведванне сайтаў, нават калі вы не націскаеце на яе</string>
+ <string name="preference_privacy_block_analytics">Блакіраваць трэкеры аналітыкі</string>
+ <string name="preference_privacy_block_analytics_summary">Выкарыстоўваецца для збору, аналізу і вымярэння дзеянняў, напрыклад, дотыку і пракруткі</string>
+ <string name="preference_privacy_block_social">Блакіраваць трэкеры сацыяльных сетак</string>
+ <string name="preference_privacy_block_social_summary">Убудаваны на сайты для сачэння за вашымі наведваннямі і адлюстравання такіх функцый, як кнопка «Падзяліцца»</string>
+ <string name="preference_privacy_block_content">Блакіраваць іншыя трэкеры змесціва</string>
+ <string name="preference_privacy_block_content_summary2">Уключэнне можа прывесці да таго, што некаторыя старонкі будуць паводзіць сябе нечакана</string>
+ <string name="preference_privacy_category_cookies">Блакіраваць кукі</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Не, дзякуй</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Блакіраваць толькі староннія кукі асочвання</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Блакіраваць толькі староннія кукі</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Блакіраваць міжсайтавыя кукі</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Так, калі ласка</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Выкарыстоўвайце адбіткі пальцаў для разблакіравання праграмы</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Разблакіроўка з дапамогай адбітка пальца, калі вы дадалі цэтлікі або калі вэб-сайт ужо адкрыты ў %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Скрытнасць</string>
+
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Хаваць вэб-старонкі пры пераключэнні праграм і блакіраваць здымкі экрана.</string>
+
+ <string name="preference_category_security">Бяспека</string>
+
+ <string name="preference_category_performance">Прадукцыйнасць</string>
+ <string name="preference_performance_block_webfonts">Блакіраваць вэб-шрыфты</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Можа прывесці да адсутнасці значкоў або відарысаў</string>
+
+ <string name="preference_performance_block_javascript">Блакіраваць JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Старонкі могуць загружацца хутчэй, але пры гэтым могуць няправільна працаваць</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Зрабіць %1$s прадвызначаным браўзерам</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Адпраўляць даныя аб выкарыстанні</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Падрабязней</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla імкнецца збіраць толькі тыя звесткі, якія патрэбны для работы і паляпшэння %1$s для ўсіх.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Паведамленне аб прыватнасці</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Звесткі пра ліцэнзію</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Бібліятэкі, якімі мы карыстаемся</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Бібліятэкі OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Пра %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Усталяваныя пошукавыя сістэмы</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Выберыце пошукавую сістэму</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Аднавіць прадвызначаныя пошукавыя сістэмы</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Дадаць іншую пошукавую сістэму</string>
+ <string name="preference_search_remove_title">Выдаліць пошукавыя сістэмы</string>
+ <string name="preference_search_remove">Выдаліць</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Дадаць іншую пошукавую сістэму</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Выберыце сваю пошукавую сістэму:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Дадаць пошукавую сістэму</string>
+
+ <string name="search_add_manually_name_hint">Назва пошукавай сістэмы</string>
+ <string name="search_add_manually_string">Пошукавы радок</string>
+ <string name="search_add_manually_save">Захаваць</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Прыклад: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Дададзена новая пошукавая сістэма.</string>
+
+ <string name="search_add_error_empty_name">Увядзіце назву пошукавай сістэмы</string>
+
+ <string name="search_add_error_duplicate_name">Гэта назва ўжо выкарыстоўваецца ва ўсталяванай пошукавай сістэме.</string>
+
+ <string name="search_add_error_empty_search">Увядзіце радок пошуку</string>
+
+ <string name="search_add_error_format">Пераканайцеся, што пошукавы запыт адпавядае Ўзорнаму фармату</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Ачысціць увод</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Адхіліць</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Сцерці гісторыю аглядання</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Адкрытых картак: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Бяспечнае злучэнне</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Загрузка</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Вэб-сайт загружаны</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Дадаткова</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Кнопка дадатковых налад</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Перайсці наперад</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Перазагрузіць сайт</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Перайсці назад</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Спыніць загрузку сайта</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Вярнуцца ў папярэднюю праграму</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Колькасць заблакаваных трэкераў</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Блакіраваць трэкеры</string>
+
+ <string name="your_rights">Вашы правы</string>
+
+ <string name="external_app_prompt_title">Адкрыць спасылку ў іншай праграме</string>
+
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Вы можаце выйсці з %1$s, каб адкрыць гэтую спасылку ў %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Знайдзіце праграму, якая можа адкрыць спасылку</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ні адна з праграм на вашай прыладзе не можа адкрыць гэту спасылку. Вы можаце выйсці з %1$s для пошуку ў %2$s праграмы, якая можа.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Пакінуць Прыватнае агляданне?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s скончана</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Адкрыць</string>
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Дададзена ў цэтлікі!</string>
+
+ <string name="error_hostLookup_title">Сервер не знойдзены</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Закрыць</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Вітаем у %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Хуткі. Прыватны. Засяроджаны.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Пачаць</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s не падобны на іншыя браўзеры</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Для павышэння прыватнасці мы выдаляем вашу гісторыю, калі вы закрываеце праграму.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Зрабіце %1$s прадвызначаным браўзерам, каб абараніць вашы даныя пры адкрыцці кожнай спасылцы.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Зрабіць прадвызначаным браўзерам</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Прапусціць</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Узмацніце сваю прыватнасць</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Перайдзіце на новы ўзровень прыватнага аглядання. Блакіруйце рэкламу і іншы змест, які можа сачыць за вамі на сайтах і запавольваць загрузку старонак.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Шукайце па-свойму</string>
+
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Шукаеце нешта іншае? Выберыце іншы прадвызначаны пашукавік у наладах.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Дадайце цэтлікі на хатні экран</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Хутка вярніцеся да сваіх улюбёных сайтаў у %1$s. Проста выберыце \&quot;Дадаць на хатні экран\&quot; у меню %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Зрабіце прыватнасць звычкаю</string>
+
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Усталюйце %1$s прадвызначаным браўзерам і атрымлівайце перавагі прыватнага аглядання, калі адкрываеце вэб-старонкі з іншых праграм.</string>
+
+ <string name="firstrun_close_button">OK, зразумела!</string>
+ <string name="firstrun_skip_button">Прапусціць</string>
+ <string name="firstrun_next_button">Далей</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Дадаць</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ТАК</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Скасаваць</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">НЕ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Цэтлік будзе адкрывацца з адключанай узмоцненай аховай ад сачэння</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Сеанс прыватнага аглядання</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Апавяшчэнні дазваляюць сцерці сеанс %1$s адным дотыкам. Вам не трэба адкрываць праграму або бачыць, што адкрыта ў вашым браўзеры.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Сцерці гісторыю аглядання</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Сцягнуць Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s — бясплатнае праграмнае забеспячэнне з адкрытым зыходным кодам, створанае Mozilla і іншымі ўдзельнікамі.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s даступны вам на ўмовах <a href="%2$s">Mozilla Public License</a> і іншых ліцэнзій для адкрытага зыходнага коду.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Вам не прадстаўляюцца ніякія правы ці ліцэнзіі на таварныя знакі Mozilla Foundation або іншых бакоў, уключаючы назвы і эмблемы Mozilla, Firefox або %1$s. Дадатковую інфармацыю можна знайсці <a href="%2$s">тут</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Дадатковы зыходны код для %1$s даступны пад рознымі іншымі бясплатнымі і адкрытымі <a href="%2$s">ліцэнзіямі</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s таксама выкарыстоўвае спісы блакіровак, прадстаўленыя Disconnect, Inc. як асобныя і незалежныя працы ў адпаведнасці з <a href="%2$s">GNU General Public License v3</a> і даступныя <a href="%3$s">тут</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Імя карыстальніка</string>
+ <string name="gv_prompt_password_hint">Пароль</string>
+ <string name="gv_prompt_clear">Ачысціць</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Бяспечнае злучэнне</string>
+ <string name="security_popup_insecure_connection">Небяспечнае злучэнне</string>
+
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Пацверджана: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Бяспека сайта</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL ўжо існуе</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Знайсці на старонцы</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Знайсці на старонцы</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d з %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Знайсці наступны вынік</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Знайсці папярэдні вынік</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Прыбраць пошук на старонцы</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Поўная версія сайта</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Версія для камп’ютара</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL скапіраваны</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Інструменты распрацоўшчыка</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Адкрываць спасылкі ў праграмах</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Дадаткова</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Дазволы для сайтаў</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Памяншэнне колькасці банераў кукі</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Уключана</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Выключана</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Памяншэнне колькасці банераў кукі</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Бачце менш банераў, аўтаматычна адхіляючы запыты на кукі, калі гэта магчыма.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Памяншэнне колькасці банераў кукі</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">УКЛЮЧАНА для гэтага сайта</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Сайт зараз не падтрымліваецца</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">ВЫКЛЮЧАНА для гэтага сайта</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Памяншэнне колькасці банераў кукі</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">ВЫКЛЮЧАНА для гэтага сайта</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">УКЛЮЧАНА для гэтага сайта</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Уключыць памяншэнне колькасці банераў кукі для %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Выключыць памяншэнне колькасці банераў кукі для %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s выдаліць файлы кукі гэтага сайта і абновіць старонку. Выдаленне ўсіх файлаў кукі можа прывесці да выхаду з сістэмы або ачышчэння кошыка для пакупак.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s можа паспрабаваць аўтаматычна адхіляць запыты на файлы кукі.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Гэты сайт у цяперашні час не падтрымліваецца функцыяй памяншэння колькасці банераў кукі. Хочаце запытаць нашу каманду прагледзець гэты сайт і дадаць падтрымку ў будучыні?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Скасаваць</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Запытаць падтрымку</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Запыт на падтрымку сайта адпраўлены.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Запыт на падтрымку сайта адпраўлены.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s спрабуе адхіліць запыты кукі, каб выдаліць раздражняльныя банеры кукі.\n\nКіруйце параметрамі банераў кукі ў %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">налады</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Аўтапрайграванне</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Каб дазволіць гэта:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Перайдзіце ў налады Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Націсніце <b>Дазволы</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Перайсці ў налады</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Пераключыце <b>%1$s</b> на УКЛ]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Камера</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Мікрафон</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Месцазнаходжанне</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Апавяшчэнні</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Змесціва пад DRM кантролем</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Запытваць дазвол</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Заблакіраваны</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Дазволена</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Заблакіравана Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Дазволіць гук і відэа</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Блакіраваць толькі гук</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Рэкамендавана</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Блакіраваць гук і відэа</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Даследаванні</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox можа ўсталёўваць і выконваць даследаванні час ад часу.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Падрабязней</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Праграма будзе закрыта, каб прымяніць змены</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Выдаліць</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Актыўна</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Скончана</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Аддаленая адладка праз USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Разблакіраваць</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Пацвердзіце з дапамогай адбітка пальца</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Можаце выкарыстаць адбітак пальца, каб працягнуць цяперашні сеанс праграмы.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Адкрыць спасылку ў новым сеансе</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Значок адбітка пальца</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Адбітак пальца не распазнаны. Паспрабуйце яшчэ.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Палец рухаўся надта хутка. Паспрабуйце зноў.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Паказваць пошукавыя прапановы?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> Для атрымання прапаноў %1$s павінен адпраўляць тое, што вы ўводзіце ў адрасны радок, у пошукавую сістэму.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Не</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Так</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Некаторыя пошукавыя сістэмы не могуць паказваць прапановы.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Адхіліць</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Сайт паводзіць сябе нечакана?\n
+ Паспрабуйце адключыць ахову ад сачэння</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Хуткі доступ да ўлюбёных сайтаў%1$s Меню > Дадаць на хатні экран]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Адкрывайце ўсе спасылкі ў %1$s\n
+ Усталяваць %1$s як прадвызначаны браўзер
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Аўтадапаўненне URL-адрасоў для сайтаў, якімі найчасцей карыстаецеся\n
+ Доўгае націсканне на любы URL у адрасным радку
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Адкрыць спасылку ў новай картцы\n
+ Доўгае націсканне на любую спасылку на старонцы
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Выключыць парады на стартавым экране</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Адкрыта новая картка</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Пераключыць</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Уваход у поўнаэкранны рэжым</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Неадкладна пераключыцца на спасылку ў новай картцы</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Блакаваць патэнцыйна небяспечныя і падманлівыя сайты</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Блакіраваць сайты, якія падманваюць і нападаюць, сайты са шкодным і непажаданым праграмным забеспячэннем.</string>
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Рэжым «Толькі HTTPS»</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Аўтаматычна спрабуе падключацца да сайтаў з выкарыстаннем пратаколу шыфравання HTTPS для павышэння бяспекі.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Выключэнні</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Вы адключылі блакіроўку змесціва для гэтых сайтах.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Выдаліць</string>
+
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Выдаліць усе вэб-сайты</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Блакіраваць кукі</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Вы хочаце заблакіраваць кукі?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Збой карткі</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Прабачце. З гэтай карткай узніклі праблемы.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Як прыватны браўзер, мы ніколі не захоўваем і не можам аднавіць гэту картку.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Закрыць картку</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Адправіць справаздачу аб збоі ў Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Заблакіравана трэкераў з %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Змесціва</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Рэклама</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Сацыяльныя сеткі</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Аналітыка</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Узмоцненая ахова ад сачэння</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Ахова адключана на гэтым сайце</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Ахова ўключана на гэтым сайце</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Бяспечнае злучэнне</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Небяспечнае злучэнне</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Трэкеры і скрыпты, якія трэба заблакіраваць</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Вярнуцца</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Выдаліць</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Перайменаваць</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Перайменаваць</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Назва цэтліка</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Захаваныя і абагуленыя відарысы &lt;b&gt;не будуць&lt;/b&gt; выдалены, калі вы выдаліце гісторыю %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Тэма</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Светлая</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Цёмная</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Паводле рэжыму эканоміі зараду</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Тэма прылады</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Гэты сайт не падтрымлівае HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s спрабуе выкарыстоўваць HTTPS-злучэнне, калі гэта магчыма, для лепшай бяспекі.
+ <a href="%2$s">Падрабязней</a> <br/><br/>
+ Змяніць гэта можна, перайшоўшы ў Налады > Прыватнасць і бяспека > Бяспека.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Злучэнне не бяспечнае</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Гэта можа быць праблемай наладкі сервера ці, магчыма, хтосьці спрабуе прыкінуцца гэтым серверам. <br/><br/>
+ Калі вы паспяхова злучаліся з гэтым серверам раней, памылка можа быць часовай.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Хтосьці можа спрабаваць падмяніць гэты сайт, і працягваць можа быць рызыкоўна.</label>
+ <br><br>
+ <label>%1$s не давярае <b>%2$s</b>, таму што выдавец яго сертыфіката нявызначаны, сертыфікат самападпісаны, або сервер не дае спраўных прамежкавых сертыфікатаў.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Закрыць картку</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Папаўся! Мы не дазволілі гэтаму сайту шпіёніць за вамі. Націсніце на шчыт, каб даведацца, што мы блакіруем.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Закрыць усплывальнае акно</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Вы абаронены!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Гэтыя прадвызначаныя налады забяспечваюць надзейную абарону. Але вы лёгка можаце змяніць іх у адпаведнасці з вашымі патрэбамі.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Адхіліць</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Націсніце тут, каб сцерці ўсё — гісторыю, кукі, абсалютна ўсё — і пачаць нанова на новай картцы.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Закрыць</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Віджэт пошуку</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Гісторыя аглядання выдалена! 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Пачніце сеанс прыватнага аглядання і мы будзем блакіраваць трэкеры і іншыя непажаданыя элементы.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Мы пакінем вас у рэжыме прыватнага аглядання, але ў наступны раз пачніце хутчэй з дапамогай віджэта %1$s на галоўным экране.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Дадаць віджэт на хатні экран</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Віджэт дададзены на хатні экран</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-bg/strings.xml b/mobile/android/focus-android/app/src/main/res/values-bg/strings.xml
new file mode 100644
index 0000000000..3ed7a88a6b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-bg/strings.xml
@@ -0,0 +1,1103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Отказ</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Добре</string>
+
+ <string name="action_save">Запазване</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Търсене или въвеждане на адрес</string>
+
+ <string name="teaser">Винаги поверително.\nЧетене. Изчистване. Повтаряне.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Историята на разглеждане е изчистена</string>
+ <string name="feedback_erase2">Историята на разглеждане е изчистена</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Историята на разглеждане в раздела е изчистена.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Търсене на %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Споделяне…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Докладване на проблем със сайта</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Отваряне в/във %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Отваряне в…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Добавяне към екрана</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Добавяне на пряк път</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Премахване на пряк път</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Настройки</string>
+ <string name="menu_about">Относно</string>
+ <string name="menu_help">Помощ</string>
+ <string name="menu_rights">Вашите права</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Спрени проследявания</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Изключването на тази функция би могла да реши някои проблеми със сайта</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Блокиране на съдържанието</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Изключете, за да поправите някои сайтове</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">С подкрепата на %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Споделяне чрез</string>
+
+ <string name="notification_erase_title_android_14">Изчистване историята на разглеждането?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Докоснете или изчистете това известие, за да изтриете сигурно историята на сърфирането.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">За да премахнете историята от разглеждането докоснете или плъзнете това известие.</string>
+
+ <string name="notification_erase_text">Изчистване историята на разглеждането</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Отваряне</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Изчистване и отваряне</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Изчистване</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Изчистване историята на разглеждането</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Изчистване и отваряне</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Изчистване и отваряне на %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Търсене с Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Търсене с Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Търсене с Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Търсене с Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s ви дава контрол.</p>
+<p>Използвайте го, за да разглеждате поверително:
+ <ul>
+ <li>Търсене и разглеждане изцяло в приложението</li>
+ <li>Спиране на проследяването (или позволяване с промяна в настройките)</li>
+ <li>Изчистване на бисквитките, търсенията и историята на разглеждане</li>
+ </ul>
+</p>
+<p>%1$s се разработва от Mozilla. Нашата мисия е да развиваме здрав и отворен Интернет.<br/>
+<a href="%2$s">Научете повече</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Поверителност и защита</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Проследяване, бисквитки, избор на данни</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Задаване като стандартна, автоматично довършване</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Относно %1$s, помощ</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Подобрена защита от проследяване</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Съдържание от Мрежата</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Превключване на приложения</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Основни</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Четец по подразбиране, език</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Събиране на данни и начини на употреба</string>
+
+ <string name="preference_category_search">Търсене</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Получаване на предложения за търсене</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s ще изпраща въвежданото от вас в адресната лента към търсачката</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Използвана търсеща машина</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Търсачка</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Включено</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Изключено</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Автоматично довършване на адреси</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">За често посещаваните страници</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Включете, за да имате в адресната лента на %s автоматично довършване на повече от 450 популярни адреси.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">За сайтовете, които сте добавили</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Включете, за да имате автоматично довършване в %s на любимите адреси.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Управление на сайтове</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Управление на сайтове</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Добавяне на потребителски адрес</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Вашият списък за автоматично довършване:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Добавяне на адрес</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Добавяне на адрес</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Добавяне на потребителски адрес</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Включване на адреса за автоматичното довършване</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Бисквитки и данни на страници</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Избор на данни</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Премахване на адреси</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Научете повече</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Добавяне и управление на автоматичното довършване на потребителски адреси.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Адрес за добавяне</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Поставете или въведете адрес</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Пример: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Пример: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Добавен е нов потребителски адрес.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Премахване</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Премахване</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Проверете пак адреса, който въведохте.</string>
+
+ <string name="preference_language">Език</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Стандартният за системата</string>
+
+ <string name="preference_category_privacy">Поверителност</string>
+ <string name="preference_privacy_block_ads">Спиране на следене от реклами</string>
+ <string name="preference_privacy_block_ads_summary">Някои реклами проследяват посещенията, даже и да не натискате върху тях</string>
+ <string name="preference_privacy_block_analytics">Спиране на следене с цел анализ</string>
+ <string name="preference_privacy_block_analytics_summary">Използват го, за да събират, анализират и измерват дейности като докосване и плъзгане</string>
+ <string name="preference_privacy_block_social">Спиране на следене от социални мрежи</string>
+ <string name="preference_privacy_block_social_summary">Вградени в сайтове, за да ви проследява и да показва функционални елементи, като например бутони за споделяне</string>
+ <string name="preference_privacy_block_content">Спиране на следене през друго съдържание</string>
+ <string name="preference_privacy_block_content_summary2">Активирането може да предизвика неочаквано поведение на някои страници</string>
+ <string name="preference_privacy_category_cookies">Забраняване на бисквитки</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Не, благодаря</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Блокиране на бисквитките само от трети страни</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">забраняване от трети страни</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Забраняване на бисквитки от трети страни</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Да, моля</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Използване на пръстов отпечатък за отключване на приложението</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Отключете чрез пръстов отпечатък, ако сте добавили преки пътища или когато уебсайт вече е отворен в %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Невидим</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Скриване на страниците при превключване между приложения и блокиране на правенето на снимки на екрана.</string>
+
+ <string name="preference_category_security">Защита</string>
+
+ <string name="preference_category_performance">Производителност</string>
+ <string name="preference_performance_block_webfonts">Спиране на уеб шрифтовете</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Може да доведе до липсващи икони или изображения</string>
+
+ <string name="preference_performance_block_javascript">Забраняване на JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Страниците зареждат по-бързо, но може да се държат непредсказуемо</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Избиране на %1$s като стандартен четец</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Изпращане данни за използването</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Научете повече</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla се старае да събира само нужните данни за подобряване на %1$s.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Политика на поверителност</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Лицензна информация</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Използвани библиотеки</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | библиотеки с отворен код</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Относно %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Инсталирани търсачки</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Избиране на търсеща машина</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Възстановяване на стандартните търсачки</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+Добавяне на друга търсачка</string>
+ <string name="preference_search_remove_title">Премахване на търсачките</string>
+ <string name="preference_search_remove">Премахване</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Добавяне на друга търсачка</string>
+
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Изберете предпочитана търсачка:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Добавяне на търсачка</string>
+
+ <string name="search_add_manually_name_hint">Име на търсачката</string>
+ <string name="search_add_manually_string">Низ за търсене, който да се използва</string>
+ <string name="search_add_manually_save">Запис</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Пример: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Добавена е нова търсачка.</string>
+
+ <string name="search_add_error_empty_name">Въведете име на търсачка</string>
+ <string name="search_add_error_duplicate_name">Инсталирана търсеща машина вече използва това име.</string>
+
+ <string name="search_add_error_empty_search">Въведете низ за търсене</string>
+
+ <string name="search_add_error_format">Проверете дали низът за търсене отговаря на формата в примера</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Изчистване на полето</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Затваряне</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Изчистване историята на разглеждането</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Отворени раздели: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Защитена връзка</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Зареждане</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Страницата е заредена</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Повече настройки</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Бутон за още опции</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Придвижване напред</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Презареждане на страницата</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Връщане назад</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Спиране зареждането на страницата</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Връщане към предишното приложение</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Брой спрени проследяващи елементи</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Спиране на следенето</string>
+
+ <string name="your_rights">Вашите права</string>
+
+ <string name="external_app_prompt_title">Отваряне на препратка в приложение</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Може да напуснете %1$s, за да отворите препратката в %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Търсене на приложение за отваряне на препратката</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Никое от приложенията на устройството ви са способни да отворят тази препратка. Може да напуснете %1$s, за да потърсите в %2$s подходящо приложение.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Излизане от поверително разглеждане?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s е изтеглен</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Отваряне</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Добавено към преки пътища!</string>
+
+ <string name="error_hostLookup_title">Сървърът не е намерен</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Затваряне</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Добре дошли при %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Бързо. Поверително. Без разсейване.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Въведение</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s не е като другите</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">За допълнителна поверителност премахваме историята при затваряне на приложението.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Направете %1$s мрежов четец по подразбиране, за да защитите данните си.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Четец по подразбиране</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Пропускане</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Усилете вашата поверителност</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Преминете към следващото ниво на поверителност. Спирайте рекламите и друго съдържание, което следи движението ви през интернет и забавя зареждането на страниците.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Вашето търсене, по вашия начин</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Търсите нещо различно? Изберете друга търсеща машина в Настройки.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Добавяне на преки пътища към началния екран</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">С %1$s можете бързо да се връщате към най-използваните от вас сайтове. Просто изберете „Добавяне към екрана“ от менюто на %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Изградете навик за поверителност</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Задайте %1$s като стандартен четец и се възползвайте от поверителността при отваряне на препратки към страници от други приложения.</string>
+
+ <string name="firstrun_close_button">Разбрано!</string>
+ <string name="firstrun_skip_button">Пропускане</string>
+ <string name="firstrun_next_button">Напред</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">–</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Добавяне</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ДА</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Отказ</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">НЕ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Преките пътища ще се отварят с изключена защита от проследяване</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Сесия на поверително разглеждане</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Уведомленията ви позволяват с едно натискане да изтриете сесията на %1$s. Няма нужда да отваряте приложението или да виждате какво разглеждате в момента.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Изчистване историята на разглеждането</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Изтегляне на Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s е свободен софтуер с отворен код, направен от Mozilla и други участници.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s е достъпен под условията на <a href="%2$s">Mozilla Public License</a> и други лицензи за отворен код.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Не ви се предоставят права или лицензи за търговските марки на Mozilla Foundation или друга страна, включително Mozilla, Firefox или имената и емблемите на %1$s. Допълнителна информация може да бъде намерена <a href="%2$s">тук</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Изходният код на %1$s е достъпен под различни <a href="%2$s">лицензи</a> – безплатни и с отворен код.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[Също така %1$s използва блокиращ списък, осигуряван от Disconnect, Inc., като отделна и независима разработка под условията на <a href="%2$s">GNU General Public License v3</a>, също достъпен <a href="%3$s">тук</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Потребителско име</string>
+ <string name="gv_prompt_password_hint">Парола</string>
+ <string name="gv_prompt_clear">Изчистване</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Защитена връзка</string>
+ <string name="security_popup_insecure_connection">Незащитена връзка</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Проверено от: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Защита на страницата</string>
+ <string name="preference_autocomplete_duplicate_url_error">Адресът вече съществува</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Търсене в страницата</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Търсене в страницата</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d от %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Отиване на следващото съвпадение</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Отиване на предишното съвпадение</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Затваряне на търсенето</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Настолна версия на сайта</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Настолна версия</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Адресът е копиран</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Развойни инструменти</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Отваряне на препратки в приложения</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Разширени</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Права на страниците</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Намаляване на банерите за бисквитки</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Включено</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Изключено</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Намаляване на банерите за бисквитки</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Срещайте по-малко банери за бисквитките чрез автоматичното отхвърляне на въпросите, когато е възможно.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Намаляване на банерите за бисквитки</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ВКЛЮЧЕНО за страницата</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Страницата не се поддържа</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">ИЗКЛЮЧЕНО за страницата</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Намаляване на банерите за бисквитки</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">ИЗКЛЮЧЕНО за страницата</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ВКЛЮЧЕНО за страницата</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Включване на намаляването на банерите за бисквитки за %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Изключване на намаляването на банерите за бисквитки за %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s ще изчисти бисквитките на този сайт и ще презареди страницата. Изчистването на всички бисквитки може да ви отпише от системата или да изпразни количките ви за пазаруване.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s може автоматично да опита да отхвърли заявките за бисквитки.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Този сайт в момента не поддържа намаляването на банери за бисквитки. Бихте ли искали нашия екип да прегледа този уебсайт и да добави поддръжка в бъдеще?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Отказ</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Заявка за поддръжка</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Заявката за поддръжка на сайта е изпратена.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Заявката за поддръжка на сайта е изпратена.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s ще опита да откаже заявките за бисквитки, за да не показва досадните запитвания за бисквитките.\n\nПроменете това в %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">настройките</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Автоматично възпроизвеждане</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">За да разрешите:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Отворете Настройки на Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Докоснете <b>Разрешения</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Към настройките</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Превключете <b>%1$s</b> в положение ВКЛЮЧЕНО]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Камера</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Микрофон</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Местоположение</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Известия</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Съдържание под DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Винаги да пита</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Забраняване</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Разрешаване</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Забранено от Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Разрешаване на звук и видео</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Блокиране само на аудио</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Препоръчани</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Без звук и видео</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Проучвания</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox може, от време на време, да инсталира и извършва проучвания.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Научете повече</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Приложението ще се затвори, за да приложи промените</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Премахване</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Включен</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Завършено</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Отдалечено отстраняване на дефекти през USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Отключване</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Потвърдете с вашия пръстов отпечатък</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Вече можете да използвате пръстовия си отпечатък, за да продължите текущата си сесия на приложението.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Отваряне на връзката в нова сесия</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Картинка на пръстов отпечатък</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Пръстовият отпечатък не е разпознат. Опитайте отново.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Пръстът се придвижи твърде бързо. Опитайте пак.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Показване на предложения за търсене?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">За да получите предложения, %1$s трябва да изпрати това, което въвеждате в адресната лента до търсачката.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Не</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Да</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Някои търсачки не могат да показват предложения.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Затваряне</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Сайтът се държи неочаквано?\n Опитайте да изключите защитата от проследяване</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Получете достъп с едно докосване до сайтовете, които използвате често%1$sМеню > Добавяне към екрана]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Отваряйте всяка препратка в %1$s\n Задайте %1$s като стандартен четец</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Автоматизирано завършвайте адреси на често посещавани сайтове\n Натиснете продължително върху адрес в адресната лента</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Отваряйте препратки в нов раздел\n Натиснете продължително върху препратка в страница</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Изключване на съветите на началния екран</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Отворен е нов раздел</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Превключване</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Режим на цял екран</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Превключване веднага към новия раздел на препратка</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Блокиране на потенциално опасни и измамни сайтове</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Блокиране на докладвани сайтове, които са подвеждащи и атакуващи, или със зловреден или нежелан софтуер.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Режим „само HTTPS“</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Автоматично опитване за свързка със сайтове, използвайки HTTPS протокола за криптиране за повишена сигурност.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Изключения</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Изключили сте блокиране на съдържанието за следните сайтове.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Премахване</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Премахване на всички сайтове</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Забраняване на бисквитки</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Желаете ли бисквитките да бъдат забранени?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Разделът се срина</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Извинявайте. Случи се проблем с този раздел.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Като поверителен четец, ние никога не записваме и не можем да възстановим този раздел.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Затваряне на раздела</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Изпращане на доклад за срива на Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Спрени проследявания от %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Съдържание</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Рекламни</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Социални</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Анализи</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Подобрена защита от проследяване</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Защитите са ИЗКЛЮЧЕНИ за този сайт</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Защитите са ВКЛЮЧЕНИ за този сайт</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Връзката е защитена</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Връзката не е защитена</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Проследяващи програми и скриптове за блокиране</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Връщане назад</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Премахване</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Преименуване</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Преименуване</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Име на пряк път</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Запазените и споделените изображения &lt;b&gt;няма да бъдат&lt;/b&gt; изтрити, когато изтриете историята на %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Тема</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Светла</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Тъмна</string>
+
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Зададена от приложение за пестене на батерия</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Като темата на устройството</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Този сайт не поддържа HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s се опитва да използва HTTPS връзка винаги, когато е възможно за повече сигурност.
+ <a href="%2$s">Научете повече</a> <br/><br/>
+ Променете тази настройка в Настройки > Поверителност &amp; Сигурност > Сигурност.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Връзката не е защитена</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Това може да е проблем с конфигурацията на сървъра или може някой да се опитва да се представя за сървъра. <br/><br/>
+ Ако сте се свързвали успешно с този сървър в миналото, грешката може да е временна.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Някой може да се опитва да се представя за сайта и продължаването да бъде рисковано.</label>
+ <br><br>
+ <label>%1$s не вярва на <b>%2$s</b>, защото издателят на сертификата му е неизвестен, сертификатът е самоподписан или сървърът не изпраща правилните междинни сертификати.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Затваряне на раздела</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Хванахме ги! Спряхме този сайт да ви шпионира. Натиснете щита по всяко време, за да видите какво блокираме.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Затваряне на изскачащия прозорец</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Вие сте защитени!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Настройките по подразбиране предлагат силна защита. Лесно е да ги промените, за да отговарят на вашите специфични нужди.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Прекратяване</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Натиснете тук за да изхвърлите всичко — история за сърфирането, бисквитки, всичко — и започнете на чисто в нов раздел.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Затваряне</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Приспособление за търсене</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Историята на сърфирането е изчистена! 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Започнете личната ви сесия на сърфиране и ние ще блокираме проследяващи програми и други лоши неща, докато го правите.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Ще ви оставим на личното ви сърфиране, но следващия път започнете по-бързо с приспособлението %1$s на началния екран.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Прибавете приспособлението към началния екран</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Приспособлението е добавено към началния екран</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-bn/strings.xml b/mobile/android/focus-android/app/src/main/res/values-bn/strings.xml
new file mode 100644
index 0000000000..57cbb27250
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-bn/strings.xml
@@ -0,0 +1,403 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <string name="action_cancel">বাতিল</string>
+ <string name="action_ok">ঠিক আছে</string>
+
+ <string name="action_save">সংরক্ষণ</string>
+
+ <string name="urlbar_hint">অনুসন্ধান করুন বা ঠিকানা লিখুন</string>
+
+ <string name="teaser">স্বয়ংক্রিয় প্রাইভেন্ট ব্রাউজিং। \nব্রাউজ করুন। মুছে দিন। আবার করুন।</string>
+
+ <string name="feedback_erase">আপনার ব্রাউজিংয়ের পূর্ববর্তী তথ্য মুছে ফেলা হয়েছে।</string>
+
+ <string name="feedback_erase_custom_tab">ট্যাব এর ব্রাউজিং ইতিহাস মুছে ফেলা হয়েছে।</string>
+
+ <string name="search_hint">%1$s এর জন্যে অনুসন্ধান করুন</string>
+
+ <string name="menu_share">শেয়ার…</string>
+
+ <string name="menu_report_site_issue">সাইট ইস্যু রিপোর্ট করুন</string>
+
+ <string name="menu_open_with_default_browser2">%1$s এ খুলুন</string>
+
+ <string name="menu_open_with_a_browser2">খুলুন…</string>
+
+ <string name="menu_add_to_home_screen">নীড় স্ক্রিনে যোগ</string>
+
+ <string name="menu_settings">সেটিং</string>
+ <string name="menu_about">পরিচিতি</string>
+ <string name="menu_help">সহায়তা</string>
+ <string name="menu_rights">আপনার অধিকারসমূহ</string>
+
+ <string name="menu_trackers_blocked_title">ট্র্যাকার ব্লক করা হয়েছে্যা</string>
+
+ <string name="menu_trackers_blocked_subtitle">বন্ধ করলে, চালু কিছু সাইটের সমস্যা ঠিক হতে পারে</string>
+
+ <string name="menu_content_blocking">কন্টেন্ট ব্লকিং</string>
+ <string name="menu_content_blocking_subtitle">কিছু সাইট ফিক্স করা বন্ধ</string>
+
+ <string name="menu_custom_tab_branding">%1$s পরিচালিত</string>
+
+ <string name="share_dialog_title">শেয়ারের মাধ্যম</string>
+
+ <string name="notification_erase_text">ব্রাউজিং ইতিহাস মুছে দিন</string>
+
+ <string name="notification_action_open">খুলুন</string>
+
+ <string name="notification_action_erase_and_open">মুছুন এবং খুলুন</string>
+
+ <string name="shortcut_erase_short_label">মুছুন</string>
+
+ <string name="shortcut_erase_long_label">ব্রাউজিং ইতিহাস মুছুন</string>
+
+
+ <string name="shortcut_erase_and_open_short_label">মুছে ফেলুন এবং খুলুন</string>
+
+ <string name="shortcut_erase_and_open_long_label">মুছে ফেলুন এবং %1$s খুলুন</string>
+
+ <string name="preference_privacy_and_security_header">গোপনীয়তা ও নিরাপত্তা</string>
+
+ <string name="preference_privacy_and_security_summary">ট্র্যাকিং, কুকিজ, লগইন, ডাটা পছন্দ</string>
+
+ <string name="preference_search_summary">ডিফল্ট সেট করুন, অটোকমপ্লিট</string>
+
+ <string name="preference_mozilla_summary">%1$s সম্বন্ধে, সাহায্য</string>
+
+ <string name="preference_category_web_content">ওয়েব কনটেন্ট</string>
+
+ <string name="preference_category_switching_apps">সুইচিং অ্যাপস</string>
+
+ <string name="preference_category_general">সাধারণ</string>
+
+ <string name="preference_category_data_collection_use">ডাটা সংগ্রহ ও ব্যবহার</string>
+
+ <string name="preference_category_search">অনুসন্ধান</string>
+
+ <string name="preference_show_search_suggestions">অনুসন্ধান পরামর্শ নিন</string>
+ <string name="preference_show_search_suggestions_summary">আপনার অনুসন্ধান ইঞ্জিনে ঠিকানা বারে আপনি যা টাইপ করেন, %1$s তা পাঠাবে</string>
+
+ <string name="preference_search_engine_default">পূর্বনির্ধারিত</string>
+
+ <string name="preference_search_engine_label">অনুসন্ধান ইঞ্জিন</string>
+
+ <string name="preference_state_on">চালু</string>
+
+ <string name="preference_state_off">বন্ধ</string>
+
+ <string name="preference_subitem_autocomplete">URL অটোকমপ্লিট</string>
+
+ <string name="preference_switch_autocomplete_topsites">শীর্ষস্থানীয় সাইটের জন্য</string>
+
+ <string name="preference_switch_autocomplete_user_list">আপনি যেসব সাইট যোগ করবেন তার জন্যে</string>
+
+ <string name="preference_category_autocomplete_manage_sites">সাইট ব্যবস্থাপনা করুন</string>
+
+ <string name="preference_autocomplete_subitem_manage_sites">সাইট ব্যবস্থাপনা</string>
+
+ <string name="preference_autocomplete_action_add">+ কাস্টোম URL যোগ করুন</string>
+
+ <string name="preference_autocomplete_title_add">কাস্টোম URL যোগ করুন</string>
+
+ <string name="custom_autocomplete_quick_add">কাস্টোম URL যোগ করুন</string>
+
+ <string name="add_custom_autocomplete_label">স্বয়ংপূরণে লিঙ্ক যোগ করুন</string>
+
+ <string name="preference_category_cookies">কুকি ও সাইট ডাটা</string>
+
+ <string name="preference_category_data_choices">ডাটা পছন্দ</string>
+
+ <string name="preference_autocomplete_title_remove">কাস্টোম URL মুছে দিন</string>
+
+ <string name="preference_autocomplete_learn_more">আরও জানুন</string>
+
+ <string name="preference_autocomplete_custom_summary">কাস্টোম অটোকমপ্লিট URLs যোগ এবং ম্যানেজ করুন।</string>
+
+ <string name="preference_autocomplete_add_title">URL যোগ করতে</string>
+
+ <string name="preference_autocomplete_add_hint">URL পেস্ট অথবা প্রবেশ করান</string>
+
+ <string name="preference_autocomplete_add_example2">উদাহরণ: mozilla.org</string>
+
+ <string name="preference_autocomplete_add_example">উদাহরণ: example.com</string>
+
+ <string name="preference_autocomplete_add_confirmation">নতুন কাস্টোম URL যোগ করা হয়েছে।</string>
+
+ <string name="preference_autocomplete_menu_remove">অপসারণ</string>
+
+ <string name="preference_autocomplete_action_remove_content_description">অপসারণ</string>
+
+ <string name="preference_autocomplete_add_error">যে URL টি আপনি দিলেন তা ডবল চেক করুন।</string>
+
+ <string name="preference_language">ভাষা</string>
+ <string name="preference_language_systemdefault">সিস্টেম ডিফল্ট</string>
+
+ <string name="preference_category_privacy">গোপনীয়তা</string>
+ <string name="preference_privacy_block_ads">বিজ্ঞাপন গোয়েন্দা আটক করুন</string>
+ <string name="preference_privacy_block_ads_summary">কিছু বিজ্ঞাপন, আপনি তাতে ক্লিক না করলেও কি সাইট ব্রাউজ করছেন তা ট্র্যাক করে</string>
+ <string name="preference_privacy_block_analytics">এনালেটিকস গোয়েন্দা আটক করুন</string>
+ <string name="preference_privacy_block_analytics_summary">ট্যাপিং বা স্ক্রলিং এর মত কর্মকান্ডের হিসেব রাখতে, বিশ্লেষণ করতে ব্যবহৃত হয়</string>
+ <string name="preference_privacy_block_social">সোশ্যাল নেটওয়ার্ক গোয়েন্দা আটক করুন</string>
+ <string name="preference_privacy_block_social_summary">সাইটে আপনার ব্রাউজ ট্র্যাক করতে এবং শেয়ার বোতামের মত ফাংশনালিটি দেখাতে সাইটে এম্বেড রয়েছে</string>
+ <string name="preference_privacy_block_content">অন্যন্য কনটেন্ট গোয়েন্দা আটক করুন</string>
+ <string name="preference_privacy_block_content_summary2">সক্রিয় করলে কিছু পাতা অপ্রত্যাশিত আচরণ করতে পারে</string>
+ <string name="preference_privacy_category_cookies">কুকি ব্লক কর</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">শুধুমাত্র তৃতীয় পক্ষের ট্র্যাকার কুকিজ ব্লক কর</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">&quot;কেবল ৩য়-পক্ষীয় কুকি ব্লক কর &quot;</string>
+
+ <string name="preference_security_biometric">অ্যাপ আনলক করার জন্য আঙ্গুলের ছাপ ব্যবহার করুন</string>
+
+ <string name="preference_privacy_secure_mode">অদৃশ্য</string>
+ <string name="preference_privacy_stealth_summary">অ্যাপ্লিকেশন পরিবর্তনের সময় ওয়েব পেজ লুকান এবং স্ক্রিনশট গ্রহণ ব্লক করুন।</string>
+
+ <string name="preference_category_security">নিরাপত্তা</string>
+
+ <string name="preference_category_performance">কর্মক্ষমতা</string>
+ <string name="preference_performance_block_webfonts">ওয়েব ফন্ট ব্লক করুন</string>
+ <string name="preference_performance_block_webfonts_summary">ছবি অথবা আইকন দৃশ্যমান নাও হতে পারে</string>
+
+ <string name="preference_performance_block_javascript">JavaScript ব্লক কর</string>
+ <string name="preference_performance_block_javascript_summary">পাতা সম্ভবত দ্রুত লোড হচ্ছে, কিন্তু অনাকাঙ্খিত ভাল দেখাচ্ছে না</string>
+
+ <string name="preference_default_browser2">%1$s কে ডিফল্ট ব্রাউজার করুন</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">ব্যবহারের তথ্য পাঠাও</string>
+
+ <string name="preference_mozilla_telemetry_summary">আরও জানুন</string>
+
+ <string name="preference_mozilla_telemetry_summary2">Mozilla কেবলমাত্র সংগ্রহ করা চেষ্টা করে যা প্রত্যেকের জন্য %1$s প্রদান এবং উন্নতি করতে হবে।</string>
+
+ <string name="preference_privacy_notice">গোপনীয়তা নীতি</string>
+
+ <string name="preference_about">%1$s সম্পর্কে</string>
+
+ <string name="preference_search_installed_search_engines">ইন্সটল করা অনুসন্ধান ইঞ্জিন</string>
+
+ <string name="preference_search_restore">ডিফল্ট অনুসন্ধান ইঞ্জিন পুনরুদ্ধার</string>
+
+ <string name="preference_search_add2">+ অন্য অনুসন্ধান ইঞ্জিন যোগ করুন</string>
+ <string name="preference_search_remove_title">অনুসন্ধান ইঞ্জিন অপসারণ করুন</string>
+ <string name="preference_search_remove">অপসারণ</string>
+
+ <string name="action_option_add_search_engine">অনুসন্ধান ইঞ্জিন যোগ</string>
+
+ <string name="search_add_manually_name_hint">অনুসন্ধান ইঞ্জিন নাম</string>
+ <string name="search_add_manually_string">ব্যবহারের জন্য অনুসন্ধান বাক্য</string>
+ <string name="search_add_manually_save">সংরক্ষণ</string>
+
+ <string name="search_add_manually_example">উদাহরণ: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">নতুন অনুসন্ধান ইঞ্জিন যোগ হয়েছে।</string>
+
+ <string name="search_add_error_empty_name">অনুসন্ধান ইঞ্জিনের নাম দিন</string>
+ <string name="search_add_error_duplicate_name">ইনস্টল করা কোন অনুসন্ধান ইঞ্জিন ইতিমধ্যে এই নাম ব্যবহার করছে।</string>
+
+ <string name="search_add_error_empty_search">অনুসন্ধান বাক্য দিন</string>
+
+ <string name="search_add_error_format">সার্চ স্ট্রিংটি যেটি উদাহরণ ফরম্যাটের সাথে মেলে তা চেক করুন</string>
+
+ <string name="content_description_clear_input">ইনপুট পরিস্কার</string>
+
+ <string name="content_description_dismiss_input">খারিজ</string>
+
+ <string name="content_description_erase">ব্রাউজিং ইতিহাস পরিষ্কার করুন</string>
+
+ <string name="content_description_tab_counter">ট্যাব খোলা: %1$s</string>
+
+ <string name="content_description_lock">সুরক্ষিত কানেকশন</string>
+
+ <string name="accessibility_announcement_loading">লোড হচ্ছে</string>
+
+ <string name="accessibility_announcement_loading_finished">ওয়েবসাইট লোড হয়েছে</string>
+
+ <string name="content_description_menu">আরও বিকল্পসমূহ</string>
+
+ <string name="indicator_content_description_menu">আরো অপশন বাটন</string>
+
+ <string name="content_description_forward">সামনে পরিভ্রমণ করুন</string>
+
+ <string name="content_description_reload">ওয়েবসাইট রিলোড করুন</string>
+
+ <string name="content_description_back">পেছনে পরিভ্রমণ করুন</string>
+
+ <string name="content_description_stop">ওয়েবসাইট লোডিং বন্ধ করুন</string>
+
+ <string name="content_description_customtab_exit">আগের অ্যাপে ফিরে যাও</string>
+
+ <string name="content_description_trackers_blocked">ব্লক করা ট্র্যাকারের সংখ্যা</string>
+
+ <string name="content_description_blocking_switch">ট্র্যাকার ব্লক করুন</string>
+
+ <string name="your_rights">আপনার অধিকারসমূহ</string>
+
+ <string name="external_app_prompt_title">নতুন অ্যাপে লিংক খুলুন</string>
+ <string name="external_app_prompt">লিংকটি %2$s এ খুলতে, আপনি %1$s কে ছেড়ে দিতে পারেন।</string>
+ <string name="external_app_prompt_no_app_title">একটি অ্যাপ অনুসন্ধান করো যা লিংখটি খুলতে পারবে</string>
+ <string name="external_app_prompt_no_app">আপনার ডিভাইসের কোন অ্যাপই এই লিঙ্কটি খুলতে সক্ষম হয়নি। %2$s অনুসন্ধান করে একটি অ্যাপ বের করার জন্যে আপনি %1$s কে দ্বায়িত্ব দিতে পারেন।</string>
+ <string name="external_multiple_apps_matched_exit">আপনি কি ব্যক্তিগত ব্রাউজিং বন্ধ করবেন?</string>
+
+ <string name="download_snackbar_finished">%1$s সম্পন্ন হয়েছে</string>
+
+ <string name="download_snackbar_open">খুলুন</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">সার্ভার পাওয়া যায়নি</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <string name="firstrun_defaultbrowser_title">আপনার গোপনীয়তা কঠোর করুন</string>
+ <string name="firstrun_defaultbrowser_text2">ব্যাক্তিগত ব্রাউজিং কে আরেক উচ্চতায় নিয়ে যান। বিজ্ঞাপন আর অন্যান্য কনটেন্ট ব্লক করুন, যারা আপনাকে সকল ওয়েবসাইটে অনুসরণ করে বেড়ায় আর আপনার পেজ লোডিং টাইম অনেকগুন বাড়িয়ে দেয়।</string>
+
+ <string name="firstrun_search_title">আপনি খুঁজবেন, আমার মত করে</string>
+ <string name="firstrun_search_text">অন্য কিছু খুঁজছেন? সেটিংস এ অন্য ডিফল্ট সার্চ ইঞ্জিন পছন্দ করুন।</string>
+
+ <string name="firstrun_shortcut_title">নীড় স্ক্রিনে শর্টকাট যোগ করুন</string>
+ <string name="firstrun_shortcut_text">%1$s এ আপনার প্রিয় সাইটে দ্রুত ফিরে আসুন। শুধু %1$s মেনু থেকে \&quot;হোম স্ক্রীনে যোগ করুন\&quot; নির্বাচন করুন।</string>
+
+ <string name="firstrun_privacy_title">গোপনীয়তাকে অভ্যাসে পরিনত করুন</string>
+ <string name="firstrun_privacy_text">আপনার ডিফল্ট ব্রাউজার হিসাবে %1$s সেট করুন এবং অন্য অ্যাপ্লিকেশন থেকে ওয়েবপেজ খুললে আপনি ব্যক্তিগত ব্রাউজিং এর সুবিধা পাবেন।</string>
+
+ <string name="firstrun_close_button">ঠিক আছে, বুঝতে পেরেছি!</string>
+ <string name="firstrun_skip_button">উপেক্ষা</string>
+ <string name="firstrun_next_button">পরবর্তী</string>
+
+ <string name="content_blocking_disabled">-</string>
+
+ <string name="dialog_addtohomescreen_action_add">যোগ</string>
+
+ <string name="dialog_addtohomescreen_action_cancel">বাতিল</string>
+
+ <string name="notification_browsing_session_channel_name">ব্যক্তিগত ব্রাউজিং সেশন</string>
+
+ <string name="notification_browsing_session_channel_description">নোাটফিকেশন ট্যাপ করে আপনার %1$s সেশন মুছে ফেলা যাবে। আপনাকে অ্যাপ্লিকেশন খুলতে বা ব্রাউজারে কি চলছে তা দেখার প্রয়োজন হবে না।</string>
+
+ <string name="tabs_tray_action_erase">ব্রাউজিং ইতিহাস পরিষ্কার করুন</string>
+
+ <string name="download_firefox">Firefox ডাউনলোড করুন</string>
+
+ <string name="your_rights_content1">%1$s হল Mozilla এবং অন্যান্য অবদানকারীর দ্বারা তৈরি ফ্রি এবং ওপেনসোর্স সফটওয়্যার।</string>
+
+
+
+
+ <string name="gv_prompt_username_hint">ব্যবহারকারীর নাম</string>
+ <string name="gv_prompt_password_hint">পাসওয়ার্ড</string>
+ <string name="gv_prompt_clear">পরিষ্কার</string>
+
+ <string name="security_popup_secure_connection">নিরাপদ সংযোগ</string>
+ <string name="security_popup_insecure_connection">অনিরাপদ সংযোগ</string>
+ <string name="security_popup_security_verified">যাচাইকারী: %1$s</string>
+
+ <string name="site_security_icon_content_description">সাইট নিরাপত্তা</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL ইতোমধ্যেই আছে</string>
+
+ <string name="find_in_page">পাতায় অনুসন্ধান</string>
+
+ <string name="find_in_page_input">পাতায় অনুসন্ধান</string>
+
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <string name="accessibility_find_in_page_result">%2$d এর %1$d</string>
+
+ <string name="accessibility_next_result">পরবর্তী ফলাফল খুঁজুন</string>
+ <string name="accessibility_previous_result">পূর্ববর্তী ফলাফল খুঁজুন</string>
+ <string name="accessibility_dismiss_find_in_page">পাতায় খোঁজা বাতিল করুন</string>
+
+
+
+ <string name="preference_performance_request_desktop_site">ডেস্কটপ সাইটের অনুরোধ</string>
+
+ <string name="custom_tab_copy_url_action">URL কপি হয়েছে</string>
+
+ <string name="preference_advanced_summary">ডেভেলপার টুল</string>
+
+ <string name="preference_category_advanced">বিস্তৃত</string>
+
+ <string name="preference_remote_debugging">ইউএসবি/ওয়াইফাই এর মাধ্যমে রিমোট ডিবাগিং</string>
+
+ <string name="biometric_auth_image_description">আঙ্গুলের ছাপ আইকন</string>
+
+ <string name="biometric_auth_not_recognized_error">আঙ্গুলের ছাপ চেনা যাচ্ছে না। আবার চেষ্টা করুন।</string>
+
+ <string name="biometric_auth_moved_too_quickly">আঙ্গুল খুব দ্রুত সরে গেছে। আবার চেষ্টা করুন।</string>
+
+ <string name="enable_search_suggestions_no">না</string>
+
+ <string name="enable_search_suggestions_yes">হ্যাঁ</string>
+
+ <string name="no_suggestions_message">কিছু সার্চ ইঞ্জিন পরামর্শ প্রদর্শন করতে পারবে না।</string>
+
+ <string name="dismiss_no_suggestions_prompt_button">বাতিল</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <string name="tip_disable_tracking_protection">সাইট অপ্রত্যাশিত আচরণ করছে?\n ট্র্যাকিং সুরক্ষা বন্ধ করে দেখুন</string>
+
+ <string name="tip_add_to_homescreen">আপনার দ্বারা অধিক ব্যবহার হওয়া সাইটসমূহে এক ট্যাপে চলে যান %1$s মেনু &gt; হোম স্ক্রিনে যোগ করুন</string>
+
+ <string name="tip_set_default_browser">%1$s এর মধ্যে প্রতিটি লিঙ্ক খুলুন\n ডিফল্ট ব্রাউজার হিসাবে %1$s সেট করুন</string>
+
+ <string name="tip_autocomplete_url">আপনার সবচে বেশী ব্যবহৃত স্বয়ংপূরণ URLs\n অ্যাড্রেস বারে যেকোনো URL লং-প্রেস করুন</string>
+
+ <string name="tip_open_in_new_tab">একটি নতুন ট্যাব একটি লিঙ্ক খুলুন\n কোন পেজে কোন লিংক লং-প্রেস করুন</string>
+
+ <string name="tip_disable_tips2">স্টার্ট স্ক্রিনে টিপস বন্ধ করুন</string>
+
+ <string name="new_tab_opened_snackbar">নতুন ট্যাব খোলা হয়েছে</string>
+
+ <string name="open_new_tab_snackbar">পরিবর্তন</string>
+
+ <string name="preference_open_new_tab">অবিলম্বে নতুন ট্যাব লিঙ্ক স্যুইচ করুন</string>
+
+ <string name="preference_safe_browsing_title">সম্ভাব্য বিপজ্জনক এবং প্রতারণামূলক সাইট ব্লক করুন</string>
+ <string name="preference_safe_browsing_summary">প্রতারণামূলক এবং আক্রমণ সাইট, ম্যালওয়্যার সাইট, এবং অবাঞ্ছিত সফ্টওয়্যারের সাইট ব্লক করুন।</string>
+
+ <string name="preference_exceptions">ব্যতিক্রম</string>
+ <string name="preference_exceptions_description">আপনি এই ওয়েবসাইটগুলির জন্য সামগ্রী অবরোধ নিষ্ক্রিয় করেছেন।</string>
+ <string name="preference_exceptions_menu_remove">অপসারণ করুন</string>
+ <string name="preference_exceptions_remove_all_button_label">সব ওয়েবসাইট অপসারণ করুন</string>
+
+ <string name="tab_crash_report_title">ট্যাব ক্র্যাশ হয়েছে</string>
+ <string name="tab_crash_report_headline">দুঃখিত। আমদের এই ট্যাবের সাথে একটি সমস্যা হচ্ছে।</string>
+ <string name="tab_crash_report_description">ব্যক্তিগত ব্রাউজার হিসাবে, আমরা কখনও সংরক্ষণ এবং এই ট্যাব পুনরুদ্ধার করতে পারব না।</string>
+ <string name="tab_crash_report_close_tab_button_label">ট্যাব বন্ধ করুন</string>
+
+
+
+
+ <string name="crash_report_send_crash_label">Mozilla কে ক্র্যাশ রিপোর্ট পাঠান</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-bo/strings.xml b/mobile/android/focus-android/app/src/main/res/values-bo/strings.xml
new file mode 100644
index 0000000000..ebe67860e2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-bo/strings.xml
@@ -0,0 +1,328 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <string name="action_cancel">འདོར་བ།</string>
+ <string name="action_ok">ཆོག</string>
+
+ <string name="action_save">ཉར་གསོག</string>
+
+ <string name="urlbar_hint">འཚོལ་བཤེར་ཡང་ན་དྲ་ཚིཊ་ཁ་བྱང་འདིར་འཇུག་རོཊ།</string>
+
+ <string name="teaser">རང་འགུལ་སྒེར་དོན་གསང་རྒྱ། དྲྭ་འཚོལ། བསུབ་པ། བསྐྱར་འཚོལ།</string>
+
+ <string name="feedback_erase">ཁྱེད་ཀྱི་འཚོལ་རབས་འདོར་བསུབས་བྱས་ཟིན།</string>
+
+ <string name="feedback_erase_custom_tab">རེའུ་མིག་བཟོ་རྟགས་ཀྱི་འཚོལ་རབས་འདོར་བསུབས་བྱས་ཟིན།</string>
+
+ <string name="search_hint">འཚོལ་བྱའི་ནང་དོན་ %1$s</string>
+
+ <string name="menu_share">མཉམ་སྤྱོད་་་</string>
+
+ <string name="menu_report_site_issue">དྲ་ཚིགས་གནད་དོན་སྙན་སེང་ཞུ་བ།</string>
+
+ <string name="menu_open_with_default_browser2">ཁ་འབྱེད་ཡུལ་ %1$s</string>
+
+ <string name="menu_open_with_a_browser2">ཁ་འབྱེད་ཡུལ་་་་</string>
+
+ <string name="menu_add_to_home_screen">ཁ་པའི་མདུན་ངོས་ཞོག་ཅིག</string>
+
+ <string name="menu_settings">སྒྲིག་འགོད།</string>
+ <string name="menu_about">ངོ་སྤྲོད།</string>
+ <string name="menu_help">རོགས་རམ།</string>
+ <string name="menu_rights">ཁྱེད་ཀྱི་བདག་དབང་།</string>
+
+ <string name="menu_trackers_blocked_title">རྗེས་འདེད་མཁན་བཀག་འགོག</string>
+
+ <string name="menu_trackers_blocked_subtitle">འདི་གསོད་ན་དྲ་ཚིགས་འགའ་ཤས་ཀྱི་གནད་དོན་བཅོས་སྒྲིག་བྱ་སྲིད།</string>
+
+ <string name="menu_content_blocking">ནང་དོན་འགོག་པ།</string>
+
+ <string name="share_dialog_title">མཉམ་སྤྱོད་བརྒྱུད་ལམ།</string>
+
+ <string name="notification_erase_text">འཚོལ་རབས་འདོར་སུབས་བྱོས།</string>
+
+ <string name="notification_action_open">ཁ་འབྱེད།</string>
+
+ <string name="notification_action_erase_and_open">འདོར་སུབ་དང་འཆར་བ།</string>
+
+ <string name="shortcut_erase_short_label">སུབ་པ།</string>
+
+ <string name="shortcut_erase_long_label">ཁྱོད་ཀྱི་འཚོལ་རབས་འདོར་སུབ་བྱས་ཟིན།</string>
+
+
+ <string name="shortcut_erase_and_open_short_label">སུབ་པ་དང་ཁ་འབྱེད་པ།</string>
+
+ <string name="shortcut_erase_and_open_long_label">སུབ་ནས་%1$sཁ་འབྱེད་པ།</string>
+
+ <string name="preference_privacy_and_security_header">གསང་དོན་དང་བདེ་འཇགས།</string>
+
+ <string name="preference_privacy_and_security_summary">&quot;རྗེས་འདེད། cookies གཞི་གྲངས་འདེམས་པ།&quot;</string>
+
+ <string name="preference_search_summary">རྩ་བ་བསྐོ་སྒྲིག གནད་ཚིག་རང་གྲུབ།</string>
+
+ <string name="preference_mozilla_summary">%1$s ངོ་སྤྲོད། རོགས་རམ།</string>
+
+ <string name="preference_category_web_content">དྲ་ངོས་བརྗོད་བྱ།</string>
+
+ <string name="preference_category_switching_apps">མཉེན་ཆས་རྗེ་བཞིན་པ།</string>
+
+ <string name="preference_category_general">སྤྱི་བཀོལ།</string>
+
+ <string name="preference_category_data_collection_use">གནས་ཚུལ་བསྡུས་རུབ་དང་བེད་སྤྱོད།</string>
+
+ <string name="preference_category_search">འཚོལ་བཤེར།</string>
+
+ <string name="preference_show_search_suggestions">འཚོལ་བཤེར་ནང་དོན་འོས་སྦྱོར་ལེན་པ།</string>
+ <string name="preference_show_search_suggestions_summary">%1$s ཡིས་ཁྱེད་འཇུག་པའི་འཚོལ་བྱའི་ནང་དོན་འཚོལ་བཤེར་དྲ་བ་གཏོང་ལེན་བྱེད།</string>
+
+ <string name="preference_search_engine_default">སྔོན་སྒྲིག</string>
+
+ <string name="preference_search_engine_label">འཚོལ་བཤེར།</string>
+
+ <string name="preference_state_on">སྤྱོད།</string>
+
+ <string name="preference_state_off">སྤྱོད་མཚམས་འཇོག</string>
+
+ <string name="preference_subitem_autocomplete">URL རང་སྒྲུབ།</string>
+
+ <string name="preference_switch_autocomplete_topsites">དྲ་ཚིགས་གཙུག་ཕོད་ཆེད་དུ།</string>
+
+ <string name="preference_switch_autocomplete_user_list">ཁྱོད་ཀྱིས་སྣོན་ཟིན་པའི་དྲ་ཚིགས།</string>
+
+ <string name="preference_category_autocomplete_manage_sites">དྲ་ཚིགས་དོ་དམ།</string>
+
+ <string name="preference_autocomplete_subitem_manage_sites">དྲ་ཚིགས་དོ་དམ།</string>
+
+ <string name="preference_autocomplete_action_add">&quot;+ རང་བཅོས་དྲ་ཚིཊ་ཁ་བྱང་སྣོན།&quot;</string>
+
+ <string name="preference_autocomplete_title_add">རང་བཅོས་དྲ་ཚིཊ་ཁ་བྱང་སྣོན།</string>
+
+ <string name="custom_autocomplete_quick_add">རང་བཅོས་དྲ་ཚིཊ་ཁ་བྱང་སྣོན།</string>
+
+ <string name="add_custom_autocomplete_label">སྦྲེལ་མཐུད་རང་སྒྲུབ་ལ་སྣོན་པ།</string>
+
+ <string name="preference_category_data_choices">གནས་ཚུལ་འདམ་ག།</string>
+
+ <string name="preference_autocomplete_title_remove">རང་བཅོས་དྲ་ཚིཊ་ཁ་བྱང་སྤོ་འབུད།</string>
+
+ <string name="preference_autocomplete_learn_more">དེ་བས་མང་།</string>
+
+ <string name="preference_autocomplete_custom_summary">རང་བཅོས་དྲ་ཚིཊ་ཁ་བྱང་སྣོན་པ་དང་སྟང་འཛིན་བྱེད་པ།</string>
+
+ <string name="preference_autocomplete_add_title">སྣོན་བྱའི་དྲ་ཚིཊ་ཁ་བྱང་།</string>
+
+ <string name="preference_autocomplete_add_hint">དྲ་ཚིཊ་ཁ་བྱང་འདིར་འཇུག་རོཊ།</string>
+
+ <string name="preference_autocomplete_add_example2">དཔེ་མཚོན། mozilla.org</string>
+
+ <string name="preference_autocomplete_add_example">དཔེ་མཚོན། example.com</string>
+
+ <string name="preference_autocomplete_add_confirmation">རང་བཅོས་དྲ་ཚིཊ་ཁ་བྱང་གསར་པ་སྣོན་ཟིན།</string>
+
+ <string name="preference_autocomplete_menu_remove">སྤོ་འབུད།</string>
+
+ <string name="preference_autocomplete_action_remove_content_description">སྤོ་འབུད།</string>
+
+ <string name="preference_autocomplete_add_error">ཁྱོད་ཀྱི་འཇུག་པའི་དྲ་ཚིཊ་ཁ་བྱང་དོ་དམ་བྱོས།</string>
+
+ <string name="preference_language">སྐད་ཡིག</string>
+ <string name="preference_language_systemdefault">རྒྱུད་ཁོངས་སྔོན་སྒྲིག</string>
+
+ <string name="preference_category_privacy">གསང་དོན།</string>
+ <string name="preference_privacy_block_ads">རྗེས་འདེད་གཏོང་མཁན་བཀག་ཟིན་པ།</string>
+
+ <string name="preference_security_biometric">མཛུབ་ཐེལ་བེད་སྤྱོད་བྱས་ཏེ་མཉེན་ཆས་ཁ་འབྱེད།</string>
+
+ <string name="preference_privacy_secure_mode">གསང་ཐབས།</string>
+
+ <string name="preference_category_security">ཉེན་སྲུང་།</string>
+
+ <string name="preference_category_performance">བྱེད་ལས།</string>
+ <string name="preference_performance_block_webfonts">དྲ་བའི་ཡིག་གཟུགས་བཀག་པ།</string>
+ <string name="preference_performance_block_webfonts_summary">འདྲ་གཟུགས་ཡང་ན་པར་རིས་མ་ཚང་བའི་དྲ་ཚིགས་ཐོན་སྲིད་པ།</string>
+
+ <string name="preference_performance_block_javascript">JavaScript བཀག་པ།</string>
+ <string name="preference_performance_block_javascript_summary">དྲ་ངོས་རྒྱབ་སྣོན་མགྱོགས་ཀྱང་རྒྱུན་ལྡན་མ་ཡིན་པའི་གནས་ཚུལ་ཐོན་སྲིད།</string>
+
+ <string name="preference_default_browser2">&quot; %1$s སྔོན་སྒྲིག་བཤར་ཆས་སུ་བཀོད་པ།&quot;</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+
+ <string name="preference_mozilla_telemetry_summary">དེ་བས་མང་།</string>
+
+ <string name="preference_privacy_notice">གསང་དོན་གསལ་བརྡ།</string>
+
+ <string name="preference_about">%1$s ངོ་སྤྲོད།</string>
+
+ <string name="preference_search_installed_search_engines">འཚོལ་བཤེར་སྒྲིག་འཇུག</string>
+
+ <string name="preference_search_restore">སྔོན་སྒྲིག་འཚོལ་བཤེར་རང་ལོག</string>
+
+ <string name="preference_search_add2">+ འཚོལ་བཤེར་དྲ་ངོས་གཞན་སྣོན།</string>
+ <string name="preference_search_remove_title">འཚོལ་བཤེར་སྤོ་འབུད།།</string>
+ <string name="preference_search_remove">སྤོ་འབུད།</string>
+
+ <string name="action_option_add_search_engine">འཚོལ་བཤེར་དྲ་ངོས་སྣོན།</string>
+
+ <string name="search_add_manually_name_hint">འཚོལ་བཤེར་དྲ་བའི་མིང་།</string>
+ <string name="search_add_manually_save">ཉར་གསོག</string>
+
+ <string name="search_add_manually_example">&quot;དཔེར་ན། example.com/search/?q=%s&quot;</string>
+
+ <string name="search_add_confirmation">འཚོལ་བཤེར་དྲ་ངོས་གསར་པ་སྣོན་ཟིན།</string>
+
+ <string name="search_add_error_empty_name">འཚོལ་བཤེར་དྲ་ངོས་མིང་འདིར་འཇུག་རོགས།</string>
+ <string name="search_add_error_duplicate_name">འཚོལ་བཤེར་སྒྲིག་འཇུག་ཟིན་པའི་མིང་རེད་འདུག</string>
+
+ <string name="search_add_error_empty_search">གནད་ཚིག་འཇུག་རོགས།</string>
+
+ <string name="content_description_clear_input">ནང་འཇུག་གཙང་བཟོ།</string>
+
+ <string name="content_description_dismiss_input">ཡང་བསྐྱར་མི་འཆར།</string>
+
+ <string name="content_description_erase">འཚོལ་རབས་འདོར་སུབ་བྱོས།</string>
+
+ <string name="content_description_lock">བདེ་འཇགས་འབྲེལ་བཐུད།</string>
+
+ <string name="accessibility_announcement_loading">རྒྱབ་སྣོན་བྱེད་བཞིན་ཡོད།</string>
+
+ <string name="accessibility_announcement_loading_finished">དྲ་ཚིགས་འཇུག་ཟིན།</string>
+
+ <string name="content_description_menu">གདམ་ཚན་དེ་བས་མང་།</string>
+
+ <string name="indicator_content_description_menu">གདམ་ཚན་མཐེབ་བཅུས་དེ་བས་མང་།</string>
+
+ <string name="content_description_forward">མདུན་ཕྱོགས་སྒྱུར།</string>
+
+ <string name="content_description_reload">དྲ་ཚིགས་བསྐྱར་འཇུག</string>
+
+ <string name="content_description_back">རྒྱབ་ཕྱོགས་སྒྱུར།</string>
+
+ <string name="content_description_stop">དྲ་ཚིགས་འཇུག་མཚམས་འཇོག</string>
+
+ <string name="content_description_customtab_exit">མཉེན་ཆས་སྔོན་མ་ཕྱིར་ལོག་བྱོས།</string>
+
+ <string name="content_description_trackers_blocked">རྗེས་འདེད་མཁན་བཀག་གྲངས།</string>
+
+ <string name="content_description_blocking_switch">རྗེས་འདེད་མཁན་འགོག</string>
+
+ <string name="your_rights">ཁྱེད་ཀྱི་བདག་དབང་།</string>
+
+ <string name="external_multiple_apps_matched_exit">གསང་རྒྱ་ནས་ཕྱིར་ཐོན་དགོས་སམ།</string>
+
+ <string name="download_snackbar_finished">%1$s ཟིན་པ།</string>
+
+ <string name="download_snackbar_open">ཁ་འབྱེད།</string>
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">ཞབས་ཞུ་འཕྲུལ་ཆས་མ་རྙེད།</string>
+
+
+
+
+
+
+
+
+
+
+
+ <string name="firstrun_defaultbrowser_title">སྒེར་དབང་ཆེ་རུ་གཏོང་།</string>
+ <string name="firstrun_defaultbrowser_text2">སྒེར་རྒྱ་རིམ་པ་རྗེས་མ་འཁྱེར་བ། ཁྱབ་བསྒྲགས་དང་རྗེས་འདེད་དེ་བཞིན་དྲ་ངོས་སྣོན་འགོག་གནད་ཆས་བཀག་འགོག་བྱེད།</string>
+
+ <string name="firstrun_search_title">ཁྱོད་ཀྱི་འཚོལ་བཤེར། ཁྱོད་ཀྱི་ལམ།</string>
+ <string name="firstrun_search_text">འཚོལ་བྱའི་ནང་དོན་གཞན་དག་ཡིན་ནམ། འཚོལ་བཤེར་གཞན་ཞིག་སྒྲིག་འགོད་ནས་ངོས་གཙོར་འཇོག་རོགས།</string>
+
+ <string name="firstrun_shortcut_title">མྱུར་ལམ་བརྙན་ཡོལ་གཙོ་བོ་ཐོག་འཇོག</string>
+
+ <string name="firstrun_privacy_title">གསང་དོན་ཁྱོད་ཀྱི་གོམས་གཤིས་བཟོས།</string>
+ <string name="firstrun_privacy_text">%1$s སྔོན་སྒྲིག་བཤར་ཆས་སུ་བཀོད་དེ་གསང་རྒྱ་ཡི་ཁེ་ཕན་ཡོད་ཚད་དྲ་ཚིགས་མཉེན་ཆས་གཞན་ནས་ཁ་འབྱེད་སྐབས་ལེན་པ།</string>
+
+ <string name="firstrun_close_button">ཆོག་ ཤེས་སོང་།</string>
+ <string name="firstrun_skip_button">མཆོང་པ།</string>
+ <string name="firstrun_next_button">རྗེས་མ།</string>
+
+ <string name="content_blocking_disabled">-</string>
+
+ <string name="dialog_addtohomescreen_action_add">སྣོན།</string>
+
+ <string name="dialog_addtohomescreen_action_cancel">འདོར་བ།</string>
+
+ <string name="notification_browsing_session_channel_name">སྒེར་དོན་གསང་རྒྱ་དུས་མཚམས།</string>
+
+ <string name="tabs_tray_action_erase">འཚོལ་རབས་འདོར་སུབ་བྱོས།</string>
+
+ <string name="download_firefox">Firefox ཕབ་ལེན།</string>
+
+ <string name="gv_prompt_username_hint">སྤྱོད་མཁན་གྱི་མིང་།</string>
+ <string name="gv_prompt_password_hint">གསང་གྲངས།</string>
+ <string name="gv_prompt_clear">གཙང་བཟོ།</string>
+
+ <string name="security_popup_secure_connection">བདེ་འཇགས་འབྲེལ་བཐུད།</string>
+ <string name="security_popup_insecure_connection">བདེ་འཇགས་འབྲེལ་བཐུད་མེད་པ།</string>
+ <string name="security_popup_security_verified">ར་སྤྲོད་མཁན། %1$s</string>
+
+ <string name="site_security_icon_content_description">དྲ་བའི་བདེ་འཇགས།</string>
+ <string name="preference_autocomplete_duplicate_url_error">དྲ་ཚིཊ་ཁ་བྱང་སྔོན་ནས་འདུག།</string>
+
+ <string name="find_in_page">ཤོག་ངོས་ནང་འཚོལ་བཤེར་བྱོས།</string>
+
+ <string name="find_in_page_input">ཤོག་ངོས་ནང་འཚོལ་བཤེར་བྱོས།</string>
+
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <string name="accessibility_find_in_page_result">&quot;%1$d ནང་ནས་ %1$d &quot;</string>
+
+ <string name="accessibility_next_result">ཤོག་ངོས་ཞོལ་མ།</string>
+ <string name="accessibility_previous_result">ཤོག་ངོས་གོང་མ།</string>
+
+
+
+ <string name="preference_performance_request_desktop_site">ཅོག་ངོས་དྲ་ཚིགས་རེ་ཞུ་བྱེད།</string>
+
+ <string name="custom_tab_copy_url_action">དྲ་ཚིཊ་ཁ་བྱང་བཤུས་ཟིན།</string>
+
+ <string name="preference_advanced_summary">གསར་སྤེལ་ལག་ཆ།</string>
+
+ <string name="preference_category_advanced">མཐོ་རིམ།</string>
+
+ <string name="biometric_auth_image_description">མཛུབ་ཐེལ་འདྲ་གཟུགས།</string>
+
+ <string name="biometric_auth_not_recognized_error">མཛུབ་ཐེལ་ངོས་འཛིན་མ་ཐུབ། བསྐྱར་དུ་ཚོད་ལྟ་བྱོས།</string>
+
+ <string name="biometric_auth_moved_too_quickly">མཛུག་མོ་འགུལ་སྐྱོད་མགྱོགས་དྲག་འདུག་ བསྐྱར་དུ་ཚོད་ལྟ་བྱོས།</string>
+
+ <string name="enable_search_suggestions_no">མིན།</string>
+
+ <string name="enable_search_suggestions_yes">རེད།</string>
+
+ <string name="no_suggestions_message">བཤེར་ཆས་འགའ་ཤས་ཀྱིས་འཚོལ་བཤེར་འབྲེལ་ཡོད་འོས་སྦྱོར་མ་ཐུབ།</string>
+
+ <string name="dismiss_no_suggestions_prompt_button">འདོར་བ།</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <string name="tip_disable_tracking_protection">དྲ་ཚིགས་རྒྱུན་གཏན་ལྟར་མི་འདུག་གམ།\n རྗེས་འདེད་སྲུང་སྐྱོབ་གསོད་དེ་བསྐྱར་ཞིག་བྱོས།</string>
+
+ <string name="tip_autocomplete_url">བེད་སྤྱོད་མང་ཤོས་བྱེད་པའི་དྲ་ཚིཊ་ཁ་བྱང་རད་གྲུབ། དྲ་ཚིཊ་ཁ་བྱང་ཐོག་མཛུབ་མོ་རྒྱུན་རིང་གནོན།</string>
+
+ <string name="preference_exceptions">རྒྱུན་འགལ།</string>
+ <string name="preference_exceptions_menu_remove">སྤོ་འབུད།</string>
+ <string name="preference_exceptions_remove_all_button_label">དྲ་ཚིགས་ཆ་ཚང་སྤོ་འབུད།།</string>
+
+ <string name="tab_crash_report_headline">དགོངས་དག ང་ཚོ་རེའུ་མིག་བཟོ་རྟགས་འདི་དང་གནད་དོན་འཕྲད་སོང་།</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-bs/strings.xml b/mobile/android/focus-android/app/src/main/res/values-bs/strings.xml
new file mode 100644
index 0000000000..fe9e8ad22f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-bs/strings.xml
@@ -0,0 +1,1102 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Otkaži</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">U redu</string>
+
+ <string name="action_save">Sačuvaj</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Tražite ili upišite adresu</string>
+
+ <string name="teaser">Automatsko privatno pretraživanje.\nPretražujte. Izbrišite. Ponovite.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Vaša historija pretraživanja je izbrisana.</string>
+ <string name="feedback_erase2">Historija pretraživanja je izbrisana</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Historija tab pretraživanja je izbrisana.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Traži %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Dijeli…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Prijavite problem sa stranicom</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Otvori u %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Otvori u…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Dodaj na početni ekran</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Dodaj u prečice</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Ukloni iz prečica</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Postavke</string>
+ <string name="menu_about">O aplikaciji</string>
+ <string name="menu_help">Pomoć</string>
+ <string name="menu_rights">Vaša prava</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Blokirani pratioci</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Isključivanje ovog može riješiti neke probleme na web stranici</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blokiranje sadržaja</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Isključi da popravite neke web stranice</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Pokreće ga %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Dijeli putem</string>
+
+ <string name="notification_erase_title_android_14">Izbrisati historiju pretraživanja?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Dodirnite ili izbrišite ovo obavještenje da sigurno izbrišete svoju historiju pretraživanja.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Dodirnite ili povucite ovo obavještenje da sigurno izbrišete svoju historiju pretraživanja.</string>
+
+ <string name="notification_erase_text">Izbrišite historiju pretraživanja</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Otvori</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Izbriši i otvori</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Izbriši</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Izbriši historiju pretraživanja</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Izbriši i otvori</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Izbriši i otvori %1$s</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Traži u Fokusu</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Traži u Klaru</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Traži u Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Traži u Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s daje ti kontrolu.</p>
+<p>Koristi ga kao privatni pretraživač:
+ <ul>
+ <li>traži i pretražuj direktno u aplikaciji</li>
+ <li>blokiraj programe za praćenje (ili ih omogući u postavkama)</li>
+ <li>izbriši sve kolačiće kao i historiju traženja i surfanja</li>
+ </ul>
+</p>
+<p>%1$s je kreirala Mozilla. Naša misija je njegovanje zdravog i otvorenog interneta.<br/>
+<a href="%2$s">Saznajte više</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privatnost i sigurnost</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Praćenje, kolačići, izbori podataka</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Postavi kao zadano, automatsko dovršavanje</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">O %1$s, pomoć</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Napredna zaštita od praćenja</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Web sadržaj</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Mijenjanje aplikacija</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Opće</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Zadani pretraživač, jezik</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Prikupljanje podataka i korištenje</string>
+
+ <string name="preference_category_search">Traži</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Dobijte prijedloge za pretraživanje</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s će poslati ono što unesete u adresnu traku vašem pretraživaču</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Izvorno</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Pretraživač</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Uključeno</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Isključeno</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Automatsko završavanje URL-a</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Za top stranice</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Omogućite da %s automatski završi preko 450 popularnih URL adresa u adresnoj traci.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Za stranice koje dodate</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Omogućite da %s automatski dovršava vaše omiljene URL-ove.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Upravljaj web stranicama</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Upravljaj web stranicama</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Dodaj prilagođeni URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Vaša lista za automatsko dovršavanje:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Dodaj URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Dodaj prilagođeni URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Dodaj prilagođeni URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Dodaj link za automatsko dovršavanje</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Kolačići i podaci stranice</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Izbori podataka</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Ukloni prilagođene URL-ove</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Saznajte više</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Dodajte i upravljajte prilagođenim automatski završenim URL-ovima.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL za dodavanje</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Zalijepite ili unesite URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Primjer: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Primjer: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Novi prilagođeni URL dodan.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Ukloni</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Ukloni</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Dvaput provjerite URL koji ste unijeli.</string>
+
+ <string name="preference_language">Jezik</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Izvorni sistemski</string>
+
+ <string name="preference_category_privacy">Privatnost</string>
+ <string name="preference_privacy_block_ads">Blokiraj reklame</string>
+ <string name="preference_privacy_block_ads_summary">Neke reklame prate posjete stranica, čak i kad ne klinete na reklame</string>
+ <string name="preference_privacy_block_analytics">Blokiraj analitičke pratioce</string>
+ <string name="preference_privacy_block_analytics_summary">Koristi se za sakupljanje, analiziranje i mjerenje aktivnosti kao što su tipkanje i skrolovanje</string>
+ <string name="preference_privacy_block_social">Blokiraj društvene pratioce</string>
+ <string name="preference_privacy_block_social_summary">Ugrađene u stranice kako bi pratile vaše posjete i da prikažu funkcije kao što su dugmići za dijeljenje</string>
+ <string name="preference_privacy_block_content">Blokiraj pratioce ostalog sadržaja</string>
+ <string name="preference_privacy_block_content_summary2">Omogućavanje može uticati loše na neke stranice</string>
+ <string name="preference_privacy_category_cookies">Blokiraj kolačiće</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ne, hvala</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Blokiraj samo kolačiće za praćenje trećih strana</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Blokiraj samo kolačiće trećih strana</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blokiraj kolačiće trećih strana</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Da, molim</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Koristite otisak prsta za otključavanje aplikacije</string>
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Otključajte pomoću otiska prsta ako ste dodali prečice ili kada je web stranica već otvorena u %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Tajni način</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Sakrij web stranice prilikom prebacivanja između aplikacija</string>
+
+ <string name="preference_category_security">Sigurnost</string>
+
+ <string name="preference_category_performance">Performanse</string>
+ <string name="preference_performance_block_webfonts">Blokiraj web fontove</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Može prouzrokovati nestajanje ikona ili slika</string>
+
+ <string name="preference_performance_block_javascript">Blokiraj JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Stranice će se možda učitavati brže, ali također se mogu ponašati neočekivano</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Učini %1$s glavnim pretraživačem</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Šalji podatke o korištenju</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Saznajte više</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozila nastoji prikupljati samo ono što trebamo da osiguramo i poboljšamo %1$s za sve.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Napomena o privatnosti</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Informacije o licenciranju</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Biblioteke koje koristimo</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS biblioteke</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">O %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Instalirani pretraživači</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Odaberi pretraživač</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Vrati izvorne pretraživače</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Dodaj novi pretraživač</string>
+ <string name="preference_search_remove_title">Ukloni pretraživače</string>
+ <string name="preference_search_remove">Ukloni</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Dodaj još jedan pretraživač</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Odaberite željeni pretraživač:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Dodajte pretraživač</string>
+
+ <string name="search_add_manually_name_hint">Ime pretraživača</string>
+ <string name="search_add_manually_string">Pretraži tekst za korištenje</string>
+ <string name="search_add_manually_save">Sačuvaj</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Primjer: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Novi pretraživač dodan.</string>
+
+ <string name="search_add_error_empty_name">Unesite naziv pretraživača</string>
+ <string name="search_add_error_duplicate_name">Instalirani pretraživač već koristi to ime.</string>
+
+ <string name="search_add_error_empty_search">Unesite string za pretragu</string>
+
+ <string name="search_add_error_format">Provjerite da traženi string odgovara formatu primjera</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Očisti unos</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Odbaci</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Izbriši historiju pretraživanja</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Otvorenih tabova: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Sigurna veza</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Učitavanje</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Web stranica učitana</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Više opcija</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Dugme za više opcija</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Idite naprijed</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Ponovo učitaj web stranicu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Idite nazad</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Zaustavi učitavanje web stranice</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Povratak na raniju aplikaciju</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Broj blokiranih pratilaca</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blokiraj pratioce</string>
+
+ <string name="your_rights">Vaša prava</string>
+
+ <string name="external_app_prompt_title">Otvori vezu u drugoj aplikaciji</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Možete napustiti %1$s da otvorite ovu vezu u %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Pronađite aplikaciju koja može otvoriti vezu</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Nijedna od aplikacija na vašem uređaju nije u mogućnosti otvoriti vezu. Možete napustiti %1$s da pretražite %2$s za aplikaciju koja može.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Izaći iz privatnog pretraživanja?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s završeno</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Otvori</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Dodato u prečice!</string>
+
+ <string name="error_hostLookup_title">Server nije pronađen</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Zatvori</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Dobrodošli u %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Brz. Privatan. Bez ometanja.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Započnite</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s nije kao drugi pretraživači</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Čistimo vašu historiju kada zatvorite aplikaciju radi dodatne privatnosti.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Neka %1$s bude zadan da zaštitite svoje podatke sa svakim linkom koji otvorite.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Postavi kao zadani pretraživač</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Preskoči</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Osnažite vašu privatnost</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Unaprijedite privatno pretraživanje. Blokirajte reklame i drugi sadržaj koji vas mogu pratiti putem stranica i ubrzajte učitavanje stranica.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Tražite, na svoj način</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Tražite nešto drugačije? Izaberite drugi zadani pretraživač u postavkama.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Dodajte prečice na vaš početni zaslon</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Vratite se brzo na vaše omiljene stranice u %1$s. Samo izaberite \&quot;Dodaj na početni zaslon\&quot; iz %1$s menija.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Učinite privatnost navikom</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Postavite %1$s kao vaš glavni pretraživač i dobijte koristi od privatnog pretraživanja kada otvarate web stranice iz drugih aplikacija.</string>
+
+ <string name="firstrun_close_button">U redu, razumijem!</string>
+ <string name="firstrun_skip_button">Preskoči</string>
+ <string name="firstrun_next_button">Sljedeće</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Dodaj</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">DA</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Otkaži</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NE</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Prečica će se otvoriti sa onemogućenom poboljšanom zaštitom od praćenja</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sesija za privatno pretraživanje</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Obaviještenja vam omogućavaju da izbrišete vašu %1$s sesiju jednim dodirom. Ne morate da otvorite aplikaciju ili da provjerite šta se izvršava u vašem pretraživaču.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Izbriši historiju pretraživanja</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Preuzmite Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s je besplatan softver i otvorenog koda napravljen od strane Mozille i drugih doprinosilaca.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s vam je omogućen pod uslovima licence <a href="%2$s">Mozilla Public License</a> i drugih licenci otvorenog kôda.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Ne dodjeljuju vam se nikakva prava ili licence za žigove Mozilla Foundation ili bilo koje strane, uključujući imena ili logotipe Mozilla, Firefox ili %1$s. Dodatne informacije možete pronaći <a href="%2$s">ovdje</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Dodatni izvorni kod za %1$s je dostupan pod raznim drugim besplatnim i otvorenim <a href="%2$s">licencama</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s također koristi liste blokiranih koje pruža Disconnect, Inc. kao odvojene i nezavisne radove pod <a href="%2$s">GNU General Public License v3</a>, i dostupnima <a href="%3$s">ovdje</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Korisničko ime</string>
+ <string name="gv_prompt_password_hint">Lozinka</string>
+ <string name="gv_prompt_clear">Očisti</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Sigurna veza</string>
+ <string name="security_popup_insecure_connection">Nesigurna veza</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Provjerio: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Sigurnost stranice</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL već postoji</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Pronađi na stranici</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Pronađi na stranici</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d od %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Pronađi sljedeći rezultat</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Pronađi prethodni rezultat</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Odbaci pronalazak na stranici</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Zahtjevaj desktop stranicu</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Desktop stranica</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL je kopiran</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Razvojni alati</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Otvori linkove u aplikacijama</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Napredno</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Dozvole stranica</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Smanjivanje pojavljivanja dijaloga kolačića</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Uključeno</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Isključeno</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Smanjivanje pojavljivanja dijaloga kolačića</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Vidite manje banera automatskim odbijanjem zahtjeva za kolačićima, kada je to moguće.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Smanjivanje pojavljivanja dijaloga kolačića</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Uključeno za ovu stranicu</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Stranica trenutno nije podržana</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Isključeno za ovu stranicu</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Smanjivanje pojavljivanja dijaloga kolačića</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Isključeno za ovu stranicu</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Uključeno za ovu stranicu</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Uključiti smanjenje dijaloga kolačića za %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Isključiti smanjenje dijaloga kolačića za %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s će očistiti kolačiće ove stranice i osvježiti stranicu. Čišćenje svih kolačića može vas odjaviti ili isprazniti kolica za kupovinu.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s može pokušati automatski odbiti zahtjeve za kolačiće.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Ova stranica trenutno nije podržana od strane Smanjivanja pojavljivanja dijaloga kolačića. Želite li zatražiti od našeg tima da pregleda ovu web stranicu i doda podršku u budućnosti?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Otkaži</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Zatražite podršku</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Zahtjev za podršku stranice je poslat.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Zahtjev za podršku stranice je poslat.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s pokušava odbiti zahtjeve za kolačiće da odbaci dosadne banere za kolačiće.\n\nUpravljajte postavkama banera kolačića u %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">postavke</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automatska reprodukcija</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Dozvoli na sljedeći način:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Idi na Android postavke</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Dodirni <b>Dozvole</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Idi na Postavke</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Promijeni <b>%1$s</b> na UKLJUČENO]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Lokacija</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Obavještenje</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-kontrolisani sadržaj</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Pitaj za dozvolu</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blokirano</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Dozvoljeno</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blokirao Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Dozvoli audio i video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blokiraj samo audio</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Preporučeno</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blokiraj audio i video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studije</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox može s vremena na vrijeme instalirati i pokrenuti studije.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Saznajte više</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Aplikacija će se zatvoriti radi primjene promjena</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Ukloni</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktivno</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Završeno</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Daljinsko otklanjanje grešaka putem USB/Wi-Fi veze</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Otključaj</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Potvrdite korištenjem otiska prsta</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Možete koristiti otisak prsta da nastavite trenutnu sesiju aplikacije.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Otvorite link u novoj sesiji</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Ikona otiska prsta</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Otisak prsta nije prepoznat. Pokušaj ponovo.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Prst se kretao prebrzo. Pokušaj ponovo.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Prikaži prijedloge za pretraživanje?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> Da dobijete prijedloge, %1$s treba da pošalje pretraživaču ono što unesete u adresnu traku.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ne</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Da</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Neki pretraživači ne mogu prikazati prijedloge.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Odbaci</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Stranica se ponaša neočekivano?\n
+ Pokušajte isključiti zaštitu od praćenja</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Omogući pristup često korištenim stranicama jednim dodirom%1$s Meni > Dodaj na početni ekran]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Otvorite svaki link u %1$su\n
+ Postavite %1$s kao zadani pretraživač
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Automatsko dovršavanje URL-ova za web stranice koje najčešće koristite\n
+ Dugo pritisnite bilo koji URL u adresnoj traci
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Otvorite link u novom tabu\n
+ Dugo pritisnite bilo koji link na stranici
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Isključite savjete na početnom ekranu</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Otvoren novi tab</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Promijeni</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Ulazim u režim cijelog ekrana</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Odmah se prebacite na link u novom tabu</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Blokirajte potencijalno opasne i varljive stranice</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blokirajte prijavljene obmanjujuće i napadne stranice, web stranice sa zlonamjernim softverom i web stranice neželjenog softvera.</string>
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Način rada samo za HTTPS</string>
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Automatski pokušava da se poveže na stranice koristeći HTTPS protokol za šifrovanje radi povećane sigurnosti.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Izuzeci</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Onemogućili ste blokiranje sadržaja za ove web stranice.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Ukloni</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Ukloni sve web stranice</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blokiraj kolačiće</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Želite li blokirati kolačiće?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Tab se srušio</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Žao nam je. Imamo problem s ovim tabom.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Kao privatni pretraživač, nikada ne pohranjujemo i ne možemo vratiti ovaj tab.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Zatvori tab</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Pošalji izvještaj o rušenju Mozilla-i</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Programi za praćenje blokirani od %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Sadržaj</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Oglašavanje</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Društvene mreže</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analitika</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Napredna zaštita od praćenja</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Zaštite za ovu stranicu su ISKLJUČENE</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Zaštite za ovu stranicu su UKLJUČENE</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Veza je sigurna</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Veza nije sigurna</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Pratioci i skripte za blokiranje</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Idi nazad</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Ukloni</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Preimenuj</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Preimenuj</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Naziv prečice</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Sačuvane i podijeljene slike &lt;b&gt;neće biti&lt;/b&gt; izbrisane kada izbrišete %1$s historiju</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Svijetla</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Tamna</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Postavljeno u postavkama za štednju baterije</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Slijedi temu uređaja</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Ova stranica ne podržava HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s pokušava koristiti HTTPS vezu kad god je to moguće radi veće sigurnosti.
+ <a href="%2$s">Saznajte više</a> <br/><br/>
+ Promijenite ovu postavku u Postavke > Privatnost i sigurnost > Sigurnost.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Veza nije sigurna</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Ovo može biti problem s konfiguracijom servera, ili može biti da neko pokušava imitirati server. <br/><br/>
+ Ako ste se u prošlosti uspješno povezali s ovim serverom, greška može biti privremena.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Neko se možda pokušava lažno predstavljati za web stranicu i nastavak bi mogao biti rizičan.</label>
+ <br><br>
+ <label>%1$s nema povjerenja u <b>%2$s</b> jer je njegov izdavalac certifikata nepoznat, certifikat je samopotpisan ili server ne šalje ispravne posredničke certifikate.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Zatvori tab</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Imamo ih! Spriječili smo ovu stranicu da vas špijunira. Dodirnite štit bilo kada da vidite šta blokiramo.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Zatvori iskočni prozor</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Zaštićeni ste!</string>
+
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Ove zadane postavke nude snažnu zaštitu. Ali lahko je podesiti postavke kako bi zadovoljile vaše specifične potrebe.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Odbaci</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Dodirnite ovdje da sve bacite u smeće — historiju, kolačiće, sve — i počnete ispočetka u novom tabu.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Zatvori</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Programčić za pretraživanje</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Historija pretraživanja je izbrisana! 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Započnite svoju privatnu sesiju pretraživanja, a mi ćemo blokirati programe za praćenje i druge loše stvari dok idete.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Prepustit ćemo vas vašem privatnom pretraživanju, ali sljedeći put započnite brže s programčićem %1$s na početnom ekranu.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Dodajte programčić na početni ekran</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Programčić je dodat na početni ekran</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ca/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ca/strings.xml
new file mode 100644
index 0000000000..5485257b07
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ca/strings.xml
@@ -0,0 +1,1095 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Cancel·la</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">D\'acord</string>
+
+ <string name="action_save">Desa</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Escriviu una cerca o adreça</string>
+
+ <string name="teaser">Navegació privada automàtica.\nNavegueu. Esborreu. Torneu-hi.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">S\'ha esborrat l\'historial de navegació.</string>
+ <string name="feedback_erase2">S’ha esborrat l’historial de navegació</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">S\'ha esborrat l\'historial de navegació de la pestanya.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Cerca %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Comparteix…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Informa d\'un problema amb el lloc</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Obre amb el %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Obre amb…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Afegeix a pantalla d\'inici</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Afegeix a les dreceres</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Elimina de les dreceres</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Paràmetres</string>
+ <string name="menu_about">Quant a</string>
+ <string name="menu_help">Ajuda</string>
+ <string name="menu_rights">Els vostres drets</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Elements blocats</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Si es desactiva, pot ser que s\'arreglin problemes amb alguns llocs</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Bloqueig de contingut</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Desactiveu-ho per arreglar problemes amb alguns llocs</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Funciona amb el %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Comparteix mitjançant</string>
+
+ <string name="notification_erase_title_android_14">Voleu esborrar l\'historial de navegació?</string>
+ <string name="notification_erase_text_android_14">Toqueu o esborreu aquesta notificació per a esborrar de manera segura l\'historial de navegació.</string>
+
+ <string name="notification_erase_text">Esborra l\'historial de navegació</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Obre</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Esborra i obre</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Esborra</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Esborra l\'historial de navegació</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Esborra i obre</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Esborra i obre el %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Cerca en el Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Cerca en el Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Cerca en el Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Cerca en el Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>El %1$s us dóna el control.</p>
+<p>Com a navegador privat, us permet:
+ <ul>
+ <li>Cercar i navegar directament des de l’aplicació</li>
+ <li>Blocar els elements de seguiment (o canviar els paràmetres per permetre’ls)</li>
+ <li>Esborrar les galetes i l’historial de cerques i de navegació</li>
+ </ul>
+</p>
+<p>El %1$s està creat per Mozilla. La nostra missió és fomentar un Internet obert i saludable.<br/>
+<a href="%2$s">Més informació</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privadesa i seguretat</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Seguiment, galetes, elecció de dades</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Valor per defecte, emplenament automàtic</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Quant al %1$s, ajuda</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Protecció contra el seguiment millorada</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Contingut web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Canvi d\'aplicacions</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">General</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Navegador per defecte, llengua</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Ús i recollida de dades</string>
+
+ <string name="preference_category_search">Cerca</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Mostra suggeriments de cerca</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">El %1$s enviarà al motor de cerca tot allò que escriviu a la barra d\'adreces</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Per defecte</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Motor de cerca</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Activat</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Desactivat</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Emplenament automàtic d\'URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Per als llocs principals</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Activeu-lo per fer que el %s empleni automàticament més de 450 URL populars a la barra d’adreces.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Per als llocs que afegiu</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Activeu-ho per fer que el %s empleni automàticament els vostres URL preferits.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Gestiona els llocs</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Gestiona els llocs</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Afegeix un URL personalitzat</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">La vostra llista d’emplenament automàtic:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Afegeix un URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">URL personalitzat nou</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Afegeix URL personalitzat</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Afegeix l\'enllaç a l\'emplenament automàtic</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Galetes i dades dels llocs</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Elecció de dades</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Elimina URL personalitzats</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Més informació</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Afegiu i gestioneu els URL d\'emplenament automàtic personalitzats.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL per afegir</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Enganxeu o escriviu un URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Exemple: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Exemple: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">S\'ha afegit un URL personalitzat nou.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Elimina</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Elimina</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Reviseu l\'URL que heu introduït.</string>
+
+ <string name="preference_language">Llengua</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Valor per defecte del sistema</string>
+
+ <string name="preference_category_privacy">Privadesa</string>
+ <string name="preference_privacy_block_ads">Bloca els elements de seguiment de publicitat</string>
+ <string name="preference_privacy_block_ads_summary">Alguns anuncis fan el seguiment de les visites als llocs, fins i tot si no feu clic als anuncis</string>
+ <string name="preference_privacy_block_analytics">Bloca els elements de seguiment d\'anàlisi</string>
+ <string name="preference_privacy_block_analytics_summary">S\'utilitzen per recollir, analitzar i mesurar activitats com ara els tocs i el desplaçament</string>
+ <string name="preference_privacy_block_social">Bloca els elements de seguiment social</string>
+ <string name="preference_privacy_block_social_summary">Està incrustat en els llocs per fer el seguiment de les vostres visites i per mostrar alguns elements com els botons de compartició</string>
+ <string name="preference_privacy_block_content">Bloca altres elements de seguiment de contingut</string>
+ <string name="preference_privacy_block_content_summary2">Si s\'activa, algunes pàgines podrien comportar-se de forma inesperada</string>
+ <string name="preference_privacy_category_cookies">Bloca les galetes</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">No, gràcies</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Bloca només les galetes de seguiment de tercers</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Bloca només les galetes de tercers</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Bloca les galetes entre llocs</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Sí</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Utilitza l\'empremta digital per desblocar l\'aplicació</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Desbloqueu amb l’empremta digital si heu afegit dreceres o quan un lloc web ja estigui obert en el %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Invisible</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Amaga les pàgines web en canviar d\'aplicacions i bloca les captures de pantalles.</string>
+
+ <string name="preference_category_security">Seguretat</string>
+
+ <string name="preference_category_performance">Rendiment</string>
+ <string name="preference_performance_block_webfonts">Bloca tipus de lletra web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Pot fer que no es vegin algunes icones o imatges</string>
+
+ <string name="preference_performance_block_javascript">Bloca el JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Les pàgines es poden carregar més ràpid, però també poden comportar-se de forma inesperada</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Fes que el %1$s sigui el navegador per defecte</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Envia dades d\'ús</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Més informació</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla s\'esforça per recollir només les dades necessàries per oferir i millorar el %1$s per a tothom.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Avís de privadesa</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Informació de la llicència</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Biblioteques que utilitzem</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Biblioteques de codi obert</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Quant al %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Motors de cerca instal·lats</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Trieu un motor de cerca</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Restaura els motors de cerca per defecte</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Afegeix un altre motor de cerca</string>
+ <string name="preference_search_remove_title">Elimina motors de cerca</string>
+ <string name="preference_search_remove">Elimina</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Afegeix un altre motor de cerca</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Trieu el motor de cerca que preferiu:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Afegeix un motor de cerca</string>
+
+ <string name="search_add_manually_name_hint">Nom del motor de cerca</string>
+ <string name="search_add_manually_string">Cadena de cerca que s\'utilitzarà</string>
+ <string name="search_add_manually_save">Desa</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Exemple: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">S\'ha afegit un motor de cerca nou.</string>
+
+ <string name="search_add_error_empty_name">Escriviu el nom del motor de cerca</string>
+ <string name="search_add_error_duplicate_name">Ja hi ha un motor de cerca instal·lat amb aquest nom.</string>
+
+ <string name="search_add_error_empty_search">Escriviu una cadena de cerca</string>
+
+ <string name="search_add_error_format">Comproveu que la cadena de cerca coincideixi amb el format d\'exemple</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Esborra l\'entrada</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Descarta</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Esborra l\'historial de navegació</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Pestanyes obertes: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Connexió segura</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">S\'està carregant…</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">S\'ha carregat el lloc web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Més opcions</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Botó de més opcions</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Navega cap endavant</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Actualitza el lloc web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Vés enrere</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Atura la càrrega del lloc web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Torna a l\'aplicació anterior</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Nombre d\'elements blocats</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Bloca els elements de seguiment</string>
+
+ <string name="your_rights">Els vostres drets</string>
+
+ <string name="external_app_prompt_title">Obre l\'enllaç en una altra aplicació</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Podeu sortir del %1$s per obrir aquest enllaç amb el %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Cerca una aplicació que pugui obrir aquest enllaç</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">No hi ha cap aplicació en el dispositiu que pugui obrir aquest enllaç. Podeu sortir del %1$s per cercar al %2$s una aplicació que pugui obrir-lo.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Voleu sortir de la navegació privada?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s ha acabat</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Obre</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">S’ha afegit a les dreceres</string>
+
+ <string name="error_hostLookup_title">No s\'ha trobat el servidor</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Tanca</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Us donem la benvinguda al %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Ràpid. Privat. Sense distraccions.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Primers passos</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">El %1$s no és com els altres navegadors</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Esborrem el vostre historial quan tanqueu l’aplicació per garantir la privadesa.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Feu que el %1$s sigui el navegador per defecte i protegiu les vostres dades cada vegada que obriu un enllaç.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Defineix com a navegador per defecte</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Omet</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Potencieu la privadesa</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Porteu la navegació privada a un altre nivell. Bloqueu anuncis i altre contingut que us fan el seguiment i alenteixen la càrrega de les pàgines.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Cerqueu com vulgueu</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Busqueu una altra cosa? Trieu un altre motor de cerca per defecte als Paràmetres.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Afegiu dreceres a la pantalla d\'inici</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Retorneu ràpidament als vostres llocs preferits amb el %1$s. Trieu «Afegeix a pantalla d\'inici» en el menú del %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Feu de la privadesa un hàbit</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Definiu el %1$s com a navegador per defecte i gaudiu de navegació privada en obrir pàgines web des d\'altres aplicacions.</string>
+
+ <string name="firstrun_close_button">Entesos</string>
+ <string name="firstrun_skip_button">Omet</string>
+ <string name="firstrun_next_button">Següent</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Afegeix</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">SÍ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Cancel·la</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NO</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">La drecera s’obrirà amb la protecció contra el seguiment millorada desactivada</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sessió de navegació privada</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Les notificacions permeten esborrar la sessió del %1$s amb un sol toc. No cal ni obrir l\'aplicació ni mostrar el contingut del navegador.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Esborra l\'historial de navegació</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Baixa el Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[El %1$s és programari lliure i de codi obert creat per Mozilla i altres col·laboradors.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[El %1$s és a la vostra disposició sota els termes de la <a href="%2$s">Mozilla Public License (Llicència Pública de Mozilla)</a> i altres llicències lliures.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[No se us atorga cap dret ni llicència sobre les marques registrades de la Fundació Mozilla, o de cap altra part, inclosos els noms o els logotips de Mozilla, Firefox o %1$s. Podeu trobar més informació <a href="%2$s">aquí</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Hi ha codi font addicional del %1$s que està disponible sota diverses altres <a href="%2$s">llicències</a> lliures i de codi obert.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[El %1$s també utilitza llistes de bloquejos proporcionades per Disconnect, Inc. que es mantenen de forma independent i separada sota la <a href="%2$s">Llicència Pública General de GNU v3</a> i que estan disponibles <a href="%3$s">aquí</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nom d\'usuari</string>
+ <string name="gv_prompt_password_hint">Contrasenya</string>
+ <string name="gv_prompt_clear">Esborra</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Connexió segura</string>
+ <string name="security_popup_insecure_connection">Connexió insegura</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verificat per: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Seguretat del lloc</string>
+ <string name="preference_autocomplete_duplicate_url_error">L\'URL ja existeix</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Cerca a la pàgina</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Cerca a la pàgina</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d de %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Cerca el següent resultat</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Cerca el resultat anterior</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Tanca la cerca</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Mostra el lloc d\'escriptori</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Lloc d’escriptori</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">S\'ha copiat l\'URL</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Eines per a desenvolupadors</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Obre els enllaços en les aplicacions</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avançat</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Permisos dels llocs</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reducció de bàners de galetes</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Activada</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Desactivada</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reducció de bàners de galetes</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Vegeu menys bàners rebutjant automàticament les sol·licituds de galetes, quan sigui possible.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reducció de bàners de galetes</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Activada en aquest lloc</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Aquest lloc no és compatible ara per ara</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Desactivada en aquest lloc</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reducció de bàners de galetes</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Desactivada en aquest lloc</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Activada en aquest lloc</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Voleu activar la reducció de bàners de galetes per a %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Voleu desactivar la reducció de bàners de galetes per a %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">El %1$s esborrarà les galetes d’aquest lloc i actualitzarà la pàgina. En esborrar totes les galetes, pot ser que se us tanquin les sessions o que se us buidin els carros de la compra.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">El %1$s pot intentar rebutjar automàticament les sol·licituds de galetes.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Actualment, aquest lloc web no és compatible amb la Reducció de bàners de galetes. Voleu que el nostre equip ho revisi i el faci compatible en el futur?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Cancel·la</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Sol·licita que sigui compatible</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">S’ha enviat la sol·licitud per a fer que aquest lloc sigui compatible.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">S’ha enviat la sol·licitud per a fer que aquest lloc sigui compatible.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">El %1$s intenta rebutjar les sol·licituds de galetes per tancar els molestos bàners de galetes.\n\nGestioneu les preferències dels bàners de galetes en els %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">paràmetres</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Reproducció automàtica</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Per a permetre-ho:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Aneu a la configuració de l’Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Toqueu <b>Permisos</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Ves als paràmetres</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Activeu <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Càmera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Micròfon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Ubicació</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notificacions</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Contingut controlat per DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Demana-m’ho</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blocat</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Permès</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blocat per l’Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Permet àudio i vídeo</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Bloca només àudio</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Recomanat</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Bloca àudio i vídeo</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Estudis</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">El Firefox pot instal·lar i executar estudis de tant en tant.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Més informació</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">L’aplicació es tancarà per aplicar els canvis</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Elimina</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Actius</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Completats</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Depuració remota per USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Desbloca</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Confirmeu mitjançant l’empremta digital</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Podeu utilitzar l’empremta digital per continuar la sessió actual de l’aplicació.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Obre l’enllaç en una sessió nova</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Icona d\'empremta digital</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">No s\'ha reconegut l\'empremta digital. Torneu-ho a provar.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">El dit s\'ha mogut massa ràpid. Torneu-ho a provar.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Voleu que es mostrin suggeriments de cerca?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Per veure els suggeriments, el %1$s ha d’enviar al motor de cerca tot allò que escriviu a la barra d’adreces.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">No</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Sí</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">No tots els motors de cerca poden mostrar suggeriments.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Tanca</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">El lloc té un comportament inesperat?\n Proveu de desactivar la protecció contra el seguiment</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Accediu amb un sol toc als llocs que més utilitzeu%1$s Menú > Afegeix a pantalla d\'inici]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Obriu tots els enllaços amb el %1$s\n Definiu el %1$s com a navegador per defecte</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Emplenament automàtic dels URL dels llocs que més utilitzeu\n Manteniu premut qualsevol URL de la barra d\'adreces</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Obriu un enllaç en una pestanya nova\n Manteniu premut qualsevol enllaç de la pàgina</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Desactiva els consells de la pantalla d\'inici</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">S\'ha obert una pestanya nova</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Vés-hi</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Esteu en mode de pantalla completa</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">En obrir un enllaç en una pestanya nova, vés-hi immediatament</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Bloca els llocs potencialment perillosos i maliciosos</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Bloca els llocs atacants i els llocs amb programari maliciós i indesitjable.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Mode només HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Intenta connectar-se als llocs mitjançant el protocol de xifratge HTTPS automàticament per millorar la seguretat.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Excepcions</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Heu desactivat el bloqueig de contingut en aquests llocs web.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Elimina</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Elimina tots els llocs web</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Bloca les galetes</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Voleu blocar les galetes?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">La pestanya ha fallat</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">S\'ha produït un problema amb aquesta pestanya.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Com a navegador privat, aquesta pestanya no s\'ha desat i, per tant, no es pot restaurar.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Tanca la pestanya</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Envia un informe de fallada a Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Elements de seguiment blocats des del %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Contingut</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Anuncis</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Xarxes socials</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Anàlisis</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Protecció contra el seguiment millorada</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">S’han desactivat les proteccions per a aquest lloc</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">S’han activat les proteccions per a aquest lloc</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">La connexió és segura</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">La connexió no és segura</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Elements de seguiment i scripts que es blocaran</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Vés enrere</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Elimina</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Reanomena</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Reanomena</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nom de la drecera</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Les imatges que deseu i compartiu &lt;b&gt;no s’eliminaran&lt;/b&gt; quan esborreu l’historial del %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Clar</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Fosc</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Definit per l’estalvi de bateria</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Segons el tema del dispositiu</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Aquest lloc no admet HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[El %1$s intenta utilitzar una connexió HTTPS sempre que sigui possible per a més seguretat.
+ <a href="%2$s">Més informació</a> <br/><br/>
+ Podeu canviar aquest paràmetre a Paràmetres > Privadesa i seguretat > Seguretat.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">La connexió no és segura</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Això podria ser un problema amb la configuració del servidor, o bé podria ser que algú estigués intentant fer-se passar pel servidor.<br/><br/>
+ Si us hi heu connectat sense cap problema alguna altra vegada, l’error podria ser temporal.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>És possible que algú estigui intentant suplantar el lloc i podria ser arriscat continuar.</label>
+ <br><br>
+ <label>El %1$s no confia en <b>%2$s</b> perquè l’emissor del seu certificat és desconegut, el certificat està signat per ell mateix o el servidor no envia els certificats intermedis correctes.</label>]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Tanca la pestanya</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Enxampats! Hem impedit que aquest lloc us espiï. Toqueu l’escut en qualsevol moment per veure què hem blocat.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Tanca la finestra emergent</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Esteu protegit!</string>
+
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Aquest paràmetre per defecte ofereix una protecció sòlida. Però és fàcil ajustar els paràmetres per satisfer les vostres necessitats específiques.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Descarta</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Toqueu aquí per eliminar-ho tot (historial, galetes, tot!) i tornar a començar en una pestanya nova.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Tanca</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Giny de cerca</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">S’ha esborrat l’historial de navegació! 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Inicieu la vostra sessió de navegació privada i blocarem els elements de seguiment i altres males herbes a mesura que navegueu.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Us deixem en la vostra navegació privada, però si la pròxima vegada voleu anar més de pressa, afegiu el giny del %1$s a la pantalla d’inici.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Afegeix el giny a la pantalla d’inici</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">S’ha afegit el giny a la pantalla d’inici</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-cak/strings.xml b/mobile/android/focus-android/app/src/main/res/values-cak/strings.xml
new file mode 100644
index 0000000000..b55f4732d7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-cak/strings.xml
@@ -0,0 +1,1030 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Tiq\'at</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ÜTZ</string>
+
+ <string name="action_save">Tiyak</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Tikanöx o ketz\'ib\'äx ri taq ochochib\'äl</string>
+
+ <string name="teaser">Ruyonil ichinan okem pa k\'amaya\'l.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Ri runatab\'al okem pa k\'amaya\'l xyuj el.</string>
+
+ <string name="feedback_erase2">Josq\'in kinatab\'al okem pa k\'amaya\'l</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Xyuj ri ruwi\' runatab\'al okem pa k\'amaya\'l.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Tikanöx %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Tikomonïx…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Tiya\' Rutzijol ri Ruk\'ayewal Ruxaq K\'amaya\'l</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Tijaq pa %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Tijaq pa…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Titz\'aqatisäx pa ri Nïm tzuwäch</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Titz\'aqatisäx choj okem</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Tiyuj pa taq choj okem</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Nuk’ulem</string>
+ <string name="menu_about">Chi rij</string>
+ <string name="menu_help">To\'ïk</string>
+ <string name="menu_rights">Taq Ach\'ojib\'al</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Eq\'aton ojqanela\'</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">We nichup re re\' yerusöl jub\'a\' jujun taq ruk\'ayewal ruxaq</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Ruq\'atik Rupam</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Tachupu\' richin nachojmirisaj jujun ruxaq</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">B\'anon ruma %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Tikomonïx b\'ey</string>
+
+ <string name="notification_erase_title_android_14">La niyuj runatab\'al okem pa k\'amaya\'l?</string>
+
+ <string name="notification_erase_text">Tiyuj runatab\'al okem pa k\'amaya\'l</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Tijaq</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Tiyuj chuqa\' Tijaq</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Tiyuj</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Tiyuj runatab\'al okem pa k\'amaya\'l</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Tiyuj &amp; tijaq</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Tiyuj chuqa\' tijaq %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Tikanöx pa Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Tikanöx pa Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Tikanöx pa Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Tikanöx pa Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s nuya\' ronojel pan aq\'a\'.</p>
+<p>Tawokisaj achi\'el jun ichinan okik\'amaya\'l:
+ <ul>
+ <li>Tikanöx chuqa\' tokisäx ri chokoy</li>
+ <li>Keq\'at ojqanela\' (o kek\'ex taq cha\'oj richin niya\' q\'ij chi ke ri ojqanela\')</li>
+ <li>Tiyuj richin yeyuj el taq kaxlawey chuqa\' runatab\'al kanoxïk chuqa\' okem pa k\'amaya\'l</li>
+ </ul>
+</p>
+<p>%1$s Xsamajin ruma ri Mozilla. Ri taqel qataqanem ja ri niqayäk qak\'u\'x richin jun jaqäl chuqa\' raxinäq k\'amaya\'l.<br/>
+<a href="%2$s">Tetamäx ch\'aqa\' chik</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Ichinanem &amp; Jikomal</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Ojqanem, taq kaxlanwäy, kicha\'oj taq tzij</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Tijikib\'äx chi k\'o wi, ruyonil titz\'aqatisäx</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Chi rij %1$s, to\'ïk</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Utzirisan Chajinïk chuwäch Ojqanem</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Ajk\'amaya\'l Rupam</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Jaloj chi kikojol Chokoy</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Chijun</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Okik\'amaya\'l e k\'o wi, ch\'ab\'äl</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Kimolik Tzij &amp; Okisaxïk</string>
+
+ <string name="preference_category_search">Tikanöx</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Kechilab\'ëx ri yekanöx</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s xtutäq ri xtatz\'ib\'aj pa ri rukajtz\'ik ochochib\'äl chi re ri akanob\'al</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">K\'o wi</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Rusamajel kanob\'äl</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Titzij</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Tichup</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL Titz\'aqatisäx ruyon</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Kichin Ütz taq ajk\'amaya\'l ruxaq</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Titzij richin nik\'ul %1$s ruyonil nunojisaj naqaj chi re 450 ajowan taq URLs pa kikajtz\'ik ochochib\'äl.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Kichin ri taq Ruxaq Ye\'atz\'aqatisaj</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Titzij richin chi ri %s nunojisaj pa ruyonil ri taq URLs ye\'awajo\'.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Kenuk\'samajïx taq ruxaq</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Kenuk\'samajïx taq ruxaq</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Titz\'aqatisäx ichinan URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Ri kicholb\'al kiyon enojisan:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Titz\'aqatisäx URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Titz\'aqatisäx ichinan URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Titz\'aqatisäx ichinan URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Titz\'aqatisäx ri ximonel richin ruyon nutz\'aqatisaj</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Taq Kaxlanwäy chuqa\' Rutzij K\'amaya\'l</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Kicha\'ik taq Tzij</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Tiyuj ichinan URLs</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Tetamäx ch\'aqa\' chik</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Titz\'aqatisäx chuqa\' tinuk\'samajïx ichinan ruyonil yenojisäx taq URLs.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL richin nitz\'aqatisäx</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Titz\'ajb\'äx o titz\'ib\'äx URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Tz\'eteb\'äl: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Rutz\'etb\'al: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">K\'ak\'a\' ichina URL xtz\'aqatisäx.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Tiyuj</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Tiyuj</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Tajikib\'a\' ri URL xatz\'ib\'aj.</string>
+
+ <string name="preference_language">Ch\'ab\'äl</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Q\'inoj k\'o wi</string>
+
+ <string name="preference_category_privacy">Ichinanem</string>
+ <string name="preference_privacy_block_ads">Keq\'at ojqanela\'</string>
+ <string name="preference_privacy_block_ads_summary">Jujun taq rutzijol taluxik yekojqaj ri kitzetik taq ruxaq k\'amaya\'l, estape\' man napïtz\' ta pa kiwi\'</string>
+ <string name="preference_privacy_block_analytics">Keq\'at ch\'ob\'onel taq ojqanela\'</string>
+ <string name="preference_privacy_block_analytics_summary">Ye\'okisäx richin yemol, yech\'ob\' chuqa\' yepaj taq samaj achi\'el ri taq chapoj chuqa\' ri taq q\'axanïk</string>
+ <string name="preference_privacy_block_social">Keq\'at winaqil taq ojqanela\'</string>
+ <string name="preference_privacy_block_social_summary">Yekinïm pa taq ruxaq k\'amaya\'l richin yekojqaj ri taq atz\'etoj chuqa\' yekik\'üt taq samaj achi\'el ri taq pitz\'b\'äl richin nikomonïx</string>
+ <string name="preference_privacy_block_content">Keq\'at ch\'aqa\' chik ojqanela\' rupam</string>
+ <string name="preference_privacy_block_content_summary2">We nitzij re\' rik\'in jub\'a\' nub\'än chi jujun taq ruxaq man kan ta ütz yesamäj</string>
+ <string name="preference_privacy_category_cookies">Keq\'at kaxlanwäy</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Mani matyox</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Keq\'at xa xe 3rx kiwinaqil kikaxlanwäy ojqanela\'</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Keq\'at xa xe 3rx kiwinaqil kaxlanwäy</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Keq\'at ronojel Kikuki xoch\'in taq ruxaq</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ja\', tab\'ana\' utzil</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Tawokisaj retal ruwi\' aq\'a\' richin man niq\'at ta chik ri chokoy</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Taq\'ata\' rik\'in ri retal ruwi\' q\'ab\'aj we xatz\'aqatisaj chojokem o toq jun ruxaq ajk\'amaya\'l jaqäl chik pa %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Ewan</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Ke\'ewäx ri ajk\'amaya\'l taq ruxaq toq yejal taq chokoy chuqa\' yeq\'at chapoj taq ruwa.</string>
+
+ <string name="preference_category_security">Jikomal</string>
+
+ <string name="preference_category_performance">Rub\'eyal nisamäj</string>
+ <string name="preference_performance_block_webfonts">Tiq\'at ruxe\'el Ajk\'amaya\'l</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Tikirel nib\'anatäj pa kiwachaj chuqa\' taq wachib\'äl</string>
+
+ <string name="preference_performance_block_javascript">Tiq\'at JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Ri taq ruxaq yetikïr yesamäj aninäq, po chuqa\' yetikïr yesamäj rik\'in man etaman ta rub\'anikil</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Ticha\' %1$s richin okik\'amaya\'l k\'o wi</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Ketaq taq tzij richin ye\'okisäx</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Tetamäx ch\'aqa\' chik</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Ri Mozilla nutïj ruq\'ij chi numöl ri niqajo\' niqataluj chuqa\' niqutzilaj %1$s k\'atzinel chi qe qonojel.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Rutzijol Ichinanem</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Na\'oj chi rij ya\'öl q\'ij</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Taq wujb\'äl yeqokisaj</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS taq wujb\'äl</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Chi rij ri %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Kanonela\' eyakon chupam</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Ticha\' kanob\'äl</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Ketzolïx ri kisamajel kanob\'äl ruk\'amon wi pe</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Titz\'aqatisäx jun chik kanob\'äl</string>
+ <string name="preference_search_remove_title">Tiyuj kanob\'äl</string>
+ <string name="preference_search_remove">Tiyuj</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Titz\'aqatisäx jun chik kanob\'äl</string>
+
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Tacha\' ri jeb\'ël awokik\'amaya\'l</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Titz\'aqatisäx kanob\'äl</string>
+
+ <string name="search_add_manually_name_hint">Rub\'i\' ri kanob\'äl</string>
+ <string name="search_add_manually_string">Rucholajem kanoxïk richin nokisäx</string>
+ <string name="search_add_manually_save">Tiyak</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Tz\'etb\'äl: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Xtz\'aqatisäx k\'ak\'a\' kanob\'äl.</string>
+
+ <string name="search_add_error_empty_name">Titz\'ib\'äx ri rub\'i\' ri kanob\'äl</string>
+ <string name="search_add_error_duplicate_name">Yakon chik jun kanob\'äl rik\'in ri b\'i\'aj ri\'.</string>
+
+ <string name="search_add_error_empty_search">Titz\'ib\'äx rucholajem ri nikanöx</string>
+
+ <string name="search_add_error_format">Tijikib\'äx chi ri rucholajem ri nikanöx nuk\'äm ri\' rik\'in ri rub\'anikil tz\'etb\'äl</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Tiyuj okitz\'ib\'</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Tewüx</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Tiyuj runatab\'al okem pa k\'amaya\'l</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Jaqäl taq ruwi\': %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Ütz okem</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Tajin nusamajin</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Ruxaq ajk\'amaya\'l qasan</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Ch\'aqa\' chik taq cha\'oj</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Kipitz\'b\'al ch\'aqa\' cha\'oj</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Katok pa k\'amaya\'l chuwäch</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Tisamajix chik ruxaq ajk\'amaya\'l</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Katok pa k\'amaya\'l titzolin</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Tiq\'at ruqasaxik ruxaq ajk\'amaya\'l</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Titzolin pa ri jun chokoy</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Kajilab\'al taq ojqanela\' eq\'aton</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Keq\'at ojqanela\'</string>
+
+ <string name="your_rights">Taq Ach\'ojib\'al</string>
+
+ <string name="external_app_prompt_title">Tijaq ximonel pa jun chik chokoy</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Yatikïr yatel %1$s richin najäq re ximonel re\' pa %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Tikanöx jun chokoy ri nitikïr nujäq ximonel</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Majun chi ke ri taq chokoy k\'o pan awokisaxel nitikïr nujäq re ximonel re\'. Yatikïr yatel pa %1$s richin %2$s nitikïr jun.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">¿La Nel pa Ichinan Okem pa K\'amaya\'l?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s k\'ison</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Tijaq</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">¡Xtz\'aqatisäx pa ruq\'a\'!</string>
+
+ <string name="error_hostLookup_title">Man xilitäj ta ri ruk\'u\'x samaj</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Titz\'apïx</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Ütz apetik pa %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Anin. Ichinan. Majun nrewaj.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Titikirisäx</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s man junam ta achi\'el kik\'in ch\'aqa\' chik okik\'amaya\'l</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Niqayüj ri anatab\'al toq natz\'apij ri chokoy richin awichinanem.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Tab\'ana\' chi re ri %1$s achi\'el k\'o wi richin ye\'achajij ri taq atzij pa xab\'achike ximoj xtajäq.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Tiya\' kan achi\'el kanob\'äl k\'o wi</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Tik\'o\'</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Tinimär ruchuq\'a\' ri awichinem</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Katik\'o pa ri jun chik ruxaq ri ichinan okem pa k\'amaya\'l. Ke\'aq\'ata\' ri taq rutzijol chuqa\' juley chik taq etamab\'äl ri yetikïr yatkojqaj rik\'in ruxaq k\'amaya\'l chuqa\' nuch\'öb\' ri ramaj nisamäj ri ruxaq.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Akanoxik, ab\'ey</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">¿La jun wi ri nakanoj? Tacha\' jun chik k\'wab\'äl kan k\'o wi pa Runuk\'ulem.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Tatz\'aqatisaj jun ruchojokem ri rutikirib\'al awäch</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Katzolin pa ri ajowel taq ruxaq k\'amaya\'l pa %1$s aninäq. Tacha\' \&quot;Titz\'aqatisäx pa ri Ruwäch Tikirib\'äl\&quot; chupam ri %1$s cha\'osamaj.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Tib\'an chi ri ichinanem tok jun ruk\'ulun na\'oj</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Tib\'an runuk\'ulem %1$s achi\'el ri okik\'amaya\'l k\'o wi richin nawïl rutzil ri ichinan okem pa k\'amaya\'l toq ye\'ajäq taq ruxaq k\'amaya\'l pa ch\'aqa\' chik taq chokoy.</string>
+
+ <string name="firstrun_close_button">ÜTZ, Wetaman chik</string>
+ <string name="firstrun_skip_button">Tik\'o</string>
+ <string name="firstrun_next_button">Jun chik</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Titz\'aqatisäx</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">JA\'</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Tiq\'at</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">MANI</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Nijaq ri chojokem akuchi\' chupun ri Nimirisan Ojqanem chuwäch Chajinïk</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Ichinan okem pa k\'amaya\'l</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Ri taq rutzijol nikiya\' q\'ij chawe ye\'ayüj el ri rumolojri\'ïl %1$s rik\'in jun chapoj. Man k\'atzinel ta najäq ri chokoy chuqa\' ri nusamajij ri awokik\'amaya\'l.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Tiyuj runatab\'al okem pa k\'amaya\'l</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Taqasaj Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s jun jamäl kema\' chuqa\' jaqäl b\'itz\'ib\' nuk\'un ruma Mozilla chuqa\' ch\'aqa\' chik to\'onela\'.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s niya\' pan aq\'a\' rik\'in rojqanem ri <a href="%2$s">Aj winäq Ya\'oj Ruq\'ij Mozilla</a> chuqa\' ch\'aqa\' chik taq ya\'oj q\'ij kichin ch\'aqa\' chik taq jaqäl b\'itz\'ib\'.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Man nisuj taq kich\'ojib\'al chuqa\' ya\'oj q\'ij chi ke ri etz\'ib\'an taq b\'i\'aj richin Mozilla Moloj ni xa ta chi ke ri taq ruch\'akulal achi\'el Mozilla, Firefox o %1$s taq b\'i\'aj o taq wachaj. Nawïl rutz\'aqat na\'oj <a href="%2$s">wawe\'</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Rutz\'aqat ruxe\'el b\'itz\'ib\' richin %1$s wachel kik\'in ch\'aqa\' chik jalajöj sipan taq kema\' chuqa\' jaqäl b\'itz\'ib\' <a href="%2$s">taq ya\'oj q\'ij</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s chuqa\' nrokisaj kicholonem tanaj ya\'on ruma Disconnect, Inc. achi\'el jachon chuqa\' alaj ruk\'aslem nimawuj ruma <a href="%2$s">GNU General Public License v3</a>, chuqa\' wachel <a href="%3$s">wawe\'</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Rub\'i\' okisanel</string>
+ <string name="gv_prompt_password_hint">Ewan tzij</string>
+ <string name="gv_prompt_clear">Tijosq\'ïx</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Ütz Okem</string>
+ <string name="security_popup_insecure_connection">Me\'utz Okem</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Jikib\'an ruma: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Rujikomal Ruxaq K\'amaya\'l</string>
+ <string name="preference_autocomplete_duplicate_url_error">K\'o chik ri URL</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Tikanöx pa Ruxaq</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Tikanöx pa ruxaq</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d richin %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Tikanöx ri jun chik xilitäj</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Tikanöx ri jun ilitajnäq kan</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Tiqasäx tikanöx pa ruxaq</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Tik\'utüx ruxaq ruk\'amaya\'l ajkematz\'ib\'</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Ruxaq ch\'atal</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL xwachib\'ëx</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Taq rusamajib\'al nuk\'unel</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Kejaq taq ximonel pa taq chokoy</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Q\'axinäq</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Taq ruya\'oj q\'ij ri ruxaq</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Kech\'utinirisäx kitzijol kuki</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Titzij</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Tichup</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Kech\'utinirisäx kitzijol kuki</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Ke\'atz\'eta\' jub\'a\' taq rutzijol k\'ayij rik\'in yexutüx ri taq kik\'utuxik kuki toq ke ri\' nrajo\'.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Kech\'utinirisäx kitzijol kuki</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">TZIJÏL pa re ruxaq re\'</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Wakami man koch\'el ta re ruxaq re\'</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">CHUPÜL pa re ruxaq re\'</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Kech\'utinirisäx kitzijol kuki</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">CHUPÜL pa re ruxaq re\'</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">TZIJÏL pa re ruxaq re\'</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">¿La nitzij ri kich\'utinisaxik rutzijol kuki richin %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">¿La nichup ri kich\'utinisaxik rutzijol kuki richin %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s xkeruyüj ri taq rukuki re ruxaq chuqa\' xtuk\'ëx re ruxaq. Xkeruyüj ronojel ri taq kuki, nitikïr nutz\'apij ri molojri\'ïl o yerujäm ri taq ruch\'ich\' loq\'oj.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s nitikïr nutojtob\'ej yeruxutuj pa ruyonil ri kik\'utuxik taq kuki.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Wakami re ruxaq re\' man nuköch\' ta ri kich\'utinisaxik kitzijol kuki. ¿La nawajo\' nak\'utuj chi re ri qamolaj richin nunik\'oj re ruxaq ajk\'amaya\'l re\' chuqa\' tutz\'aqatisaj tob\'äl ri chwa\'q kab\'ij?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Tiq\'at</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Tik\'utüx to\'ïk</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">taq nuk\'ulem</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Ruyon titzijtäj</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Richin niya\' q\'ij chi re:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Jät pa Runuk\'ulem Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tachapa\' <b>Taq Ya\'oj Q\'ij</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Tib\'e pa taq Nuk\'ulem</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Tik\'exlöx <b>%1$s</b> rik\'in TZIJÏL]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Elesäy wachib\'äl</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Q\'asäy ch\'ab\'äl</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">K\'ojlib\'äl</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Rutzijol</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-chajin rupam</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Tik\'utüx q\'ij</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Q\'aton</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Xya\' q\'ij</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Xq\'at ruma Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Tiya\' q\'ij k\'oxom chuqa\' silowäch</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Xa xe tiq\'at k\'oxom</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Chilab\'en</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Tiq\'at k\'oxom chuqa\' silowäch</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Taq tijonïk</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox k\'o b\'ey nitikïr yeruyäk chuqa\' yerub\'än taq tijob\'alil.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Tetamäx ch\'aqa\' chik</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Xtitz\'apitäj ri okisanel richin yejikib\'äx ri taq jaloj</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Tiyuj</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Tzijïl</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Xtz\'aqatisäx</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Näj chojmirisanem pa USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Titzij chik</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Tijaq ri ximonel pa jun k\'ak\'a\' molojri\'ïl</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Ruwachib\'al retal ruwi\' q\'ab\'aj</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">&quot;Man xetamäx ta ruwa ri rel ruwi\' q\'ab\'aj. Tatojtob\'ej chik.&quot;</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Aninäq xsilon ri ruwi\' q\'ab\'aj. Tatojtob\'ej chik.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">La yek\'ut pe ri taq chilab\'enïk richin yakanon?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> Richin nik\'ul kichilab\'exik, %1$s k\'o chi nutäq ri natz\'ib\'aj pa ri rajtz\'ik ochochib\'äl.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Mani</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Ja\'</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Jujun taq kanob\'än man yatikïr ta yekik\'üt ta chilab\'enïk.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Tichup ruwäch</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">¿La man pa rub\'eyal ta nisamäj re ruxaq k\'amaya\'l re\'?\n Tatojtob\'ej rik\'in nachüp ri Chajinïk chuwäch Ojqanem</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA["Katok rik\'in jun chapoj pa ri taq ruxaq yalan ye\'awokisaj%1$s\n Molsamajib\'äl > Titz\'aqatisäx pa Tikirib\'äl tzuwäch"]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Kejaq konojel ri taq ximonel pa %1$s\n Tib\'an runuk\'ulem %1$s achi\'el ri awokik\'amaya\'l k\'o wi</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Ruyon ke\'atz\'aqatisaj ri taq URLs kichin ri taq ruxan yalan ye\'awokisaj\n Tapitz\'itz\'ej xa b\'achike URL pa rukajtz\'ik ochochib\'äl</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Tijaq jun ximonel pa jun k\'ak\'a\' ruwi\'\n Tapitz\'itz\'ej xab\'achike ximonel pa jun ruxaq</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Tichup ri taq chilab\'enïk pa ri tikirib\'äl ruwäch</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">K\'ak\'a\' ruwi\' jaqon</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Tiq\'ax pa</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Nok pa chijun ruwa</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Chanin tijal rik\'in tixim pa k\'ak\'a\' ruwi\'</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Keq\'at taq ruxaq nïm kitz\'ilanem chuqa\' q\'olonela\'</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Keq\'at taq ruxaq etaman chi yeq\'eleb\'en chuqa\' yeq\'olon, tz\'ilanel ruxaq taq chokoy chuqa\' itzel ruxaq taq solkema\'.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">HTTPS-Only B\'anikil</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Taq man relik ta</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Xachüp ri Ruq\'atik Rupam pa re ajk\'amaya\'l taq ruxaq re\'.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Tiyuj</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Keyuj ronojel ajk\'amaya\'l ruxaq</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Keq\'at Kuki</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Xsach ri Ruwi\'</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Kojakuyu\', K\'o qak\'ayewal rik\'in re ruwi\' re\'.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Achi\'el jun ichinan okik\'amaya\'l, majub\'ey niqayäk chuqa\' man yojtikïr ta niqatzolij re ruwi\' re\'.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Titz\'apïx Ruwi\'</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Titaq rutzijol sachoj chi re Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Rupam</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Winaqinem</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Utzirisan Chajinïk chuwäch Ojqanem</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">CHUPÜL ri chajinïk pa re ruxaq re\'</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">TZIJÏL ri chajinïk pa re ruxaq re\'</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Rujikomal okem</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Man ütz ta chi okem</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Titzolin</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Tiyuj</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Tisik\'ïx chik</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Tisik\'ïx chik</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Rub\'i\' ri choj okem</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Taq wachib\'äl eyakon chuqa\' ekomonin &lt;b&gt;manäq&lt;/b&gt; xke\'elesäx toq xtayüj runatab\'al ri %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Wachinel</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Yuk\'unel</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Q\'equ\'m</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Xjikib\'äx ruma ri Yakonel Uchuq\'ab\'äl</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Tojqäx ri ruwachinel oyonib\'äl</string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Man ütz ta okem</string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Titz\'apïx ruwi\'</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Titz\'apïx elenel tzuwäch</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">¡Atchajin!</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Tewäx</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Titz\'apïx</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Rukanoxik widget</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Josq\'in kinatab\'al okem pa k\'amaya\'l 🎉</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Titz\'aqatisäx widget pa ri rutikirib\'al ruwa</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Xtz\'aqatisäx widget pa ri rutikirib\'al ruwa</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-co/strings.xml b/mobile/android/focus-android/app/src/main/res/values-co/strings.xml
new file mode 100644
index 0000000000..ab83478c6f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-co/strings.xml
@@ -0,0 +1,1125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Abbandunà</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Vai</string>
+
+ <string name="action_save">Arregistrà</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Ricerca o indirizzu</string>
+
+ <string name="teaser">Navigazione privata autumatica.\nNavigate. Squassate. Ripitite.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">A vostra cronolugia di navigazione hè stata squassata.</string>
+ <string name="feedback_erase2">Cronolugia di navigazione squassata</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">A cronolugia di navigazione di l’unghjetta hè stata squassata.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Ricercà %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Sparte…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Signalà un penseru nant’à stu situ</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Apre cù %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Apre cù…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Fissà à u screnu d’accolta</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Aghjunghje à l’accurtatoghji</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Caccià da l’accurtatoghji</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Preferenze</string>
+ <string name="menu_about">Apprupositu</string>
+ <string name="menu_help">Aiutu</string>
+ <string name="menu_rights">Diritti di l’utilizatore</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Perseguitatori bluccati</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Disattivà st’ozzione pò risolve qualchì penseru di u situ</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blucchime di cuntenutu</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Disattivà per currege certi siti</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Funziuneghja grazia à %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Sparte cù</string>
+
+ <string name="notification_erase_title_android_14">Squassà a cronolugia di navigazione ?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Picchichjate o spazzate sta nutificazione per squassà di manera sicura a vostra cronolugia di navigazione.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Picchichjate sta nutificazione o fatela sguillà per squassà di manera sicura a vostra cronolugia di navigazione.</string>
+
+ <string name="notification_erase_text">Squassà a cronolugia di navigazione</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Apre</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Squassà è apre</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Squassà</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Squassà a cronolugia di navigazione</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Squassà &amp; apre</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Squassà è apre %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Circà in Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Circà in Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Circà in Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Circà in Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s vi aiuta à stà à e cumande.</p>
+<p>Impiegatelu cum’è un navigatore privatu :
+ <ul>
+ <li>Fate ricerche è navigate cù l’appiecazione</li>
+ <li>Bluccate i perseguitatori (o mudificà e preferenze per auturizalli)</li>
+ <li>Squassate i canistrelli è ancu e cronolugie di navigazione è di ricerca</li>
+ </ul>
+</p>
+<p>%1$s hè sviluppatu da Mozilla. A nostra missione hè d’incuragisce un Internet apertu è in bella saluta.<br/>
+<a href="%2$s">Per sapene di più</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Vita privata &amp; sicurità</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Traccie, canistrelli, scelta di dati cullettati</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Mutore predefinitu, scrittura mezu-autumatica</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Apprupositu di %1$s, aiutu</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Prutezzione rinfurzata contr’à u spiunagiu</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Cuntenutu di u Web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Navigazione trà l’appiecazioni</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Generale</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Navigatore predefinitu, lingua</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Culletta di dati è adopru</string>
+
+ <string name="preference_category_search">Ricerca</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Ottene suggestioni di ricerca</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s manderà à u vostru mutore di ricerca ciò chì voi stampittate in a barra d’indirizzu</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Predefinitu</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Mutore di ricerca</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Attivata</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Disattivata</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Scrittura mezu-autumatica di l’indirizzi</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Per i siti i più populari</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Attivà per chì %s compii autumaticamente più di 450 indirizzi populari in a barra d’indirizzu.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Per i siti chì voi aghjunghjite</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Attivà per chì %s compii autumaticamente i vostri indirizzi web favuriti.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Urganizà i siti</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Urganizà i siti</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Aghjunghje un indirizzu persunalizatu</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">A vostra lista di scrittura mezu-autumatica :</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Aghjunghje l’indirizzu</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Aghjunghje un indirizzu persunalizatu</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Aghjunghje un indirizzu persunalizatu</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Aghjunghje un liame à a scrittura mezu-autumatica</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Canistrelli è dati di siti</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Dati cullettati</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Caccià indirizzi persunalizati</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Per sapene di più</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Aghjunghje è urganizà indirizzi persunalizati per a scrittura mezu-autumatica.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Indirizzu web à aghjunghje</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Incullà o stampittà un indirizzu</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Esempiu : mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Esempiu : esempiu.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Novu indirizzu persunalizatu aghjuntu.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Caccià</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Caccià</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Ci vole à vérificà l’indirizzu stampittatu.</string>
+
+ <string name="preference_language">Lingua</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Valore predefinitu di u sistema</string>
+
+ <string name="preference_category_privacy">Vita privata</string>
+ <string name="preference_privacy_block_ads">Bluccà i perseguitatori publicitarii</string>
+ <string name="preference_privacy_block_ads_summary">Parechje publicità spiunanu e vostre visite nant’à i siti, ancu senza cliccà nant’à e publicità</string>
+ <string name="preference_privacy_block_analytics">Bluccà i perseguitatori di statistiche</string>
+ <string name="preference_privacy_block_analytics_summary">Ghjovanu à cullettà, analizà è misurà e vostre attività cum’è picchichjà nant’à u screnu o fà sfilà e pagine</string>
+ <string name="preference_privacy_block_social">Bluccà i perseguitatori di rete suciale</string>
+ <string name="preference_privacy_block_social_summary">Sò framessi in qualchì situ per spiunà e vostre visite o affissà funzioni cum’è buttoni di spartera</string>
+ <string name="preference_privacy_block_content">Bluccà l’altri perseguitatori di cuntenutu</string>
+ <string name="preference_privacy_block_content_summary2">Attivà st’ozzione pò cagiunà penseri cù certe pagine</string>
+ <string name="preference_privacy_category_cookies">Bluccà i canistrelli</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Innò, vi ringraziemu</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Bluccà solu i canistrelli terzi impiegati per u spiunagiu</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Bluccà solu i canistrelli terzi</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Bluccà i canistrelli intersiti</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Sì, per piacè</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Impiegà un’impronta digitale per spalancà l’appiecazione</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Spalancate cù l’impronta digitale s’è vo avete aghjuntu accurtatoghji o quandu un situ web hè dighjà apertu in %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Modu furtivu</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Piattà e pagine web quandu si cambia d’appiecazione è impedisce e catture di screnu.</string>
+
+ <string name="preference_category_security">Sicurità</string>
+
+ <string name="preference_category_performance">Perfurmenze</string>
+ <string name="preference_performance_block_webfonts">Bluccà e grafie web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Pò impedisce certe icone o fiure d’affissassi</string>
+
+ <string name="preference_performance_block_javascript">Bluccà JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">E pagine ponu apressi più prestu, ma ponu dinù cumpurtassi d’una manera inaspettata</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Sceglie %1$s cum’è navigatore predefinitu</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Mandà dati d’adopru</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Per sapene di più</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla face casu à cullettà solu i dati chì sò ghjuvevule per rigalà è bunificà %1$s per tutti.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Pulitica di cunfidenzialità</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Infurmazione di licenza</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliuteche impiegate</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Bibliuteche di fonte aperta</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Apprupositu di %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Mutori di ricerca installati</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Sceglie u mutore di ricerca</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Risturà i mutori predefiniti</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Aghjunghje un altru mutore di ricerca</string>
+ <string name="preference_search_remove_title">Caccià mutori di ricerca</string>
+ <string name="preference_search_remove">Caccià</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Aghjunghje un altru mutore di ricerca</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Selezziunate u vostru mutore di ricerca preferitu :</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Aghjunghje un mutore di ricerca</string>
+
+ <string name="search_add_manually_name_hint">Nome di u mutore di ricerca</string>
+ <string name="search_add_manually_string">Catena di ricerca à impiegà</string>
+ <string name="search_add_manually_save">Arregistrà</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Esempiu : example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Novu mutore di ricerca aghjuntu.</string>
+
+ <string name="search_add_error_empty_name">Stampittà u nome di u mutore di ricerca</string>
+ <string name="search_add_error_duplicate_name">Un mutore di ricerca di u listessu nome hè dighjà installatu.</string>
+
+ <string name="search_add_error_empty_search">Stampittà una catena di ricerca</string>
+
+ <string name="search_add_error_format">Verificate chì a catena di ricerca seguiteghji u furmatu di l’esempiu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Squassà u testu stampittatu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Ignurà</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Squassà a cronolugia di navigazione</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Unghjette aperte : %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Cunnessione assicurizata</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Caricamentu</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Situ web caricatu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Ozzioni addiziunale</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Buttone per affissà più d’ozzioni</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Seguente in a cronolugia</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Attualizà a pagina web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Precedente in a cronolugia</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Piantà u caricamentu di u situ web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Rivene à l’appiecazione precedente</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Numeru di perseguitatori bluccati</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Bluccà i perseguitatori</string>
+
+ <string name="your_rights">Diritti di l’utilizatore</string>
+
+ <string name="external_app_prompt_title">Apre u liame in un’altra appiecazione</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Avete da lascià %1$s per apre stu liame in %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Truvà un’appiecazione capace d’apre stu liame</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Alcuna appiecazione di u vostru apparechju ùn hè capace d’apre stu liame. Avete da lascià %1$s per circà in %2$s un appiecazione chì ne seria capace.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Fermà a navigazione privata ?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s compiu</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Apre</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Aghjuntu à l’accurtatoghji !</string>
+
+ <string name="error_hostLookup_title">Indirizzu intruvevule</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Chjode</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Benvenuta in %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rapidu. Pruvatu. Senza distrazzione.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Principià</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s ùn hè micca cum’è l’altri navigatori</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Per più di cunfidenzialità, squassemu a vostra cronolugia quandu si chjode l’appiecazione.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Fate di %1$s u vostru navigatore predefinitu per prutege i vostri dati à l’apertura d’ogni liame.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Sceglie cum’è navigatore predefinitu</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Ignurà</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Rinfurzà a vostra vita privata</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">A navigazione privata passa à u livellu insù. Bluccate e publicità è altri perseguitatori chì vi spiunanu è rallentanu u caricamentu di e pagine web.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Ricercate à a vostra manera</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Ricercate qualcosa di sfarente ? Sciglite un altru mutore di ricerca predefinitu in e Preferenze.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Aghjunghjite accurtatoghji à u vostru screnu d’accolta</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Rivultate à i vostri siti favuriti in %1$s prestu prestu. Selezziunate puru « Fissà à u screnu d’accolta » da u listinu di %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Ripigliate in manu a vostra vita privata</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Sciglite %1$s cum’è u vostru navigatore predefinitu è cusì a navigazione serà privata quandu e pagine web s’apreranu da d’altre appiecazioni.</string>
+
+ <string name="firstrun_close_button">Iè, aghju capitu !</string>
+ <string name="firstrun_skip_button">Ignurà</string>
+ <string name="firstrun_next_button">Seguente</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Aghjunghje</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">SÌ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Abbandunà</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">INNÒ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">L’accurtatoghju s’aprerà cù a prutezzione rinfurzata contr’à u spiunagiu disattivata</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sessione di navigazione privata</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Da e nutificazioni si pò squassà a sessione di %1$s cù una picchicciata. Ùn ci hè bisognu d’apre l’appiecazione ne d’affissà ciò chì si passa in u vostru navigatore.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Squassà a cronolugia di navigazione</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Scaricà Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s hè un prugramma liberu è apertu creatu da Mozilla cù l’aiutu d’altri cuntribuenti.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s hè distribuitu sicondu i termini di a <a href="%2$s">Mozilla Public License</a> è d’altre licenze di tipu fonte aperta.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Ùn vi hè cidutu nisunu dirittu o licenza nant’à e marche deposte di a Fundazione Mozilla o di terzi, includendu i nomi è logò di Mozilla, Firefox o %1$s. Si pò cunsultà infurmazioni cumplementarie da <a href="%2$s">quì</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[U codice di fonte addiziunale di %1$s hè dispunibule sottu parechje <a href="%2$s">licenze</a> libere è fonte aperta.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s impiegheghja dinù liste di blucchime pruviste da Disconnect, Inc. cum’è creazioni indipendente sottu a licenza <a href="%2$s">GNU General Public License v3</a>, è dispunibule <a href="%3$s">quì</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nome d’utilizatore</string>
+ <string name="gv_prompt_password_hint">Parolla d’intesa</string>
+ <string name="gv_prompt_clear">Squassà</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Cunnessione assicurizata</string>
+ <string name="security_popup_insecure_connection">Cunnessione micca assicurizata</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verificatu da : %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Sicurità di u situ</string>
+ <string name="preference_autocomplete_duplicate_url_error">L’indirizzu esiste dighjà</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Circà in a pagina</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Circà in a pagina</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d nant’à %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Truvà u risultatu seguente</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Truvà u risultatu precedente</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Chjode a ricerca in a pagina</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Versione d’urdinatore</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Versione urdinatore</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Indirizzu web cupiatu</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Attrezzi di sviluppu</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Apre i liami in l’appiecazioni</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Espertu</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Permessi di situ</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Riduzzione di e striscie di cannistrelli</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Attivata</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Disattivata</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Riduzzione di e striscie di cannistrelli</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Fighjate menu di striscie righjittendu autumaticamente e dumande di canistrelli quand’ellu hè pussibule.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Riduzzione di e striscie di cannistrelli</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ATTIVATA per stu situ</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Attualmente u situ ùn hè micca accettatu</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">DISATTIVATA per stu situ</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Riduzzione di e striscie di cannistrelli</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">DISATTIVATA per stu situ</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ATTIVATA per stu situ</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Attivà a riduzzione di e striscie di cannistrelli per %1$s ?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Disattivà a riduzzione di e striscie di cannistrelli per %1$s ?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s squasserà i canistrelli di stu situ è attualizerà a pagina. A squassatura di tutti i canistrelli puderia discunnettevi o viutà e sporte di comprera.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s pò pruvà di righjittà autumaticamente e dumande di canistrelli.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Ora, stu situ ùn hè micca accettatu da a riduzzione di e striscie di cannistrelli. Vulete fà una dumanda à a nostra squadra per verificà stu situ web è accettallu in u futuru ?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Abbandunà</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Richiede ch’ellu sia accettatu</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">A dumanda per chì u situ sia accettatu hè stata mandata.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">A dumanda per chì u situ sia accettatu hè stata mandata.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s prova di righjittà e dumande di canistrelli per chjode e striscie strazievule di canistrelli.\n\nSceglie i parametri per e striscie di canistrelli in e %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">preferenze</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Leghje autumaticamente l’elementi multimedià</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Per permettelu :</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Andate à e preferenze Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tucchate <b>Permessi</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Andà à e preferenze</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Attivate <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Apparechju-fotò</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Microfonu</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Lucalizazione</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Nutificazioni</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Cuntenutu cuntrollatu da DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Dumandà per permette</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Bluccatu</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Permessu</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Bluccatu da Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Permette l’audio è a video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Bluccà solu l’audio</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Ricumandatu</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Bluccà l’audio è a video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studii</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox pò installà è lancià studii di quandu in quandu.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Per sapene di più</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">L’appiecazione hà da piantà per appiecà i cambiamenti</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Caccià</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Attivi</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Compii</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Spannatura alluntanata via USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Sbluccà</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Cunfirmate cù a vostra impronta digitale</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Pudete impiegà a vostra impronta digitale per cuntinuà a sessione currente di l’appiecazione.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Apre u liame in una nova sessione</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Icona d’impronta digitale</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Impronta digitale micca ricunnisciuta. Pruvà torna.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">U ditu hà mossu troppu prestu. Pruvà torna.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Affissà e suggestioni di ricerca ?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Per ottene suggestioni di ricerca, %1$s hà bisognu di mandà à u mutore di ricerca ciò chì vo stampittate in a barra d’indirizzu.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Nò</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Sì</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Certi mutori di ricerca ùn ponu affissà suggestioni.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Ignurà</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Stu situ ùn si cumporta micca cum’è previstu ?\n
+ Pruvate di disattivà a prutezzione contr’à u spiunagiu</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Accidete prestu prestu à i vostri siti favuriti%1$s Listinu > Fissà à u screnu d’accolta]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Apre ogni liame in %1$s\n
+ Sceglie %1$s cum’è navigatore predefinitu
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Compie autumaticamente l’indirizzi di i siti i più visitati\n Effettuate una longa incalcata nant’à un indirizzu in a barra</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Apre un liame in una nova unghjetta\n
+ Effettuate una longa incalcata nant’à un liame in una pagina
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Disattivà e minichichje nant’à u screnu d’avviu</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nova unghjetta aperta</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Affissà</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Modu di screnu sanu attivatu</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Affissà subitu ogni liame apertu in una nova unghjetta</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Bluccà i siti chì puderianu esse periculosi o ingannatori</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Bluccà i siti animosi è ingannatori, i siti di prugrammi dispiacevule è indesiderevule.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Modu solu HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Tentativu autumaticu di cunnessione à i siti impieghendu u protocollu di cifratura HTTPS per aumentà a sicurità.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Eccezzioni</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Avete disattivatu u blucchime di cuntenutu per quessi siti web.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Caccià</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Caccià tutti i siti web</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Bluccà i canistrelli</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Vulete bluccà i canistrelli ?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">L’unghjetta hè rotta</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Per disgrazia, avemu un prublema cù st’unghjetta.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Cum’è a navigazione era privata, ùn avemu micca arregistratu l’unghjetta è dunque ùn pudemu micca risturalla.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Chjode l’unghjetta</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Mandà un raportu d’accidente à Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Perseguitatori bluccati dapoi u %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Cuntenutu</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Publicità</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Suciale</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Statistica</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Prutezzione rinfurzata contr’à u spiunagiu</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">E prutezzioni sò DISATTIVATE per stu situ</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">E prutezzioni sò ATTIVATE per stu situ</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">A cunnessione hè assicurata</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">A cunnessione ùn hè micca assicurata</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Perseguitatori è scenarii à bluccà</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Ritornu</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Caccià</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Rinuminà</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Rinuminà</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nome di l’accurtatoghju</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">E fiure sparte o arregistrate &lt;b&gt;ùn sò micca squassate&lt;/b&gt; quandu a cronolugia di %1$s hè squassata</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Chjaru</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Scuru</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Definitu da l’ecunumizatore d’energia di batteria</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Seguità u tema di l’apparechju</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Stu situ ùn permette micca u modu HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[Per una sicurità più forte, %1$s prova d’impiegà una cunnessione HTTPS quand’ella hè pussibule.
+ <a href="%2$s">Per sapene di più</a> <br/><br/>
+ Cambiate sta definizione in Preferenze > Vita privata è sicurità > Sicurità.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Cunnessione micca assicurata</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Stu penseru pò pruvene da a cunfigurazione di u servitore, osinnò ghjè qualchissia forse chì prova d’impatruniscesi di u servitore. <br/><br/>
+ S’è vo avete dighjà riesciutu à cunnettevi à stu servitore, u sbagliu pò esse timpurariu.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Qualchissia puderia pruvà d’impatruniscesi di u situ web è cuntinuà puderia esse periculosu.</label>
+ <br><br>
+ <label>%1$s ùn hà micca fidanza in <b>%2$s</b> perchè l’emettore di u so certificatu hè scunnisciutu, u certificatu hè firmatu daperellu, o ancu u servitore ùn manda micca certificati intermediarii curretti.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Chjode l’unghjetta</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Missione compia ! Avemu fermatu u spiunagiu da stu situ. Picchichjate u scudu à ogni mumentu per vede ciò chì no blucchemu.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Chjode a finestra popup</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Site prutetti !</string>
+
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Ste preferenze predefinite furniscenu una prutezzione forte. Ma hè faciule di mudificalle per suddisfà i vostri bisogni specifichi.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Righjittà</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Picchichjate quì per squassà tuttu - cronolugia, canistrelli, ecc. - è principiate à zeru in un’unghjetta nova.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Chjode</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget di ricerca</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Cronolugia di navigazione squassata ! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Principiate a vostra sessione di navigazione privata è noi bluccheremu l’elementi di spiunagiu è l’altre minacce durante a navigazione.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Vi lasciemu à a vostra navigazione privata, ma principiate più prestu e prossime volte cù u widget %1$s nant’à u vostru screnu d’accolta.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Aghjunghje u widget à u screnu d’accolta</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget aghjuntu à u screnu d’accolta</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-cs/strings.xml b/mobile/android/focus-android/app/src/main/res/values-cs/strings.xml
new file mode 100644
index 0000000000..0e009bfec1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-cs/strings.xml
@@ -0,0 +1,1113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Zrušit</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Uložit</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Zadejte hledání nebo adresu</string>
+
+ <string name="teaser">Automatické anonymní prohlížení.\nProhlížejte. Vymažte. Opakujte.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Vaše historie prohlížení byla vymazána.</string>
+ <string name="feedback_erase2">Historie prohlížení vymazána</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Historie prohlížení panelu byla vymazána.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Hledat %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Sdílet…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Nahlášení chyby stránky</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Otevřít v aplikaci %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Otevřít v…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Přidat na domovskou obrazovku</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Přidat zkratku</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Odebrat ze zkratek</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Nastavení</string>
+ <string name="menu_about">O nás</string>
+ <string name="menu_help">Nápověda</string>
+ <string name="menu_rights">Vaše práva</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Zablokováno sledovacích prvků</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Vypnutí této funkce může vyřešit některé problémy se stránkami</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blokování obsahu</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Vypněte pro opravu některých problémů se stránkami</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Pohání %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Sdílet přes</string>
+
+ <string name="notification_erase_title_android_14">Vymazat historii prohlížení?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Klepnutím na toto oznámení nebo jeho smazáním bezpečně vymažete svou historii prohlížení.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Klepnutím nebo přejetím po tomto oznámení bezpečně vymažete historii procházení.</string>
+
+ <string name="notification_erase_text">Vymazat historii prohlížení</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Otevřít</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Vymazat a otevřít</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Vymazat</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Vymazat historii prohlížení</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Vymazat a otevřít</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Vymazat a otevřít %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Vyhledat ve Focusu</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Vyhledat v Klaru</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Vyhledat v betaverzi Focusu</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Vyhledat ve Focusu Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s vám dává kontrolu.</p>
+<p>Používejte ho jako soukromý prohlížeč:
+ <ul>
+ <li>Vyhledávejte a prohlížejte přímo v aplikaci</li>
+ <li>Blokujte sledovací prvky (nebo aktualizujte nastavení pro povolení sledovacích prvků)</li>
+ <li>Tlačítkem smažte cookies a historii vyhledávání a prohlížení</li>
+ </ul>
+</p>
+<p>%1$s je vyvíjen Mozillou. Naší misí je podporovat zdravý a otevřený internet.<br/>
+<a href="%2$s">Zjistěte více</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Soukromí a zabezpečení</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Sledování, soubory cookie, možnosti hlášení</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Výchozí vyhledávač, doplňování</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">O aplikaci %1$s, nápověda</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Rozšířená ochrana proti sledování</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Webový obsah</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Přepínání aplikací</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Obecné</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Výchozí prohlížeč, jazyk</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Sběr dat a jejich použití</string>
+
+ <string name="preference_category_search">Hledat</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Povolit našeptávání</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s bude odesílat text zadávaný to adresního řádku vyhledávači</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Výchozí</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Vyhledávací modul</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Zapnuto</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Vypnuto</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Automatické doplňování URL adres</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Pro Top stránky</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Po zapnutí bude %s našeptávat více než 450 populárních URL adres.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Pro stránky které přidáte</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Povolí aplikaci %s našeptávání vámi vybraných adres stránek.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Spravovat stránky</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Spravovat stránky</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Přidat vlastní URL adresu</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Váš seznam automatického doplňování:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Přidat URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Přidat vlastní URL adresu</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Přidat vlastní URL adresu</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Přidat odkaz na našeptávání</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies a data stránek</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Možnosti hlášení</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Odebrat vlastní URL adresy</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Zjistit více</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Přidání a správa vlastních URL adres pro automatické doplňování.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL adresa k přidání</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Vložte nebo zadejte URL adresu</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Příklad: mozilla.cz</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Příklad: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Vlastní URL adresa přidána.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Odebrat</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Odebrat</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Zkontrolujte zadanou URL adresu.</string>
+
+ <string name="preference_language">Jazyk</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Systémové nastavení</string>
+
+ <string name="preference_category_privacy">Soukromí</string>
+ <string name="preference_privacy_block_ads">Blokovat sledující reklamy</string>
+ <string name="preference_privacy_block_ads_summary">Některé reklamy sledují návštěvy stránek i v případě, že na reklamy nekliknete</string>
+ <string name="preference_privacy_block_analytics">Blokovat analytické prvky</string>
+ <string name="preference_privacy_block_analytics_summary">Slouží k shromážďování, analýze a měření aktivit jako je klepnutí nebo posouvání</string>
+ <string name="preference_privacy_block_social">Blokovat sledovací prvky sociálních sítí</string>
+ <string name="preference_privacy_block_social_summary">Vloženo do stránek pro sledování vašich návštěv a zobrazování funkcí jako tlačítka pro sdílení</string>
+ <string name="preference_privacy_block_content">Blokovat ostatní sledovací prvky</string>
+ <string name="preference_privacy_block_content_summary2">Zapnutí může způsobit, že se některé stránky budou chovat neočekávaně</string>
+ <string name="preference_privacy_category_cookies">Blokovat cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ne, díky</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Blokovat pouze sledovací cookies třetích stran</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Blokovat pouze cookies třetích stran</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blokovat cross-site cookies</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ano, prosím</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Odemknout aplikaci otiskem prstu</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Odemkněte pomocí otisku prstu, pokud jste přidali Zkratky nebo pokud je webová stránka již otevřena v %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Nenápadnost</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Skrýt webové stránky při přepínání aplikací a zabránit pořizování snímků obrazovky.</string>
+
+ <string name="preference_category_security">Zabezpečení</string>
+
+ <string name="preference_category_performance">Výkon</string>
+ <string name="preference_performance_block_webfonts">Blokovat webové fonty</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Některé ikony nebo obrázky se nemusí zobrazovat</string>
+
+ <string name="preference_performance_block_javascript">Blokovat JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Stránky se mohou načítat rychleji, ale také nemusí správně fungovat</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Nastavit %1$s jako výchozí prohlížeč</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Odesílat údaje o používání</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Zjistit více</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla sbírá jenom ty informace, které potřebuje pro další vylepšování aplikace %1$s.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Zásady ochrany osobních údajů</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Informace o licenci</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Knihovny, které používáme</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS knihovny</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">O aplikaci %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Nainstalované vyhledávací moduly</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Vyberte vyhledávač</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Obnovit výchozí vyhledávací moduly</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Přidat jiný vyhledávací modul</string>
+ <string name="preference_search_remove_title">Odebrat vyhledávací moduly</string>
+ <string name="preference_search_remove">Odebrat</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Přidat další vyhledávač</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Vyberte preferovaný vyhledávač:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Přidat vyhledávací modul</string>
+
+ <string name="search_add_manually_name_hint">Název vyhledávacího modulu</string>
+ <string name="search_add_manually_string">Použít řetězec pro vyhledávání</string>
+ <string name="search_add_manually_save">Uložit</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Příklad: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Nový vyhledávací modul byl přidán.</string>
+
+ <string name="search_add_error_empty_name">Zadejte název vyhledávače</string>
+ <string name="search_add_error_duplicate_name">Tento název už je používán nainstalovaným vyhledávacím modulem.</string>
+
+ <string name="search_add_error_empty_search">Zadejte hledaný řetězec</string>
+
+ <string name="search_add_error_format">Zkontrolujte, zda vyhledávací řetězec odpovídá formátu příkladu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Vymazat pole</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Zavřít</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Vymazat historii prohlížení</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Počet otevřených panelů: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Zabezpečené připojení</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Načítání</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Stránka načtena</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Další možnosti</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Tlačítko Další možnosti</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Přejít vpřed</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Obnovit stránku</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Návrat zpět</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Zastavit načítání stránky</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Návrat do předchozí aplikace</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Celkový počet zablokovaných sledovacích prvků</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blokovat sledovací prvky</string>
+
+ <string name="your_rights">Vaše práva</string>
+
+ <string name="external_app_prompt_title">Otevřít odkaz v jiné aplikaci</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Můžete opustit aplikaci %1$s a otevřít tento odkaz v aplikaci %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Najít aplikaci, která může otevřít odkaz</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Žádná z aplikací na vašem zařízení není schopná otevřít tento odkaz. Můžete opustit aplikaci %1$s a najít vhodnou aplikaci v obchodu %2$s.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Opustit režim anonymního prohlížení?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">Soubor %1$s byl stažen</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Otevřít</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Přidáno do zkratek</string>
+
+ <string name="error_hostLookup_title">Server nebyl nalezen</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Zavřít</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Vítá vás %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rychlost. Soukromí. Žádné rozptylování.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Začít</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s není jako ostatní prohlížeče</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Pro zvýšení vašeho soukromí vymažeme při zavření aplikace vaši historii.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Nastavte si aplikaci %1$s jako výchozí a chraňte tak svá data při každém otevření odkazu.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Nastavit jako výchozí prohlížeč</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Přeskočit</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Posuňte své soukromí na vyšší úroveň</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Anonymní prohlížení dostalo nový rozměr. Blokuje reklamy a další obsah, který vás sleduje napříč stránkami a zpomaluje načítání.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Vaše hledání, vaše cesta</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Hledáte něco jiného? V nastavení si zvolte jiný vyhledávací modul jako výchozí.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Přidejte si zkratky na vaši domovskou obrazovku</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">S aplikací %1$s se můžete rychle vrátit ke svým oblíbeným stránkám. Použijte „Přidat na domovskou obrazovku“ z nabídky aplikace %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Udělejte ze soukromí zvyk</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Nastavte si %1$s jako svůj výchozí prohlížeč a získejte výhody soukromého prohlížení kdykoliv otevřete odkaz z ostatních aplikací.</string>
+
+ <string name="firstrun_close_button">OK, rozumím!</string>
+ <string name="firstrun_skip_button">Přeskočit</string>
+ <string name="firstrun_next_button">Další</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Přidat</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ANO</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Zrušit</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NE</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Zkratka se bude otevírat s vypnutou ochranou proti sledování</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Relace anonymního prohlížení</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Oznámení aplikace %1$s vám umožní smazat historii jedním klepnutím. Nemusíte ani otevírat aplikaci nebo se dívat, co máte zrovna otevřeno.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Vymazat historii prohlížení</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Stáhnout Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s je otevřený software zdarma od Mozilly a jiných přispěvatelů.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s vám je zpřístupněn za podmínek <a href="%2$s">Mozilla Public License</a> a jiných open source licencí.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Nejsou vám však podstoupena žádná práva ani licence k ochranným známkám Mozilla Foundation či dalších stran, a to zejména k logům a názvům Mozilla, Firefox nebo %1$s. Podrobnější informace o ochranných známkách jsou dostupné <a href="%2$s">zde</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Další zdrojové kódy pro %1$s jsou dostupné pod dalšími různými <a href="%2$s">licencemi</a> svobodného softwaru.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s také používá seznamy společnosti Disconnect, Inc. poskytnuté jako samostatná a nezávislá díla pod licencí <a href="%2$s">GNU General Public License v3</a> a dostupné <a href="%3$s">zde</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Uživatelské jméno</string>
+ <string name="gv_prompt_password_hint">Heslo</string>
+ <string name="gv_prompt_clear">Vymazat</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Zabezpečené připojení</string>
+ <string name="security_popup_insecure_connection">Nezabezpečené připojení</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Ověřil: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Zabezpečení stránky</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL adresa už existuje</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Najít na stránce</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Najít na stránce</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d z %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Další výskyt</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Předchozí výskyt</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Ukončit hledání na stránce</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Verze stránky pro počítač</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Verze pro počítač</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL adresa zkopírována</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Vývojářské nástroje</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Otevírat odkazy v aplikacích</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Rozšířené</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Oprávnění serverů</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Omezení cookie lišt</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Zapnuto</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Vypnuto</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Omezení cookie lišt</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Omezuje zobrazování cookie lišt a bannerů odmítnutím jejich souhlasu, kdykoliv to je možné.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Omezení cookie lišt</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ZAPNUTO pro tento web</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Server není aktuálně podporován</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">VYPNUTO pro tento web</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Omezení cookie lišt</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">VYPNUTO pro tento web</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ZAPNUTO pro tento web</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Chcete zapnout omezení cookie lišt pro %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Chcete vypnout omezení cookie lišt pro %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s smaže cookies tohoto webu a stránku znovu načte. Vymazání všech cookies může způsobit vaše odhlášení nebo třeba vyprázdnění nákupního koše.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s se může pokusit automaticky odmítnout žádosti o povolení cookies.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Na tomto webu v tuto chvíli není omezení cookie lišt podporováno. Chcete náš tým požádat o kontrolu této stránky a za účelem budoucího přidání podpory?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Zrušit</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Požádat o přidání podpory</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Žádost o přidání podpory tohoto serveru byla odeslána.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Žádost o přidání podpory tohoto serveru byla odeslána.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s se pokouší odmítnout požadavky na soubory cookie, aby odmítl otravné bannery cookie.\n\nSpravujte předvolby lišt cookie v %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">nastavení</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automatické přehrávání</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Pro povolení:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Otevřete nastavení systému Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Zvolte <b>Oprávnění</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Přejít do nastavení</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Přepněte nastavení u <b>%1$s</b> na ZAP]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Fotoaparát</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Umístění</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Oznámení</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Obsah chráněný pomocí DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Vždy se zeptat</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blokováno</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Povoleno</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blokováno Androidem</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Povolit zvuk i video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blokovat automatické přehrávání zvuků</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Doporučené</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blokovat automatické přehrávání zvuků i videí</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studie</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox může čas od času instalovat a spouštět studie.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Zjistit více</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Pro použití změn se aplikace ukončí</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Odebrat</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktivní</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Dokončeno</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Vzdálené ladění pomocí USB//Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Odemknout</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Potvrďte pomocí otisku prstu</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Pro pokračování aktuální relace můžete použít otisk prstu.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Otevřít odkaz v nové relaci</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Ikonu otisku prstu</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Otisk prstu nebyl rozpoznán. Zkuste to znovu.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Pohyb prstem byl příliš rychlý. Zkuste to znovu.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Našeptávat dotazy pro vyhledávač?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">K realizaci našeptávání musí %1$s text napsaný do adresního řádku odesílat zvolenému vyhledávači.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ne</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Ano</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Některé vyhledávače nemohou návrhy zobrazit.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Zavřít</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Nechová se stránka podle očekávání?\n Zkuste vypnout ochranu proti sledování</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Mějte rychlý přístup k nejpoužívanějším stránkám%1$sNabídka > Přidat na domovskou obrazovku]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Otevírejte v aplikaci %1$s všechny odkazy\n Nastavte si %1$s jako výchozí prohlížeč</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Nechcete si doplňovat nejpoužívanější adresy\n Podržte prst na adrese v adresním řádku</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Otevírejte si odkazy v novém panelu\n Podržte prst na jakémkoliv odkazu na stránce</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Vypnout tipy na domovské stránce</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nový panel otevřen</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Přepnout</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Spuštěn režim celé obrazovky</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Přepnout ihned na odkaz v novém panelu</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Blokovat potenciálně nebezpečné a klamavé stránky</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blokuje hlášené klamavé a útočné stránky, stránky s malwarem a stránky s nevyžádaným obsahem.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Režim „pouze HTTPS“</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Pro zvýšení zabezpečení se automaticky pokusí připojit k webům pomocí šifrovacího protokolu HTTPS.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Výjimky</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Na těchto stránkách jste blokování obsahu vypnuli.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Odebrat</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Odebrat všechny stránky</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blokovat cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Chcete zablokovat cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Panel spadl</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Promiňte. S tímto panelem máme problém.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Jako soukromý prohlížeč tento panel nikdy neukládáme a nemůžeme obnovit.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Zavřít panel</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Poslat zprávu o pádu Mozille</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Sledovací prvky blokovány od %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Obsah</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Reklama</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Sociální sítě</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analytika</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Rozšířená ochrana proti sledování</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Ochrana je na tomto serveru vypnuta</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Ochrana je na tomto serveru zapnuta</string>
+
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Zabezpečené spojení</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Spojení není zabezpečené</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Blokované sledovací prvky a skripty</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Zpátky</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Odebrat</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Přejmenovat</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Přejmenovat</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Název zkratky</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Uložené a sdílené obrázky &lt;b&gt;nebudou&lt;/b&gt; smazány když smažete historii aplikace %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Vzhled</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Světlý</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Tmavý</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Podle nastavení spořiče baterie</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Podle nastavení zařízení</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Tento server nepodporuje HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s se pro větší bezpečnost pokouší používat zabezpečené připojení skrze protokol HTTPS vždy, kdy je to možné.
+<a href="%2$s">Dozvědět se více</a><br/><br/>
+Toto nastavení můžete změnit v části Nastavení -> Soukromí a zabezpečení > Zabezpečení.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Spojení není zabezpečené</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Tato chyba může být způsobena chybnou konfigurací serveru nebo někým, kdo se snaží vydávat za server. <br/><br/>
+ Pokud jste se k tomuto serveru už v minulosti úspěšně připojili, je možná chyba jenom dočasná, a můžete to zkusit znovu později.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Někdo se může snažit vydávat za zmiňovaný server a pokračovaní může být riskantní.</label>
+ <br><br>
+ <label>%1$s serveru <b>%2$s</b> nedůvěřuje, protože vydavatel zaslaného certifikátu je neznámý, certifikát je podepsaný sám sebou nebo server neposílá správné mezilehlé certifikáty.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Zavřít panel</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Máme je! Tomuto serveru jsme zabránili ve vašem sledování. Klepnutím na ikonu štítu se dozvíte, co bylo zablokováno.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Zavřít vyskakovací okno</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Jste chráněni!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Tato výchozí nastavení poskytují silnou ochranu. Můžete je ale jednoduše nastavit podle vlastních potřeb.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Zavřít</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Klepnutím sem vše vyhodíte do koše – historii, cookies, prostě vše – a začnete znovu v novém panelu.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Zavřít</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget vyhledávání</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Historie prohlížení vymazána 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Začněte svou relaci anonymního prohlížení a my budeme průběžně blokovat sledovací prvky a jiné zlé věci.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Necháme vás v anonymním prohlížení, ale příště můžete začít rychleji pomocí widgetu %1$s na Domovské obrazovce.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Přidat widget na domovskou obrazovku</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget přidán na domovskou obrazovku</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-cy/strings.xml b/mobile/android/focus-android/app/src/main/res/values-cy/strings.xml
new file mode 100644
index 0000000000..282a875345
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-cy/strings.xml
@@ -0,0 +1,1122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Diddymu</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Iawn</string>
+
+ <string name="action_save">Cadw</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Chwilio neu gyfeiriad gwe</string>
+
+ <string name="teaser">Pori preifat awtomatig.\nPori. Dileu. Eto.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Mae eich hanes pori wedi cael ei ddileu.</string>
+ <string name="feedback_erase2">Hanes pori wedi’i glirio</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Mae hanes pori\'r Tab wedi cael ei ddileu.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Chwilio am %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Rhannu…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Adrodd ar Fater Gwefan</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Agor yn %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Agor yn…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Ychwanegu i’r sgrin Cartref</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Ychwanegu at y Llwybrau Byr</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Tynnu o’r Llwybrau Byr</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Gosodiadau</string>
+ <string name="menu_about">Ynghylch</string>
+ <string name="menu_help">Cymorth</string>
+ <string name="menu_rights">Eich Hawliau</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Rhwystro tracwyr</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Gall ddiffodd hwn atal rhai problemau ar y wefan</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Rhwystro Cynnwys</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Diffodd i drwsio rhai gwefannau</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Grym %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Rhannu drwy</string>
+
+ <string name="notification_erase_title_android_14">Dileu hanes pori?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tapio neu gau\'r hysbysiad hwn i ddileu eich hanes pori yn ddiogel.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tapio neu lusgo\'r hysbysiad hwn i ddileu eich hanes pori yn ddiogel.</string>
+
+ <string name="notification_erase_text">Dileu hanes pori</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Agor</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Dileu ac Agor</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Dileu</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Dileu hanes pori</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Dileu ac agor</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Dileu ac agor %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Chwilio o fewn Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Chwilio o fewn Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Chwilio o fewn Focus Beta</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Chwilio o fewn Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>Gyda %1$s chi sy’n rheoli.</p>
+<p>Defnyddiwch ef fel porwr preifat:
+ <ul>
+ <li>Chwilio a phori o fewn yr ap</li>
+ <li>Rhwystro tracwyr (neu ddiweddaru’ch gosodiadau i ganiatáu tracwyr)</li>
+ <li>Dileu er mwyn dileu cwcis yn ogystal â hanes chwilio a phori</li>
+ </ul>
+</p>
+<p>Mae %1$s yn cael ei gynhyrchu gan Mozilla. Ein cenhadaeth yw meithrin Rhyngrwyd iach ac agored.<br/>
+<a href="%2$s">Dysgu rhagor</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Preifatrwydd a Diogelwch</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Tracio, mewngofnodion, dewisiadau data</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Gosod y rhagosodiad, awtogwblhau</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Ynghylch %1$s, cymorth</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Diogelwch Uwch Rhag Tracio</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Cynnwys Gwe</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Newid Apiau</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Cyffredinol</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Porwr rhagosodedig, iaith</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Casglu a Defnydd Data</string>
+
+ <string name="preference_category_search">Chwilio</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Derbyn awgrymiadau chwilio</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">Bydd %1$s yn anfon yr hyn rydych yn ei deipio yn y bar cyfeiriad i\'ch peiriant chwilio</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Rhagosodiad</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Peiriant chwilio</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Ymlaen</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Diffodd</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">AwtoGwblhau URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Am Hoff Wefannau</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Galluogi i %s awtogwblhau dros 450 URL poblogaidd yn y bar cyfeiriad.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Eich Gwefannau Chi</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Galluogi i %s awtogwblhau eich hoff URLau.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Rheoli gwefannau</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Rheoli gwefannau</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Ychwanegu URL cyfaddas</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Eich rhestr awtogwblhau:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Ychwanegu URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Ychwanegu URL cyfaddas</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Ychwanegu URL cyfaddas</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Ychwanegu dolen i awtogwblhau</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cwcis a Data Gwefan</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Dewisiadau Data</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Tynnu URLau cyfaddas</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Darllen rhagor</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Ychwanegu a rheoli URLs awtogwblhau cyfaddas.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URLau i\'w hychwanegu</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Gludo neu rhoi URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Esiampl: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Esiampl: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">URL cyfaddas newydd wedi ei ychwanegu.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Tynnu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Tynnu</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Gwiriwch yr URL rydych wedi ei roi.</string>
+
+ <string name="preference_language">Iaith</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Rhagosodiad y system</string>
+
+ <string name="preference_category_privacy">Preifatrwydd</string>
+ <string name="preference_privacy_block_ads">Rhwystro tracwyr hysbysebion</string>
+ <string name="preference_privacy_block_ads_summary">Mae rhai hysbysebion yn tracio ymweliadau â gwefannau, hyd yn oed heb i chi eu clicio</string>
+ <string name="preference_privacy_block_analytics">Rhwystro tracwyr dadansoddi</string>
+ <string name="preference_privacy_block_analytics_summary">Yn cael eu defnyddio i gasglu, dadansoddi a mesur gweithgareddau fel tapio a sgrolio</string>
+ <string name="preference_privacy_block_social">Rhwystro tracwyr cymdeithasol</string>
+ <string name="preference_privacy_block_social_summary">Wedi eu mewnblannu ar wefannau er mwyn tracio eich ymweliadau ac i ddangos swyddogaethau fel botymau rhannu</string>
+ <string name="preference_privacy_block_content">Rhwystro tracwyr cynnwys eraill</string>
+ <string name="preference_privacy_block_content_summary2">Gall ei alluogi achosi i rai tudalennau i ymddwyn yn rhyfedd</string>
+ <string name="preference_privacy_category_cookies">Rhwystro cwcis</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Dim diolch</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Rhwystro cwcis trydydd parti\'n unig</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Rhwystro cwcis trydydd parti\'n unig</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Rhwystro cwcis traws-gwefan</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Iawn!</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Defnyddio ôl bys i ddatgloi ap</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Datglowch gan ddefnyddio bysbrint os ydych wedi ychwanegu Llwybrau Byr neu pan fo gwefan eisoes ar agor yn %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Dirgel</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Cuddio tudalennau gwe wrth newid apiau a rhwystro cymryd lluniau sgrin.</string>
+
+ <string name="preference_category_security">Diogelwch</string>
+
+ <string name="preference_category_performance">Perfformiad</string>
+ <string name="preference_performance_block_webfonts">Rhwystro ffontiau Gwe</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Gall olygu colli eiconau neu ddelweddau</string>
+
+ <string name="preference_performance_block_javascript">Rhwystro JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Gall tudalennau lwytho\'n gynt, ond o bosib ymddwyn yn annisgwyl</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Gwneud %1$s yn borwr rhagosodedig</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Anfon data defnydd</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Darllen rhagor</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mae Mozilla\'n ceisio casglu dim ond yr hyn sydd ei angen arnom i ddarparu a gwella %1$s ar gyfer pawb.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Hysbysiad Preifatrwydd</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Manylion trwyddedu</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Llyfrgelloedd rydym yn eu defnyddio</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s| Llyfrgelloedd OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Ynghylch %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Peiriannau chwilio wedi eu gosod</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Dewis peiriant chwilio</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Adfer peiriannau chwilio rhagosodedig</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Ychwanegu peiriannau chwilio arall</string>
+ <string name="preference_search_remove_title">Tynnu peiriannau chwilio</string>
+ <string name="preference_search_remove">Tynnu</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Ychwanegu peiriannau chwilio arall</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Dewis eich hoff beiriant:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Ychwanegu peiriant chwilio</string>
+
+ <string name="search_add_manually_name_hint">Enw peiriant chwilio</string>
+ <string name="search_add_manually_string">Llinyn chwilio i’w ddefnyddio</string>
+ <string name="search_add_manually_save">Cadw</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Esampl: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Wedi ychwanegu peiriant chwilio.</string>
+
+ <string name="search_add_error_empty_name">Rhowch enw peiriant chwilio</string>
+ <string name="search_add_error_duplicate_name">Mae peiriant chwilio sydd wedi ei osod eisoes yn defnyddio\'r enw yna.</string>
+
+ <string name="search_add_error_empty_search">Rhowch linyn chwilio</string>
+
+ <string name="search_add_error_format">Gwiriwch fod y llinyn chwilio yn cyfateb i fformat Enghraifft</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Clirio\'r mewnbwn</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Cau</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Dileu hanes pori</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Tabiau agored: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Cysylltiadau diogel</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Llwytho</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Gwefan wedi ei lwytho</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Rhagor o ddewisiadau</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Rhagor o fotymau dewis</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Symud ymlaen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Ail-lwytho\'r wefan</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Symud nôl</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Atal llwytho\'r wefan</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Nôl i’r ap blaenorol</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Nifer o dracwyr wedi eu rhwystro</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Rhwystro tracwyr</string>
+
+ <string name="your_rights">Eich Hawliau</string>
+
+ <string name="external_app_prompt_title">Agor dolen mewn ap arall</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Gallwch adael i %1$s agor y ddolen yn %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Canfod ap sy\'n gallu agor dolen</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">0oes dim o\'r apiau ar eich dyfais yn gallu i agor y ddolen. Mae modd gofyn i %1$s chwilio %2$s am ap sy\' n gallu gwneud.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Gadael Pori Preifat?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s wedi gorffen</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Agor</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Ychwanegwyd at y llwybrau byr!</string>
+
+ <string name="error_hostLookup_title">Heb ganfod gweinydd</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Cau</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Croeso i %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Cyflym. Preifat. Dim tarfu.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Cychwyn arni</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">Nid yw %1$s yn debyg i borwyr eraill</string>
+
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Rydyn ni’n dileu eich hanes pan fyddwch chi’n cau’r ap er mwyn preifatrwydd ychwanegol.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Gwnewch %1$s eich porwr rhagosodedig i ddiogelu eich data gyda phob dolen rydych yn eu hagor.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Gosod fel y porwr ragosodedig</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Hepgor</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Cryfhewch eich preifatrwydd</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Cymrwch bori preifat i\'r lefel nesaf. Rhwystrwch hysbysebion a chynnwys arall sy\'n gallu\'ch tracio ar draws wefannau ac arafu amserau llwytho tudalennau.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Chwilio, cynhwysfawr</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Chwilio am rywbeth gwahanol? Dewiswch beiriant chwilio arall yn y Gosodiadau.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Ychwanegu llwybrau byr i\'ch sgrin cartref</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Ewch i\'ch hoff wefannau yn %1$s yn gyflym. Dewiswch \&quot;Ychwanegu i\'r Sgrin Cartref\&quot; o ddewislen %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Arfer preifatrwydd</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Gosodwch %1$s fel eich porwr ragosodedig a derbyn buddiannau pori preifat wrth agor tudalennau gwe mewn apiau eraill.</string>
+
+ <string name="firstrun_close_button">Iawn!</string>
+ <string name="firstrun_skip_button">Hepgor</string>
+ <string name="firstrun_next_button">Nesaf</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Ychwanegu</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">IAWN</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Diddymu</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NA</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Bydd y Llwybr Byr yn agor gyda Diogelwch rhag Tracio wedi ei analluogi</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sesiwn pori preifat</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Mae hysbysiadau\'n caniatáu i chi ddileu eich sesiwn %1$s gyda thap. Does dim angen agor yr ap na gweld beth sy\'n rhedeg yn eich porwr.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Dileu hanes pori</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Llwytho Firefox i Lawr</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[Mae %1$s yn feddalwedd cod agored a rhydd gan Mozilla a chyfranwyr eraill.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[Mae %1$s ar gael i chi o dan amodau <a href="%2$s">Trwydded Gyhoeddus Mozilla</a> a thrwyddedau cod agored eraill.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Nid ydych yn derbyn unrhyw hawliau na thrwyddedau i nod masnach y Mozilla Foundation neu unrhyw barti arall, gan gynnwys enwau a logos Mozilla, Firefox n %1$s. Mae gwybodaeth bellach i’w gael <a href="%2$s">yma</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Mae cod ffynhonnell ychwanegol ar gyfer %1$s ar gael o dan amrywiol <a href="%2$s">drwyddedau</a> rhydd a chod agored.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[Mae %1$s hefyd yn defnyddio rhestrau rhwystro sy’n cael eu darparu gan Disconnect, Inc. fel gweithiau ar wahân ac annibynnol o dan <a href="%2$s">Trwydded Gyhoeddus Gyffredinol GNU v3</a>, ac sydd ar gael <a href = "%3$s">yma</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Enw Defnyddiwr</string>
+ <string name="gv_prompt_password_hint">Cyfrinair</string>
+ <string name="gv_prompt_clear">Clirio</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Mae’r Cysylltiad yn Ddiogel</string>
+ <string name="security_popup_insecure_connection">Cysylltiad Anniogel</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Dilyswyd gan: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Diogelwch Gwefan</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL eisoes yn bod</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Canfod ar y Dudalen</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Canfod ar y dudalen</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d o %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Canfod y canlyniad nesaf</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Canfod y canlyniad blaenorol</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Cau’r canfod ar y dudalen</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Gwefan bwrdd gwaith</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Gwefan bwrdd gwaith</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL wedi’i gopïo</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Offer datblygwyr</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Agor dolenni mewn apiau</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Uwch</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Caniatâd gwefan</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Cyfyngu Baneri Cwcis</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Ymlaen</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Diffodd</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Cyfyngu Baneri Cwcis</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Gweld llai o faneri trwy wrthod ceisiadau cwcis yn awtomatig, pan fo modd.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Cyfyngu Baneri Cwcis</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">YMLAEN ar gyfer y wefan hon</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Nid yw’r wefan yn cael ei chefnogi ar hyn o bryd</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">DIFFODD ar gyfer y wefan hon</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Cyfyngu Baneri Cwcis</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">DIFFODD ar gyfer y wefan hon</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">YMLAEN ar gyfer y wefan hon</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Troi Llai o Faneri Cwcis ymlaen ar %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Diffodd Llai o Faneri Cwcis ar %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">Bydd %1$s yn clirio cwcis y wefan hon ac yn adnewyddu’r dudalen. Gall clirio pob cwci eich allgofnodi neu wagio eich certiau siopa.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">Gall %1$s geisio gwrthod ceisiadau cwcis yn awtomatig.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Nid yw’r wefan hon yn cael ei chefnogi ar hyn o bryd gan Llai o Faneri Cwcis. Hoffech chi ofyn i’n tîm adolygu’r wefan hon ac ychwanegu cefnogaeth yn y dyfodol?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Diddymu</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Gofyn am gymorth</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Cais i’r wefan cymorth wedi’i gyflwyno.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Cais i’r wefan cymorth wedi’i gyflwyno.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">Mae %1$s yn ceisio gwrthod ceisiadau cwci i gau baneri cwci annifyr.\n\nRheolwch ddewisiadau baneri cwci yn y %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">gosodiadau</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Awtochwarae</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">I’w ganiatáu:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Ewch i Gosodiadau Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tapiwch <b>Caniatâd</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Mynd i’r gosodiadau</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Toglo <b>%1$s</b> i YMLAEN]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Camera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Meicroffon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Lleoliad</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Hysbysiad</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Cynnwys wedi’i reoli gan DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Gofyn i ganiatáu</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Rhwystrwyd</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Caniatawyd</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Rhwystrwyd gan Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Caniatáu sain a fideo</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Rhwystro sain yn unig</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Cymeradwy</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Rhwystro sain a fideo</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Astudiaethau</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Efallai y bydd Firefox yn gosod a rhedeg astudiaethau o bryd i’w gilydd.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Darllen rhagor</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Bydd yr ap yn cau er mwyn gosod y newidiadau</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Tynnu</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Gweithredol</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Cwblhawyd</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Dadfygio pell drwy\'r USB/Diwifr</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Datgloi</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Cadarnhau Defnyddio Eich Bysbrint</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Gallwch ddefnyddio’ch bysbrint i barhau â’ch sesiwn ap gyfredol.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Agor Dolen mewn Sesiwn Newydd</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Eicon ôl bys</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Ôl bys heb ei adnabod. Ceisiwch eto.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Symudodd y bys yn rhy gyflym. Ceisiwch eto.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Dangos awgrymiadau chwilio?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">I dderbyn awgrymiadau, mae %1$s angen anfon yr hyn rydych chi’n ei deipio yn y bar cyfeiriad i’r peiriant chwilio.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Na</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Iawn</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Nid yw rhai peiriannau chwilio\'n gallu dangos awgrymiadau.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Cau</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Gwefan yn ymddwyn yn anisgwyl?\n Ceisiwch ddiffodd Diogelwch rhag Tracio</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Mynediad un tap i\'r gwefannau rydych yn eu defnyddio amlaf%1$s Dewislen > Ychwanegu i\'r Dudalen Cartref]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Agor pob dolen yn %1$s\n Gosod %1$s fel y porwr rhagosodedig</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Gosod URLau awtogwblhau i\'ch gwefannau gorau\n Pwyso\'n hir unrhyw URL yn y bar cyfeiriad</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Agor dolen mewn tab newydd\n Pwyso\'n hir ar unrhyw ddolen ar dudalen</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Diffodd awgrymiadau ar y sgrin cychwyn</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Tab newydd wedi ei agor</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Newid</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Mynd i’r sgrin lawn</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Newid i ddolen mewn tab newydd ar unwaith</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Rhwystro gwefannau peryglus a thwyllodrus posib</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Rhwystro gwefannau twyllodrys ac ymosodol, rhai drwgwar, a meddalwedd diangen hysbys.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Modd HTTPS-yn-Unig</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Yn ceisio cysylltu’n awtomatig â gwefannau gan ddefnyddio’r protocol amgryptio HTTPS am fwy o ddiogelwch.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Eithriadau</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Rydych chi wedi analluogi Rhwystro Cynnwys y gwefannau hyn.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Tynnu</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Tynnu pob gwefan</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Rhwystro Cwcis</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Hoffech chi rwystro cwcis?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Tab wedi Chwalu</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Ymddiheuriadau. Rydym yn cael anhawster gyda\'r tab hwn.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Fel porwr preifat, fyddwn ni byth yn cadw ac felly\'n methu adfer y tab hwn.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Cau Tab</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Anfon adroddiad chwalu at Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Tracwyr wedi’u rhwystro ers %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Cynnwys</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Hysbysebu</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Cymdeithasol</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Dadansoddeg</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Diogelwch Uwch Rhag Tracio</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Mae diogelu I FFWRDD ar gyfer y wefan hon</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Mae diogelu YMLAEN ar gyfer y wefan hon</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Cysylltiad yn ddiogel</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Nid yw’r cysylltiad yn ddiogel</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Tracwyr a Sriptiau i’w Rhwystro</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Mynd nôl</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Tynnu</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Ailenwi</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Ailenwi</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Enw llwybr byr</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Fydd delweddau sydd wedi eu cadw a’u rhannu &lt;b&gt;ddim yn cael eu dileu&lt;/b&gt; pan fyddwch yn dileu hanes %1$s.</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Thema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Golau</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Tywyll</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Gosodwyd gan yr Arbedwr Batri</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Dilyn thema’r ddyfais</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Nid yw’r wefan hon yn cefnogi HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[Mae %1$s yn ceisio defnyddio cysylltiad HTTPS pryd bynnag y bo modd i fod yn fwy diogel.
+ <a href="%2$s">Dysgu rhagor</a> <br/><br/>
+ Newidiwch y gosodiad hwn yn Gosodiadau > Preifatrwydd a Diogelwch > Diogelwch.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Nid yw’r cysylltiad yn ddiogel</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Gall hyn fod yn broblem gyda ffurfweddiad y gweinydd, neu gall fod yn rhywun sy’n ceisio dynwared y gweinydd. <br/><br/>
+ Os ydych wedi cysylltu â’r gweinydd hwn yn llwyddiannus yn y gorffennol, gall y gwall fod yn un dros dro.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Gall rhywun fod yn ceisio dynwared y wefan a gall mynd ymlaen fod yn beryglus.</label>
+ <br><br>
+ <label> Nid yw %1$s yn ymddiried yn <b>%2$s</b> oherwydd bod cyhoeddwr ei dystysgrif yn anhysbys, maer dystysgrif wedi’i hunan-lofnodi, neu nid yw’r gweinydd yn anfon y tystysgrifau canolradd cywir.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Cau tab</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Wedi’u dal! Rydym wedi rhwystro’r wefan hon rhag ysbïo arnoch chi. Tapiwch y darian i gael gwybodaeth am yr hyn rydyn ni’n eu rhwystro.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Cau’r llamlen</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Rydych wedi’ch diogelu!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Mae’r gosodiadau rhagosodedig hyn yn cynnig diogelwch cryf. Ond mae’n hawdd newid y gosodiadau i ddiwallu’ch anghenion penodol.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Cau</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tapiwch yma i roi’r cyfan yn y bin sbwriel - hanes, cwcis, popeth - a dechrau’n ffres ar dab newydd.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Cau</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Chwilio teclyn</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Hanes pori wedi’i glirio! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Cychwynnwch eich sesiwn bori breifat, a byddwn yn rhwystro tracwyr a phethau drwg eraill wrth i chi fynd ymlaen.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Byddwn yn eich gadael i’ch pori preifat, ond yn cael cychwyn cyflymach y tro nesaf gyda’r teclyn %1$s ar eich sgrin Cartref.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Ychwanegu teclyn i’r sgrin cartref</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Teclyn wedi’i ychwanegu i’r sgrin cartref</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-da/strings.xml b/mobile/android/focus-android/app/src/main/res/values-da/strings.xml
new file mode 100644
index 0000000000..f2872a655b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-da/strings.xml
@@ -0,0 +1,1122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Annuller</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Gem</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Søg eller indtast adresse</string>
+
+ <string name="teaser">Automatisk privat browsing.\nSurf. Slet. Start forfra.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Din browser-historik er blevet slettet.</string>
+
+ <string name="feedback_erase2">Browserhistorik blev ryddet</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Fanebladets historik er slettet.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Søg efter %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Del…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Rapportér problem med websted</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Åbn i %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Åbn i…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Føj til startskærmen</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Føj til genveje</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Fjern fra genveje</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Indstillinger</string>
+ <string name="menu_about">Om</string>
+ <string name="menu_help">Hjælp</string>
+ <string name="menu_rights">Dine rettigheder</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Forsøg på sporing blokeret</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Deaktivering af dette kan afhjælpe visse webstedsproblemer</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blokering af indhold</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Deaktiver for at løse problemer på visse websteder</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Del via</string>
+
+ <string name="notification_erase_title_android_14">Slet browser-historik?</string>
+
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tryk på eller ryd denne meddelelse for at slette din browser-historik på en sikker måde.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tryk på eller stryg denne meddelelse for at slette din browser-historik på en sikker måde.</string>
+
+ <string name="notification_erase_text">Slet browser-historik</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Åbn</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Slet og åbn</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Slet</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Slet browser-historik</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Slet og åbn</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Slet og åbn %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Søg i Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Søg i Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Søg i Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Søg i Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s giver dig fuld kontrol.</p>
+<p>Anvend den som privat browser:
+ <ul>
+ <li>Søg og surf direkte i appen</li>
+ <li>Bloker sporing (eller opdater indstillingerne og tillad sporing)</li>
+ <li>Fjern nemt cookies samt søge- og browser-historik</li>
+ </ul>
+</p>
+<p>%1$s er udviklet af Mozilla. Vores formål er at fremme et sundt, åbent internet.<br/>
+<a href="%2$s">Læs mere</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privatliv og sikkerhed</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Sporing, cookies, datadeling</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Angiv standard, autofuldførelse</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Om %1$s, hjælp</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Udvidet beskyttelse mod sporing</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Webindhold</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Skifte mellem apps</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Generelt</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Standard-browser, sprog</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Dataindsamling og brug</string>
+
+ <string name="preference_category_search">Søgning</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Vis søgeforslag</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s sender det indtastede i adresselinjen til den valgte søgetjeneste</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Standard</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Søgetjeneste</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Aktiveret</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Deaktiveret</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Autofuldfør URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">For populære websteder</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Slå til for at få %s til at autofuldføre over 450 populære URLer i adressefeltet.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">For websteder du tilføjer</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Slå til for at få %s til at autofuldføre dine foretrukne URLer.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Administrer websteder</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Administrer websteder</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Tilføj brugerdefineret URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Din autofuldførelses-liste:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Tilføj URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Tilføj brugerdefineret URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Tilføj brugerdefineret URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Tilføj link til autofuldførelse</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies og websteds-data</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Datadeling</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Fjern brugerdefinerede URL\'er</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Læs mere</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Tilføj og håndter brugerdefineret autofuldførelse af URL\'er.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL der skal tilføjes</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Indsæt eller skriv URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Eksempel: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Eksempel: eksempel.dk</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Ny brugerdefineret URL tilføjet.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Fjern</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Fjern</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Kontroller den indtastede URL.</string>
+
+ <string name="preference_language">Sprog</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Systemstandard</string>
+
+ <string name="preference_category_privacy">Privatliv</string>
+ <string name="preference_privacy_block_ads">Bloker sporing via reklamer</string>
+ <string name="preference_privacy_block_ads_summary">Nogle reklamer sporer dine besøg på websteder, selvom du ikke klikker på dem</string>
+ <string name="preference_privacy_block_analytics">Bloker analytisk sporing</string>
+ <string name="preference_privacy_block_analytics_summary">Bruges til at indsamle, analysere og måle aktiviteter som tryk og scrolling</string>
+ <string name="preference_privacy_block_social">Bloker sporing via sociale medier</string>
+ <string name="preference_privacy_block_social_summary">Indlejret på websteder for at spore dine besøg og vise funktionalitet som dele-knapper</string>
+ <string name="preference_privacy_block_content">Bloker andre former for indholdssporing</string>
+ <string name="preference_privacy_block_content_summary2">Aktivering kan medføre, at visse sider opfører sig uventet</string>
+ <string name="preference_privacy_category_cookies">Bloker cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Nej tak</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Bloker kun sporings-cookies fra tredjepart</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Bloker kun cookies fra tredjepart</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Bloker cookies på tværs af websteder</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ja tak</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Brug fingeraftryk til at låse appen op</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Lås op med dit fingeraftryk, hvis du har tilføjet genveje eller når et websted allerede er åbent i %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Usynlig</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Skjul indhold på listen over de seneste brugte apps, og undgå at der tages skærmbilleder.</string>
+
+ <string name="preference_category_security">Sikkerhed</string>
+
+ <string name="preference_category_performance">Ydelse</string>
+ <string name="preference_performance_block_webfonts">Bloker webskrifttyper</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Kan medføre at ikoner eller billeder mangler</string>
+
+ <string name="preference_performance_block_javascript">Bloker JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Sider indlæses muligvis hurtigere, men kan også opføre sig uventet</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Angiv %1$s som standard-browser</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Send data for anvendelse</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Læs mere</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla tilstræber kun at indsamle, hvad vi skal bruge for at kunne udbyde og forbedre %1$s for alle.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Privatlivserklæring</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Licensinformation</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Biblioteker, som vi bruger</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS-biblioteker</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Om %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Installerede søgetjenester</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Vælg søgetjeneste</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Gendan standard-søgetjenester</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Tilføj en ny søgetjeneste</string>
+ <string name="preference_search_remove_title">Fjern søgetjenester</string>
+ <string name="preference_search_remove">Fjern</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Tilføj en ny søgetjeneste</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Vælg din foretrukne søgetjeneste:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Tilføj søgetjeneste</string>
+
+ <string name="search_add_manually_name_hint">Søgetjenestens navn</string>
+ <string name="search_add_manually_string">Søgestreng der skal anvendes</string>
+ <string name="search_add_manually_save">Gem</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Eksempel: eksempel.dk/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Ny søgetjeneste tilføjet.</string>
+
+ <string name="search_add_error_empty_name">Indtast søgetjenestens navn</string>
+ <string name="search_add_error_duplicate_name">En installeret søgetjeneste bruger allerede dette navn.</string>
+
+ <string name="search_add_error_empty_search">Indtast søgestreng</string>
+
+ <string name="search_add_error_format">Kontroller at søgestrengens format svarer til eksemplets</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Ryd adressefeltet</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Afvis</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Slet browser-historik</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Åbne faneblade: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Sikker forbindelse</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Siden indlæses</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Siden er indlæst</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Flere indstillinger</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Knap til flere muligheder</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Gå frem</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Genindlæs siden</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Gå tilbage</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Afbryd indlæsning af siden</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Tilbage til forrige app</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Antal blokerede sporings-tjenester</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Bloker sporing</string>
+
+ <string name="your_rights">Dine rettigheder</string>
+
+ <string name="external_app_prompt_title">Åbn link i en anden app</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Du kan forlade %1$s og åbne dette link i %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Find en app der kan åbne linket</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ingen app på din enhed kan åbne dette link. Du kan forlade %1$s og søge på %2$s efter en app der kan.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Afslut privat browsing?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s hentet</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Åbn</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Føjet til genveje!</string>
+
+ <string name="error_hostLookup_title">Serveren blev ikke fundet</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Luk</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Velkommen til %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Hurtig. Privat. Ingen distraktioner.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Kom i gang</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s er ikke som andre browsere</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Vi rydder din historik for ekstra privatlivsbeskyttelse, når du lukker appen.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Gør %1$s til din standard-browser for at beskytte dine data, hver gang du åbner et link.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Angiv som standard-browser</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Spring over</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Styrk dit privatliv</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Tag privat browsing til næste niveau. Bloker reklamer og andet indhold, der kan spore din færden på nettet og gøre det langsommere at hente sider.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Søgning på dine præmisser</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Leder du efter noget andet? Vælg en ny standard-søgetjeneste i Indstillinger.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Tilføj genveje til din startskærm</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Gå hurtigt tilbage til dine yndlingssider i %1$s. Vælg blot \&quot;Føj til startskærmen\&quot; fra menuen i %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Gør beskyttelse af dit privatliv til en vane</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Angiv %1$s som din standard-browser og få fordelene ved privat browsing, når du åbner websider fra andre apps.</string>
+
+ <string name="firstrun_close_button">OK, forstået!</string>
+ <string name="firstrun_skip_button">Spring over</string>
+ <string name="firstrun_next_button">Næste</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Tilføj</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">JA</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Annuller</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NEJ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Når genvejen åbnes vil Udvidet Sporingsbeskyttelse være slået fra</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Privat browsing-session</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Med beskeder kan du slette din %1$s-session med et enkelt tryk. Du behøver hverken åbne appen eller se, hvad der kører i din browser.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Slet browser-historik</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Hent Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s er frit og åbent software, udviklet af Mozilla og andre bidragydere.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s er tilgængelig under de vilkår, der er fastsat i <a href="%2$s">Mozilla Public License</a> og andre licenser til åben kildekode.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Du bliver ikke givet nogen ret eller licens til varemærker tilhørende Mozilla Foundation eller tredjepart, herunder navn og logo for Mozilla, Firefox og %1$s. Få flere oplysninger <a href="%2$s">her</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Yderligere gratis og åben kildekode til %1$s er tilgængelig under diverse <a href="%2$s">licenser</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s benytter sig også af blokeringslister fra Disconnect, Inc. som adskilte og uafhængige værker under <a href="%2$s">GNU General Public License v3</a>. Listerne er tilgængelige <a href="%3$s">her</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Brugernavn</string>
+ <string name="gv_prompt_password_hint">Adgangskode</string>
+ <string name="gv_prompt_clear">Ryd</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Sikker forbindelse</string>
+ <string name="security_popup_insecure_connection">Usikker forbindelse</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Bekræftet af: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Sikkerhed for webstedet</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL\'en findes allerede</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Find på side</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Find på siden</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d af %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Find næste</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Find foregående</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Deaktiver find på siden</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Bed om desktop-version</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Desktop-version</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL kopieret</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Udviklerværktøj</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Åbn links i apps</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avanceret</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Websteds-indstillinger</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reduktion af cookie-bannere</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Til</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Fra</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reduktion af cookie-bannere</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Se færre bannere ved automatisk at afvise cookie-anmodninger, når det er muligt.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reduktion af cookie-bannere</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Slået TIL for dette websted</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Webstedet understøttes ikke i øjeblikket</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Slået FRA for dette websted</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reduktion af cookie-bannere</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Slået FRA for dette websted</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Slået TIL for dette websted</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Vil du slå reduktion af cookie-bannere til for %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Vil du slå reduktion af cookie-bannere fra for %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s vil rydde dette websteds cookies og genindlæse siden. Rydning af alle cookies kan logge dig ud eller tømme indkøbskurve.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s kan forsøge at afvise cookie-anmodninger automatisk.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Dette websted understøttes i øjeblikket ikke af reduktion af cookie-bannere. Vil du anmode vores team om at gennemgå dette websted for at det kan understøttes i fremtiden?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Annuller</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Anmod om understøttelse</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Anmodning om understøttelse af websted indsendt.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Anmodning om understøttelse af websted indsendt.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s prøver på at afvise cookie-anmodninger for at lukke irriterende cookie-bannere.\n\nHåndter indstillinger for cookie-bannere i %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">Indstillingerne</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automatisk afspilning</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">For at tillade:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Gå til Indstillinger i Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tryk på <b>Tilladelser</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Gå til indstillinger</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Slå <b>%1$s</b> TIL]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Placering</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Meddelelser</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-kontrolleret indhold</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Spørg om tilladelse</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blokeret</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Tilladt</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blokeret af Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Tillad lyd og video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Bloker kun lyd</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Anbefalet</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Bloker lyd og video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Undersøgelser</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox kan installere og afvikle undersøgelser.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Læs mere</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Appen afsluttes for at anvende ændringerne</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Fjern</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktive</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Gennemførte</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Ekstern debugging via USB/wi-fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Lås op</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Bekræft ved hjælp af dit fingeraftryk</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Du kan bruge dit fingeraftryk til at fortsætte din aktuelle app-session.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Åbn link i en ny session</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Fingeraftryks-ikon</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Fingeraftryk ikke genkendt. Prøv igen.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Fingeren bevægede sig for hurtigt. Prøv igen.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Vis søgeforslag?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">For at kunne vise søgeforslag sender %1$s dine indtastninger i søgefeltet til søgetjenesten.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Nej</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Ja</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Nogle søgetjenester kan ikke vise forslag.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Luk</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Opfører siden sig uventet?\n Prøv at deaktivere beskyttelse mod sporing</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Få adgang til dine mest brugte sider med et enkelt tryk%1$s Menu > Føj til startskærmen]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Åbn alle links i %1$s\n Angiv %1$s som standard-browser</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Autofuldfør URL\'er for de sider, du bruger mest\n Tryk og hold en URL i adressefeltet</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Åbn link i et nyt faneblad\n Tryk og hold links på en side</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Slå tips på startskærmen fra</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nyt faneblad er åbnet</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Skift</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Fuldskærmstilstand aktiveret</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Skift straks til link i nyt faneblad</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Bloker potentielt farlige og vildledende websteder</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Bloker sider, der er indrapporteret som vildledende, farlige, indeholdende malware eller uønsket software.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Tilstanden Kun-HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Forsøger automatisk at oprette forbindelse til websteder ved hjælp af krypteringsprotokollen HTTPS for øget sikkerhed.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Undtagelser</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Du har deaktiveret blokering af indhold for disse websteder.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Fjern</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Fjern alle websteder</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Bloker cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Vil du blokere cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Fanebladet gik ned</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Beklager, vi har et problem med denne fane.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Som en privat browser gemmer vi aldrig, så vi kan ikke gendanne dette faneblad.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Luk faneblad</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Send fejlrapport til Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Blokerede sporings-mekanismer blokeret siden %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Indhold</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Reklamer</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analyse</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Udvidet beskyttelse mod sporing</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Beskyttelse er slået FRA for dette websted</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Beskyttelse er slået TIL for dette websted</string>
+
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Forbindelsen er sikker</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Forbindelsen er ikke sikker</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Sporings-mekanismer og scripts, der skal blokeres</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Gå tilbage</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Fjern</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Omdøb</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Omdøb</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Genvejsnavn</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Gemte og delte billeder &lt;b&gt;vil ikke blive slettet,&lt;/b&gt; når du sletter historikken i %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Lyst</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Mørkt</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Indstil med strømstyring</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Samme som enhedens tema</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Dette websted understøtter ikke HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s prøver om muligt at benytte en HTTPS-forbindelse for mere sikkerhed.
+ <a href="%2$s">Læs mere</a> <br/><br/>
+ Skift denne indstilling i Indstillinger > Privatliv og sikkerhed > Sikkerhed.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Forbindelsen er ikke sikker</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Dette kan være et problem med serverens konfiguration, eller det kan betyde, at nogen forsøger at give sig ud for at være serveren. <br/><br/>
+ Hvis du har kunnet tilgå serveren tidligere, kan dette problem være midlertidigt.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Nogen kan have lavet en falsk version af webstedet, og det kan være risikabelt at fortsætte.</label>
+ <br><br>
+ <label>%1$s stoler ikke på <b>%2$s</b>, fordi udstederen af webstedets certifikat er ukendt, fordi certifikatet er underskrevet af indehaveren selv, eller fordi serveren ikke sender de korrekte mellemliggende certifikater.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Luk faneblad</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Taget på fersk gerning! Vi forhindrede dette websted i at udspionere dig. Tryk på skjoldet når som helst for at se, hvad vi blokerer.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Luk pop op</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Du er beskyttet!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Disse standard-indstillinger giver stærk beskyttelse. Men det er nemt at tilpasse indstillingerne, så de opfylder dine specifikke behov.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Afvis</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tryk her for at slette det hele — historik, cookies, alt — og start på en frisk i et nyt faneblad.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Luk</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Søge-widget</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Browserhistorik blev ryddet! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Start din private browsing-session - vi blokerer sporings-mekanismer og andet skidt.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Vi overlader dig til din private browsing, men få en hurtigere start næste gang med %1$s-widget\'en på din startskærm.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Føj widget til startskærmen</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget føjet til startskærmen</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-de/strings.xml b/mobile/android/focus-android/app/src/main/res/values-de/strings.xml
new file mode 100644
index 0000000000..4610dab3c2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-de/strings.xml
@@ -0,0 +1,1120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Abbrechen</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Speichern</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Suchen oder Adresse eingeben</string>
+
+ <string name="teaser">Automatischer Privater Modus.\nSurfen. Löschen. Wiederholen.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Die Surf-Chronik wurde gelöscht.</string>
+ <string name="feedback_erase2">Surf-Chronik gelöscht</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Die Surf-Chronik des Tabs wurde gelöscht.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Suchen nach %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Teilen …</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Seitenproblem melden</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">In %1$s öffnen</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Öffnen in…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Zum Startbildschirm hinzufügen</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Zu Verknüpfungen hinzufügen</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Aus Verknüpfungen entfernen</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Einstellungen</string>
+ <string name="menu_about">Über</string>
+ <string name="menu_help">Hilfe</string>
+ <string name="menu_rights">Ihre Rechte</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Verfolger blockiert</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Wenn Sie diese Option deaktivieren, werden möglicherweise einige Probleme mit der Website behoben</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Inhaltsblockierung</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Deaktivieren, um Probleme mit manchen Websites zu lösen</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Bereitgestellt von %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Teilen über</string>
+
+ <string name="notification_erase_title_android_14">Browser-Chronik löschen?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tippen oder löschen Sie diese Benachrichtigung, um Ihre Browser-Chronik sicher zu löschen.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tippen oder wischen Sie diese Benachrichtigung, um Ihre Browser-Chronik sicher zu löschen.</string>
+
+ <string name="notification_erase_text">Browser-Chronik löschen</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Öffnen</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Löschen und öffnen</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Löschen</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Browser-Chronik löschen</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Löschen &amp; Öffnen</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Löschen und %1$s öffnen</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">In Focus suchen</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">In Klar suchen</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">In Focus Beta suchen</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">In Focus Nightly suchen</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s gibt Ihnen die Kontrolle.</p>
+<p>Verwenden Sie ihn als privaten Browser:
+ <ul>
+ <li>Suchen und blättern Sie in der App</li>
+ <li>Blockieren Sie Tracker (oder aktualisieren Sie die Einstellungen, um Tracker zu erlauben)</li>
+ <li>Entfernen Sie Cookies, um Such- und Browserverlauf zu löschen</li>
+ </ul>
+</p>
+<p>%1$s wird von Mozilla entwickelt. Unsere Mission ist es, ein gesundes, offenes Internet zu fördern.<br/>
+<a href="%2$s">Erfahren Sie mehr</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Datenschutz &amp; Sicherheit</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Aktivitätenverfolgung, Cookies, Datenübermittlung</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Als Standard setzen, automatisch vervollständigen</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Über %1$s, Hilfe</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Verbesserter Tracking-Schutz</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Web-Inhalt</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Apps wechseln</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Allgemein</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Standardbrowser, Sprache</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Sammlung und Nutzung von Daten</string>
+
+ <string name="preference_category_search">Suche</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Suchvorschläge erhalten</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s übermittelt Ihre Eingaben in die Adressleiste an Ihre Suchmaschine</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Standard</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Suchmaschine</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">An</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Aus</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Adressen-Autovervollständigung</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Für meistbesuchte Seiten</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Aktivieren Sie diese Option, damit %s über 450 beliebte Adressen in der Adressleiste automatisch vervollständigt.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Für Websites, die Sie hinzufügen</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Aktivieren Sie diese Option, damit %s Ihre Lieblingsadressen automatisch vervollständigt.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Websites verwalten</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Websites verwalten</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Benutzerdefinierte Adresse hinzufügen</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Ihre Autovervollständigungsliste:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL hinzufügen</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Benutzerdefinierte Adresse hinzufügen</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Benutzerdefinierte Adresse hinzufügen</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Link zum Autovervollständigen hinzufügen</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies und Websitedaten</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Datenübermittlung</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Benutzerdefinierte Adressen entfernen</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Weitere Informationen</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Benutzerdefinierte Adressen für Autovervollständigung hinzufügen und verwalten.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Hinzuzufügende Adresse</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Adresse eingeben oder einfügen</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Beispiel: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Beispiel: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Neue benutzerdefinierte Adresse hinzugefügt.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Entfernen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Entfernen</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Überprüfen Sie die eingegebene Adresse.</string>
+
+ <string name="preference_language">Sprache</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Systemstandard</string>
+
+ <string name="preference_category_privacy">Datenschutz</string>
+ <string name="preference_privacy_block_ads">Werbeverfolgung blockieren</string>
+ <string name="preference_privacy_block_ads_summary">Manche Werbeanzeigen verfolgen Ihre Seitenbesuche, auch wenn Sie nicht auf die Anzeigen klicken</string>
+ <string name="preference_privacy_block_analytics">Analyseverfolgung blockieren</string>
+ <string name="preference_privacy_block_analytics_summary">Damit werden Aktivitäten wie Tippen und Blättern gesammelt, analysiert und ausgewertet</string>
+ <string name="preference_privacy_block_social">Verfolgung durch soziale Netzwerke blockieren</string>
+ <string name="preference_privacy_block_social_summary">Auf Websites eingebettet, um Ihre Besuche zu verfolgen und Funktionen wie Links zum Teilen anzuzeigen</string>
+ <string name="preference_privacy_block_content">Andere Inhaltsverfolgung blockieren</string>
+ <string name="preference_privacy_block_content_summary2">Dies kann dazu führen, dass manche Seiten sich ungewöhnlich verhalten</string>
+ <string name="preference_privacy_category_cookies">Cookies blockieren</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Nein, danke</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Nur Tracker-Cookies von Drittanbietern blockieren</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Nur Cookies von Drittanbietern blockieren</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Seitenübergreifende Cookies blockieren</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ja, bitte</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Fingerabdruck zum Entsperren der App verwenden</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Mit Fingerabdruck entsperren, wenn Sie Verknüpfungen hinzugefügt haben oder wenn eine Website bereits in %s geöffnet ist.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Tarnung</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Webseiten beim Wechseln von Apps verstecken und Aufnahme von Bildschirmfotos blockieren.</string>
+
+ <string name="preference_category_security">Sicherheit</string>
+
+ <string name="preference_category_performance">Leistung</string>
+ <string name="preference_performance_block_webfonts">Web-Schriftarten blockieren</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Kann zu fehlenden Symbolen oder Grafiken führen</string>
+
+ <string name="preference_performance_block_javascript">JavaScript blockieren</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Seiten laden schneller, verhalten sich aber möglicherweise unerwartet</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s als Standardbrowser festlegen</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Nutzungsdaten senden</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Mehr erfahren</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla ist bestrebt, nur die Informationen zu sammeln, mit denen wir %1$s anbieten und für alle Nutzer verbessern können.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Datenschutzhinweis</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Informationen zur Lizenzierung</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Von uns verwendete Bibliotheken</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS-Bibliotheken</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Über %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Installierte Suchmaschinen</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Suchmaschine auswählen</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Standardsuchmaschinen wiederherstellen</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Weitere Suchmaschine hinzufügen</string>
+ <string name="preference_search_remove_title">Suchmaschinen entfernen</string>
+ <string name="preference_search_remove">Entfernen</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Weitere Suchmaschine hinzufügen</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Wählen Sie Ihre bevorzugte Suchmaschine:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Suchmaschine hinzufügen</string>
+
+ <string name="search_add_manually_name_hint">Name der Suchmaschine</string>
+ <string name="search_add_manually_string">Zu verwendender Such-String</string>
+ <string name="search_add_manually_save">Speichern</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Beispiel: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Neue Suchmaschine hinzugefügt.</string>
+
+ <string name="search_add_error_empty_name">Name der Suchmaschine eingeben</string>
+ <string name="search_add_error_duplicate_name">Es ist bereits eine Suchmaschine installiert, die diesen Namen verwendet.</string>
+
+ <string name="search_add_error_empty_search">Such-String eingeben</string>
+
+ <string name="search_add_error_format">Überprüfen Sie, ob der Such-String dem Beispielformat entspricht</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Eingabefeld leeren</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Schließen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Browser-Chronik löschen</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Offene Tabs: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Sichere Verbindung</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Wird geladen …</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Website geladen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Weitere Optionen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Schaltfläche für weitere Optionen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Vorwärts navigieren</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Website neu laden</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Rückwärts navigieren</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Laden der Website stoppen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Zurück zur vorherigen App</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Zahl blockierter Verfolger</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Verfolger blockieren</string>
+
+ <string name="your_rights">Ihre Rechte</string>
+
+ <string name="external_app_prompt_title">Link in anderer App öffnen</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Sie können %1$s verlassen, um diesen Link in %2$s zu öffnen.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">App zum Öffnen des Links finden</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Anscheinend kann keine der Apps auf Ihrem Gerät diesen Link öffnen. Sie können %1$s verlassen und bei %2$s nach einer App dafür suchen.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Privaten Modus verlassen?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s abgeschlossen</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Öffnen</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Zu Verknüpfungen hinzugefügt!</string>
+
+ <string name="error_hostLookup_title">Server nicht gefunden</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Schließen</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Willkommen bei %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Schnell. Privat. Keine Ablenkungen.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Erste Schritte</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s ist nicht wie andere Browser</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Wir löschen Ihre Chronik und verbessern so den Datenschutz, wenn Sie die App schließen.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Legen Sie %1$s als Standard fest, um Ihre Daten bei jedem geöffneten Link zu schützen.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Als Standardbrowser festlegen</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Überspringen</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Stärken Sie Ihre Privatsphäre</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Privates Surfen auf einer höheren Stufe. Blockieren Sie Werbung und andere Inhalte, die Sie über Websites hinweg verfolgen können und Seitenladezeiten verlängern.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Ihre Suche, wie Sie möchten</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Suchen Sie etwas anderes? Wählen Sie in den Einstellungen eine andere Standardsuchmaschine.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Fügen Sie Verknüpfungen auf Ihrem Startbildschirm hinzu</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Kehren Sie schnell zu Ihren Lieblings-Websites in %1$s zurück. Wählen Sie einfach im %1$s-Menü „Zum Startbildschirm hinzufügen“.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Machen Sie Privatsphäre zur Gewohnheit</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Verwenden Sie %1$s als Standardbrowser und nutzen Sie die Vorteile des privaten Surfens, wenn Sie aus anderen Apps Webseiten öffnen.</string>
+
+ <string name="firstrun_close_button">Ok, verstanden!</string>
+ <string name="firstrun_skip_button">Überspringen</string>
+ <string name="firstrun_next_button">Weiter</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">–</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Hinzufügen</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">JA</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Abbrechen</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NEIN</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Verknüpfung wird mit deaktiviertem verbesserten Schutz vor Aktivitätenverfolgung geöffnet</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Private Surf-Sitzung</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Mit Benachrichtigungen können Sie Ihre %1$s-Sitzung mit einem Tippen löschen. Sie müssen weder die App öffnen, noch sehen, was in Ihrem Browser läuft.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Browser-Chronik löschen</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox herunterladen</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s ist freie und quelloffene Software, die von Mozilla und anderen Mitwirkenden entwickelt wird.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s steht unter der <a href="%2$s">Mozilla Public License</a> und anderen Open-Source-Lizenzen.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Ihnen werden keine Rechte oder Lizenzen an den Markenrechten der Mozilla Foundation oder einer anderen Partei eingeräumt, dazu zählen die Namen und Logos von Mozilla, Firefox oder %1$s. Weitere Informationen finden Sie <a href="%2$s">hier</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Sonstiger Quelltext für %1$s steht unter diversen anderen freien und Open-Source-<a href="%2$s">Lizenzen</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s nutzt auch von Disconnect, Inc. angebotene Blockierlisten als separate und unabhängige Werke unter der <a href="%2$s">GNU General Public License3</a>, die <a href="%3$s">hier</a> verfügbar sind.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Benutzername</string>
+ <string name="gv_prompt_password_hint">Passwort</string>
+ <string name="gv_prompt_clear">Löschen</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Sichere Verbindung</string>
+ <string name="security_popup_insecure_connection">Nicht gesicherte Verbindung</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verifiziert von: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Website-Sicherheit</string>
+ <string name="preference_autocomplete_duplicate_url_error">Adresse existiert bereits</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Seite durchsuchen</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Seite durchsuchen</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d von %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Nächstes Ergebnis suchen</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Vorheriges Ergebnis suchen</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">&quot;Seite durchsuchen&quot; deaktivieren</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Desktop-Seite anfordern</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Desktop-Website</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Adresse kopiert</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Entwicklerwerkzeuge</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Links in Apps öffnen</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Erweitert</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Website-Berechtigungen</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reduzierung von Cookie-Bannern</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Ein</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Aus</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reduzierung von Cookie-Bannern</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Sehen Sie weniger Banner, indem Cookie-Anfragen automatisch abgelehnt werden, wann immer möglich.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reduzierung von Cookie-Bannern</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Für diese Website AKTIVIERT</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Website derzeit nicht unterstützt</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Für diese Website DEAKTIVIERT</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reduzierung von Cookie-Bannern</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Für diese Website DEAKTIVIERT</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Für diese Website AKTIVIERT</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Cookie-Banner-Reduzierung für %1$s aktivieren?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Cookie-Banner-Reduzierung für %1$s deaktivieren?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s löscht die Cookies dieser Website und aktualisiert die Seite. Das Löschen aller Cookies kann Sie abmelden oder Warenkörbe leeren.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s kann versuchen, Cookie-Anfragen automatisch abzulehnen.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Diese Website wird derzeit nicht von der Cookie-Banner-Reduktion unterstützt. Möchten Sie unser Team bitten, diese Website zu überprüfen und in Zukunft Unterstützung hinzuzufügen?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Abbrechen</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Unterstützung anfordern</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Anfrage an Hilfe-Website übermittelt.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Anfrage an Hilfe-Website übermittelt.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s versucht, Cookie-Anfragen abzulehnen, um störende Cookie-Banner zu schließen.\n\nVerwalten Sie die Cookie-Banner-Einstellungen in den %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">Einstellungen</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automatische Wiedergabe</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Zum Erlauben:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Öffnen Sie die Android-Einstellungen</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tippen Sie auf <b>Berechtigungen</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Einstellungen öffnen</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Schalten Sie <b>%1$s</b> auf AN]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Ort</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Benachrichtigung</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Inhalte mit DRM-Kopierschutz</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Um Erlaubnis fragen</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blockiert</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Erlaubt</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Von Android blockiert</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Audio und Video erlauben</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Nur Audio blockieren</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Empfohlen</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Audio und Video blockieren</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studien</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox darf von Zeit zu Zeit Studien installieren und durchführen.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Weitere Informationen</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Die Anwendung wird beendet, um die Änderungen zu übernehmen</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Entfernen</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktiv</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Abgeschlossen</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Externes Debugging über USB/WLAN</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Entsperren</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Nutzen Sie Ihren Fingerabdruck zur Bestätigung</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Sie können Ihren Fingerabdruck verwenden, um Ihre aktuelle App-Sitzung fortzusetzen.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Link in neuer Sitzung öffnen</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Grafik: Fingerabdruck</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Fingerabdruck nicht erkannt. Versuchen Sie es erneut.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Finger wurde zu schnell bewegt. Versuchen Sie es erneut.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Suchvorschläge anzeigen?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Um Ihnen Suchvorschläge anzuzeigen, muss %1$s Ihre Eingaben in die Adressleiste an die Suchmaschine senden.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Nein</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Ja</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Einige Suchmaschinen können keine Vorschläge anzeigen.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Schließen</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Verhält sich die Website ungewohnt?\n Deaktivieren Sie den Schutz vor Aktivitätenverfolgung</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Zugriff auf die meistbesuchten Websites mit einer Berührung%1$s Menü → Zum Startbildschirm hinzufügen]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Jeden Link in %1$s öffnen\n Stellen Sie %1$s als Standardbrowser ein</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Autovervollständigung für meistbesuchte Websites\n Drücken Sie lange auf eine URL in der Adressleiste</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Einen Link in einem neuen Tab öffnen\n Drücken Sie lange auf einen Link in einer Seite</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Tipps im Startbildschirm abschalten</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Neuer Tab geöffnet</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Umschalten</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Vollbildmodus wird gestartet</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Sofort zum Link im neuen Tab wechseln</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Potenziell gefährliche und betrügerische Websites blockieren</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blockieren Sie gemeldete betrügerische Websites und solche, die Sie angreifen, Schadsoftware oder unerwünschte Software verteilen.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Nur-HTTPS-Modus</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Automatisch versuchen, eine Verbindung zu Websites herzustellen, die das HTTPS-Verschlüsselungsprotokoll verwenden, um die Sicherheit zu erhöhen.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Ausnahmen</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Das Blockieren von Seitenelementen ist für diese Websites deaktiviert.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Entfernen</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Alle Websites entfernen</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Cookies blockieren</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Möchten Sie Cookies blockieren?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Tab ist abgestürzt</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Es tut uns leid. Wir haben ein Problem mit diesem Tab.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Als privater Browser speichern wir diesen Tab nicht und können ihn nicht wiederherstellen.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Tab schließen</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Absturzbericht an Mozilla senden</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Tracker blockiert seit %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Inhalt</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Werbung</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Soziale Netzwerke</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analytik</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Verbesserter Tracking-Schutz</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Der Schutz für diese Website ist deaktiviert</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Der Schutz für diese Website ist aktiviert</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Verbindung ist sicher</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Verbindung ist nicht sicher</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Zu blockierende Tracker und Skripte</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Zurück</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Entfernen</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Umbenennen</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Umbenennen</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Name der Verknüpfung</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Gespeicherte und geteilte Grafiken &lt;b&gt;werden nicht&lt;/b&gt; gelöscht, wenn Sie die Chronik von %1$s löschen.</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Theme</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Hell</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Dunkel</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Durch Energiespareinstellungen festgelegt</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Geräte-Theme beachten</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Diese Website unterstützt kein HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s versucht, wann immer möglich, für mehr Sicherheit eine HTTPS-Verbindung zu verwenden.
+ <a href="%2$s">Weitere Informationen</a> <br/><br/>
+ Ändern Sie diese Einstellung unter Einstellungen > Datenschutz &amp; Sicherheit > Sicherheit.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Verbindung nicht sicher</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Dies könnte ein Problem mit der Konfiguration des Servers sein, oder es könnte jemand versuchen, sich als dieser Server auszugeben. <br/><br/>
+ Wenn Sie in der Vergangenheit erfolgreich mit diesem Server verbunden waren, tritt der Fehler möglicherweise nur temporär auf.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Jemand könnte versuchen, sich als die Website auszugeben und fortfahren könnte riskant sein.</label>
+ <br><br>
+ <label>%1$s vertraut <b>%2$s</b> nicht, weil der Aussteller des Zertifikats unbekannt ist, das Zertifikat vom Austeller selbst signiert wurde oder der Server nicht die korrekten Zwischen-Zertifikate sendet.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Tab schließen</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Erwischt! Wir haben diese Seite daran gehindert, Sie auszuspionieren. Tippen Sie jederzeit auf den Schild, um Informationen darüber zu erhalten, was wir blockieren.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Pop-up schließen</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Sie sind geschützt!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Diese Standardeinstellungen bieten starken Schutz. Es ist jedoch einfach, die Einstellungen an Ihre spezifischen Anforderungen anzupassen.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Schließen</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tippen Sie hier, um alles zu löschen – Chronik, Cookies, einfach alles – und in einem neuen Tab neu zu beginnen.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Schließen</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Such-Widget</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Surf-Chronik gelöscht! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Starten Sie Ihre private Surf-Sitzung, und wir blockieren Tracker und bei der Gelegenheit auch noch andere schädliche Elemente.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Surfen Sie privat weiter, aber starten Sie beim nächsten Mal schneller mit dem %1$s-Widget auf Ihrem Startbildschirm.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Widget zum Startbildschirm hinzufügen</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget zum Startbildschirm hinzugefügt</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-dsb/strings.xml b/mobile/android/focus-android/app/src/main/res/values-dsb/strings.xml
new file mode 100644
index 0000000000..ad8f675190
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-dsb/strings.xml
@@ -0,0 +1,1119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Pśetergnuś</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">W pórěźe</string>
+
+ <string name="action_save">Składowaś</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Adresu pytaś abo zapódaś</string>
+
+ <string name="teaser">Awtomatiski priwatny modus.\nPśeglědowaś. Lašowaś. Wóspjetowaś.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Waša pśeglědowańska historija jo se wulašowała.</string>
+ <string name="feedback_erase2">Pśeglědowańska historija jo se wulašowała</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Pśeglědowańska historija rejtarka jo se wulašowała.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Pytanje za %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Źěliś…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Sedłowy problem k wěsći daś</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">W %1$s wócyniś</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Wócyniś w…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Startowej wobrazowce pśidaś</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Zwězanjam pśidaś</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Ze zwězanjow wótwónoźeś</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Nastajenja</string>
+ <string name="menu_about">Wó</string>
+ <string name="menu_help">Pomoc</string>
+ <string name="menu_rights">Waše pšawa</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Pśeslědowaki blokěrowane</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Gaž to znjemóžnjaśo, se někotare sedłowe problemy rozwězuju</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blokěrowanje wopśimjeśa</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Znjemóžniś, aby se někotare sedła pórěźili</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Spěchowany wót %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Źěliś pśez</string>
+
+ <string name="notification_erase_title_android_14">Pśeglědowańsku historiju lašowaś?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Pótusniśo toś tu powěźeńku abo lašujśo ju, aby swóju pśeglědowańsku historiju wěsće wulašował.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Pótusniśo toś tu powěźeńku abo zjěźćo pśez ju, aby swóju pśeglědowańsku historiju wěsće wulašował.</string>
+
+ <string name="notification_erase_text">Pśeglědowańsku historiju lašowaś</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Wócyniś</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Lašowaś a wócyniś</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Lašowaś</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Pśeglědowańsku historiju lašowaś</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Wulašowaś a wócyniś</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">%1$s lašowaś a wócyniś</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">W Focus pytaś</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">W Klar pytaś</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">W Focus Beta pytaś</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">W Focus Nightly pytaś</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s dajo was kontrolu wobchowaś.</p>
+<p>Wužywajśo jen ako priwatny wobglědowak:
+ <ul>
+ <li>Pytajśo a pśeglědujśo direktnje w nałoženju</li>
+ <li>Blokěrujśo pśeslědowaki (abo aktualizěrujśo nastajenja, aby pśeslědowaki dowólił)</li>
+ <li>Lašujśo cookieje a pytańsku a pśeglědowańsku historiju</li>
+ </ul>
+</p>
+<p>%1$s se wót Mozilla wuwija. Naša misija jo spěchowanje strowego, wótwórjonego interneta.<br/>
+<a href="%2$s">Dalšne informacije</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Priwatnosć a wěstota</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Slědowanje, cookieje, datowe wuběrki</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Standard nastajiś, awtomatiske wudopołnjenje</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Wó %1$s, pomoc</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Pólěpšony slědowański šćit</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Webwopśimjeśe</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Pśešaltowanje nałoženjow</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Powšykne</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Standardny wobglědowak, rěc</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Zběranje a wužywanje datow</string>
+
+ <string name="preference_category_search">Pytaś</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Pytańske naraźenja wobstaraś</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s se na wašu pytnicu pósćelo, což w adresowem pólu zapódajośo</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Standard</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Pytnica</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Zašaltowany</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Wušaltowany</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Awtomatiske wudopołnjenje URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Za nejlubše sedła</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Zmóžniś, aby %s wěcej ako 450 woblubowanych adresow w adresowrm pólu wudopołnił.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Za sedła, kótarež pśidawaśo</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Zmóžniś, až %s waše nejlubše URL awtomatiski wudopołnjujo.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Sedła zastojaś</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Sedła zastojaś</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Swójsku adresu pśidaś</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Waša lisćina awtowudopołnjenjow:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL pśidaś</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Swójsku adresu pśidaś</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Swójski URL pśidaś</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Wótkaz za awtowudopołnjenje pśidaś</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookieje a sedłowe daty</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Datowe wuběrki</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Swójske adrese wótwónoźeś</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Dalšne informacije</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Swójske adrese za wudopołnjenje pśidaś a zastojaś.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Adresa, kótaraž ma se pśidaś</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Adresu zasajźiś abo zapódaś</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Pśikład: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Pśikład: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Nowa swójska adresa pśidana.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Wótwónoźeś</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Wótwónoźeś</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Pśeglědajśo zapódanu adresu.</string>
+
+ <string name="preference_language">Rěc</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Systemowy standard</string>
+
+ <string name="preference_category_privacy">Priwatnosć</string>
+ <string name="preference_privacy_block_ads">Wabjeńske pśeslědowaki blokěrowaś</string>
+ <string name="preference_privacy_block_ads_summary">Někotare wabjeńske anonse woglědy sedłow slěduju, samo gaby wy na anonse njekliknuł</string>
+ <string name="preference_privacy_block_analytics">Analyzowe pśeslědowaki blokěrowaś</string>
+ <string name="preference_privacy_block_analytics_summary">Z tym se aktiwity ako pótuskowanje a kulanje pśez boki gromaźe, analyzěruju a měrje</string>
+ <string name="preference_privacy_block_social">Socialne pśeslědowaki blokěrowaś</string>
+ <string name="preference_privacy_block_social_summary">Na sedłach zasajźone, aby wóne waše woglědy slědowali a funkcije ako tłocaški za źělenje zwobraznili</string>
+ <string name="preference_privacy_block_content">Druge wopśimjeśowe pśeslědowaki blokěrowaś</string>
+ <string name="preference_privacy_block_content_summary2">To móžo wjasć k tomu, až se někotare boki njewšednje zaźarže</string>
+ <string name="preference_privacy_category_cookies">Cookieje blokěrowaś</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ně, źěkujom se</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Jano slědujuce cookieje tśeśich póbitowarjow blokěrowaś</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Jano cookieje tśeśich póbitowarjow blokěrowaś</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Cookieje někotarych sedłow blokěrowaś</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Jo, pšosym</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Wužywajśo palcowy wótśišć, aby nałoženje wótwórił</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Wótwóŕśo z pomocu palcowego wóśišća, jolic sćo pśidał zwězanja abo gaž websedło jo južo w %s wócynjone.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Tarnowanje</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Webboki schowaś, gaž se nałoženja pśešaltuju a fota wobrazowki blokěrowaś.</string>
+
+ <string name="preference_category_security">Wěstota</string>
+
+ <string name="preference_category_performance">Wugbaśe</string>
+ <string name="preference_performance_block_webfonts">Webpisma blokěrowaś</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Móžo k tomu wjasć, až symbole abo wobraze feluju</string>
+
+ <string name="preference_performance_block_javascript">JavaScript blokěrowaś</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Boki se malsnjej zacytaju, mógli se pak teke na njewócakowanu wašnju zaźaržaś</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s ako standardny wobglědowak nastajiś</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Wužywańske daty pósłaś</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Dalšne informacije</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla se procujo, jano informacije gromaźiś, z kótarymiž móžomy %1$s za kuždego póbitowaś a pólěpšyś.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Powěźeńka priwatnosći</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Licencne informacije</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Biblioteki, kótarež wužywamy</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS-biblioteki</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Wó %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Zainstalěrowane pytnice</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Pytnicu wubraś</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Standardne pytnice wótnowiś</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Dalšnu pytnicu pśidaś</string>
+ <string name="preference_search_remove_title">Pytnice wótwónoźeś</string>
+ <string name="preference_search_remove">Wótwónoźeś</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Dalšnu pytnicu pśidaś</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Wubjeŕśo swóju nejlubšu pytnicu:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Pytnicu pśidaś</string>
+
+ <string name="search_add_manually_name_hint">Mě pytnice</string>
+ <string name="search_add_manually_string">Pytański wuraz, kótaryž ma se wužywaś</string>
+ <string name="search_add_manually_save">Składowaś</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Pśikład: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Nowa pytnica jo se pśidała.</string>
+
+ <string name="search_add_error_empty_name">Mě pytnice zapódaś</string>
+ <string name="search_add_error_duplicate_name">Jo južo pytnica zainstalěrowana, kótaraž toś to mě wužywa.</string>
+
+ <string name="search_add_error_empty_search">Pytański wuraz zapódaś</string>
+
+ <string name="search_add_error_format">Pśeglědajśo, lěc pytański wuraz pśikładowemu formatoju wótpowědujo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Zapódaśe wuprozniś</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Zachyśiś</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Pśeglědowańsku historiju lašowaś</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Wócynjone rejtarki: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Wěsty zwisk</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Zacytanje</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Websedło jo se zacytało</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Dalšne nastajenja</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Tocašk dalšnych nastajenjow</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Doprědka</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Websedło znowego zacytaś</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Slědk</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Cytanje websedła zastajiś</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Slědk k pjerwjejšnemu nałoženjeju</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Licba zablokěrowanych pśeslědowakow</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Pśeslědowaki blokěrowaś</string>
+
+ <string name="your_rights">Waše pšawa</string>
+
+ <string name="external_app_prompt_title">Wótkaz w drugem nałoženju wócyniś</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Móžośo %1$s spušćiś, aby toś ten wótkaz w %2$s wócynił.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Nałoženje pytaś, kótarež móžo wótkaz wócyniś</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Žedno z nałoženjow na wašom rěźe njamóžo toś ten wótkaz wócyniś. Móžośo %1$s spušćiś, aby %2$s za nałoženim pśepytował.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Priwatny modus spušćiś?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s dokóńcony</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Wócyniś</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Zwězanjam pśidane!</string>
+
+ <string name="error_hostLookup_title">Serwer njejo se namakał</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Zacyniś</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Witajśo k %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Malsny. Priwatny. Žedne wótchylenja.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Prědne kšace</string>
+
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s njejo ako druge wobglědowaki</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Lašujomy wašu historiju, gaž nałoženje za pśidatnu priwatnosć zacynjaśo.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Cyńśo %1$s k swójomu standardnemu wobglědowakoju, aby swóje daty z kuždym wótkazom, kótaryž wócynjaśo, šćitał.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Ako standardny wobglědowak nastajiś</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Pśeskócyś</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Zmocniśo swóju priwatnosć</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Zwigniśo priwatne pśeglědowanje na pśiducu wušu rowninu. Blokěrujśo wabjenje a hynakše wopśimjeśe, kótarež móžośo pśez sedła slědowaś a zacyitańske case bokow pódlejšyś.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Wašo pytanje ako wy jo cośo</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Pytaśo za něcym drugim? Wubjeŕśo drugu standardnu pytnicu w nastajenjach.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Pśidajśo swójej startowej wobrazowce tastowe skrotconki</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Wrośćo se malsnjej k swójim nejlubšym sedłam w %1$s. Wubjeŕśo jadnorje „Startowej wobrazowce pśidaś“ z menija %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Pśiwucćo se priwatnosć</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Nastajśo %1$s ako swój standardny wobglědowak a mějśo wužytk z priwatnego pśeglědowanja, gaž webboki z drugich nałoženjow wócynjaśo.</string>
+
+ <string name="firstrun_close_button">W pórěźe, som zrozměł!</string>
+ <string name="firstrun_skip_button">Pśeskócyś</string>
+ <string name="firstrun_next_button">Dalej</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Pśidaś</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">JO</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Pśetergnuś</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NĚ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Zwězanje se ze znjemóžnjonym pólěpšonym šlědowańskim šćitom wócynijo</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Priwatne pósejźenje</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Powěźeńki wam zmóžnjaju, waše pósejźenje %1$s z dotyknjenim wulašowaś. Njetrjebaśo nałoženje wócyniś abo glědaś, což we wašom wobglědowaku běžy.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Pśeglědowańsku historiju wulašowaś</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox ześěgnuś</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s jo dermotna software wótwórjonego žrědła wót Mozilla a drugich sobustatkujucych.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s so pód wuměnjenjami licence <a href="%2$s">Mozilla Public License</a> a drugimi licencami wótwórjonego žrědła k dispoziciji staja.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Njedaju wam žedne pšawa abo licence na wikowych markow załožby Mozilla Foundation abo tśeśich, inkluziwnje mjenja abo loga Mozilla, Firefox abo %1$s. Dalšne informacije namakajośo <a href="%2$s">how</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Pśidatny žrědłowy kod za %1$s jo pód wšakich drugich lichych <a href="%2$s">licencach</a> wótwórjonego žrědła k dispoziciji.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s teke blokěrowańske lisćiny póbitowane wót Disconnect, Inc. ako separatne a njewótwisne źěła pód licencu <a href="%2$s">General Public Licence v3</a> wužywa, kótarež su <a href="%3$s">how</a> k dispoziciji.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Wužywarske mě</string>
+ <string name="gv_prompt_password_hint">Gronidło</string>
+ <string name="gv_prompt_clear">Wuprozniś</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Wěsty zwisk</string>
+ <string name="security_popup_insecure_connection">Njewěsty zwisk</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Pśeglědany wót: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Sedłowa wěstota</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL južo eksistěrujo</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Na boku pytaś</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Na boku pytaś</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d z %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Pśiducy wuslědk namakaś</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Pjerwjejšny wuslědk namakaś</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Na boku pytaś znjemóžniś</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Desktopowe sedło pominaś</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Desktopowe sedło</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL jo kopěrowany</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Wuwijarske rědy</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Wótkaze w nałoženjach wócyniś</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Rozšyrjone</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Sedłowe pšawa</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reducěrowanje cookiejowych chórgojow</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Zašaltowany</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Wušaltowany</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reducěrowanje cookiejowych chórgojow</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Wótpokažćo cookiejowe napšašowanja, aby mjenjej chórgojow wiźeł, jolic móžno.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reducěrowanje cookiejowych chórgojow</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Za toś to sedło ZMÓŽNJONY</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Sedło se tuchylu njepódpěra</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Za toś to sedło ZNJEMÓŽNJONY</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reducěrowanje cookiejowych chórgojow</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Za toś to sedło ZNJEMÓŽNJONY</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Za toś to sedło ZMÓŽNJONY</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Reducěrowanje cookiejowych chórgojow za %1$s zmóžniś?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Reducěrowanje cookiejowych chórgojow za %1$s znjemóžniś?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s cookieje sedła lašujo a buźo bok aktualizěrowaś. Lašowanje wšych cookiejow móžo was pśizjawiś abo nakupowańske wózyki wuprozniś.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s móžo wopytaś, cookiejowe napšašowanja awtomatiski wótpokazaś.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Toś to sedło se tuchylu pśez redukciju cookiejowych chórgojow. Cośo naš team pšosyś, toś to websedło pśeglědowaś a pomoc w pśichoźe pśidaś?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Pśetergnuś</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Pomoc póžedaś</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Napšašowanje na sedło pomocy jo se wótpósłało.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Napšašowanje na sedło pomocy jo se wótpósłało.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s wopytujo, cookiejowe napšašowanja wótpokazowaś, aby njepśigódne cookiejowe chórgoji zachyśił.\n\nZastojśo nastajenja cookiejowych chórgojow w %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">nastajenja</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Awtomatiske wótgraśe</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Aby to dowólił:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Źiśo k nastajenjam Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Pótusniśo zapisk <b>Berechtigungen</b> (Pšawa)]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">K nastajenjam</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Zašaltujśo <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Městno</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Powěźeńka</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Wopśimjeśe wóźone pśez DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Wó dowólnosć se pšašaś</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blokěrowany</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Dowólony</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Pśez Android zablokěrowany</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Awdio a wideo dowóliś</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Jano awdio blokěrowaś</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Dopórucone</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Awdio a wideo blokěrowaś</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studije</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox móžo wótergi studije instalěrowaś a pśewjasć.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Dalšne informacije</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Nałoženje se skóńcyjo, aby se změny wustatkowali</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Wótwónoźeś</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktiwny</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Dokóńcone</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Daloke pytanje zmólkow pśez USB/WLAN</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Wótwóriś</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Wobkšuśćo z pomocu swójogo palcowego wótśišća</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Móžośo swój palcowy wótśišć, aby z aktualnem pósejźenim swójogo nałoženja pókšacował.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Wótkaz w nowem pósejźenju wócyniś</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Symbol palcowego wótśišća</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Palcowy wótśišć njejo se spóznał. Wopytajśo hyšći raz.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Palc jo se pśemalsnje gibnuł. Wopytajśo hyšći raz.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Pytańske naraźenja pokazaś?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Aby naraźenja dostał, musy %1$s wopśimjeśe, kótaryž sćo zapódał do adresowego póla, na pytnicu słaś.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ně</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Jo</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Někotare pytnice njamógu naraźenja pokazaś.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Zachyśiś</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Sedło se na njewócakowanu wašnju zaźaržy?\nWopytajśo slědowański šćit znjemóžniś</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Pśistup k sedłam, ku kótarymž nejcesćej woglědujośo, z jadnym dotyknjenim%1$s Meni > Startowej wobrazowce pśidaś]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Kuždy wótkaz w %1$s wócyniś\n%1$s ako standardny wobglědowak nastajiś</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">URL za sedła, ku kótarymž se nejcesćej woglědujośo, awtomatiski wudopołniś\nTłocćo dłujko na URL w adresowem pólu</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Wótkaz w nowem rejtarku wócyniś\nTłocćo dłujko na wótkaz na boku</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Tipy na startowej wobrazowce znjemóžniś</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nowy rejtark jo se wócynił</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Pśešaltowaś</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Połna wobrazowka se pokazujo</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Ned k wótkazoju w nowem rejtarku pśejś</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Ptencielnje tšašne a wobšudnikojske sedła blokěrowaś</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blokěrujśo wuzjawjone wobšudnikojske a napadowe sedła, škódne sedła a sedła z njewitaneju softwaru.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Modus Jano-HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Wopytujo z pomocu koděrowańskego protokola HTTPS za pówušonu wěstotu awtomatiski ze sedłami zwězaś.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Wuwześa</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Sćo znjemóžnił blokěrowanje wopśimjeśa za toś te sedła.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Wótwónoźeś</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Wšykne sedła wótwónoźeś</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Cookieje blokěrowaś</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Cośo cookieje blokěrowaś?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Rejtark jo wowalił</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Bóžko mamy problem z toś tym rejtarkom.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Ako priwatny wobglědowak njeskładujomy nigda a njamóžomy toś ten rejtark wótnowiś.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Rejtark zacyniś</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Mozilla rozpšawu wowalenja pósłaś</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Pśeslědowaki su zablokěrowane wót %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Wopśimjeśe</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Wabjenje</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Socialne seśi</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analytika</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Pólěpšony slědowański šćit</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Šćit jo znjemóžnjony za toś to sedło</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Šćit jo zmóžnjony za toś to sedło</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Zwisk jo wěsty</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Zwisk njejo wěsty</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Pśeslědowaki a skripty, kótarež se maju blokěrowaś</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Slědk hyś</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Wótwónoźeś</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Pśemjeniś</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Pśemjeniś</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Mě zwězanja</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Skłaźone a źělone wobraze &lt;b&gt;se nje&lt;/b&gt;wulašuju, gaž historiju %1$s lašujośo.</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Drastwa</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Swětły</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Śamny</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Pó zažarjeńskich nastajenjach baterije</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Na rědowu drastwu źiwaś</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Toś to sedło HTTPS njepódpěra</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s wópytujo HTTPS-zwisk wužywaś, gažkuli jo móžno za wěstotu.
+ <a href="%2$s">Dalšne informacije</a> <br/><br/>
+ Změńśo toś to nastajenje w Nastajenja > Priwatnosć a wěstota > Wěstota.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Zwisk njejo wěsty</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ To mógło problem z konfiguraciju serwera byś, abo něchten wopytujo, serwer imitěrowaś. <br/><br/>
+
+ Jolic sćo był w zajźonosći ze serwerom wuspěšnje zwězany, móžo zmólka nachylna byś.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Něchten mógał wopytaś, sedło za swójo wudaś, a pókšacowanje mógło riskantne byś.</label>
+ <br><br>
+ <label>%1$s <b>%2$s</b> njedowěri, dokulaž jogo certifikatowy wudawaŕ jo njeznaty, certifkat jo sebjesigněrowany abo serwer korektne mjazycertifikaty njesćelo.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Rejtarik zacyniś</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Załapjone! Smy zajźowali sedłoju was wusnuchliś. Pótusniśo kuždy cas šćita, aby wiźeł, což my blokěrujomy.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Wuskokujuce wokno zacyniś</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Sćo šćitany!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Toś te standardne nastajenja mócny šćit póbituju. Ale jo lažko, nastajenja wašym specifiskim pótrjebam pśiměriś.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Zachyśiś</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Pótusniśo how, aby wšykno do papjernika pśesunuł – historiju, cookieje, wšykno – a startujśo znowego na nowem rejtariku.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Zacyniś</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Pytański asistent</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Pśeglědowańska historija jo se wulašowała! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Zachopśo swóje priwatne pśeglědowańske pósejźenje a my buźomy pśeslědowaki a druge škódne elementy pśi toś tej góźbje blokěrowaś.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Pśewóstajijomy wašomu priwatnemu modusoju, ale startujśo pśiducy raz malsnjej z asistentom %1$s na swójej startowej wobrazowce.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Asistent startowej wobrazowce pśidaś</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Asistent jo se pśidał startowej wobrazowce</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-el/strings.xml b/mobile/android/focus-android/app/src/main/res/values-el/strings.xml
new file mode 100644
index 0000000000..d9167ba04c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-el/strings.xml
@@ -0,0 +1,1128 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Ακύρωση</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Αποθήκευση</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Αναζήτηση ή εισαγωγή διεύθυνσης</string>
+
+ <string name="teaser">Αυτόματη ιδιωτική περιήγηση.\nΠεριήγηση. Διαγραφή. Επανάληψη.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Το ιστορικό περιήγησης έχει διαγραφτεί.</string>
+
+ <string name="feedback_erase2">Το ιστορικό περιήγησης απαλείφθηκε</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Το ιστορικό της καρτέλας έχει διαγραφτεί.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Αναζήτηση για «%1$s»</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Κοινή χρήση…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Αναφορά ζητήματος ιστοτόπου</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Άνοιγμα σε %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Άνοιγμα σε…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Προσθήκη στην αρχική οθόνη</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Προσθήκη συντόμευσης</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Αφαίρεση συντόμευσης</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Ρυθμίσεις</string>
+ <string name="menu_about">Πληροφορίες</string>
+ <string name="menu_help">Βοήθεια</string>
+ <string name="menu_rights">Τα δικαιώματά σας</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Αποκλεισμένοι ιχνηλάτες</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Η απενεργοποίηση αυτού ίσως διορθώσει μερικά προβλήματα</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Φραγή περιεχομένου</string>
+
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Απενεργοποιήστε το για διόρθωση μερικών ιστοτόπων</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Με την υποστήριξη του %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Κοινοποίηση μέσω</string>
+
+ <string name="notification_erase_title_android_14">Διαγραφή ιστορικού περιήγησης;</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Πατήστε ή εκκαθαρίστε αυτήν την ειδοποίηση για να διαγράψετε με ασφάλεια το ιστορικό περιήγησής σας.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Πατήστε ή σύρετε αυτήν την ειδοποίηση για να διαγράψετε με ασφάλεια το ιστορικό περιήγησής σας.</string>
+
+ <string name="notification_erase_text">Διαγραφή ιστορικού περιήγησης</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Άνοιγμα</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Διαγραφή και άνοιγμα</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Διαγραφή</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Διαγραφή ιστορικού περιήγησης</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Διαγραφή και άνοιγμα</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Διαγραφή και άνοιγμα %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Αναζήτηση στο Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Αναζήτηση στο Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Αναζήτηση στο Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Αναζήτηση στο Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>Το %1$s σάς δίνει τον έλεγχο.</p>
+<p>Χρησιμοποιήστε το για:
+ <ul>
+ <li>Αναζήτηση και περιήγηση</li>
+ <li>Φραγή ιχνηλατών (ή αποδοχή, ενημερώνοντας τις ρυθμίσεις)</li>
+ <li>Διαγραφή των cookie και του ιστορικού αναζητήσεων και περιήγησης</li>
+ </ul>
+</p>
+<p>Το %1$s αναπτύσσεται από τη Mozilla. Αποστολή μας είναι ένα υγιές και ανοικτό διαδίκτυο.<br/>
+<a href="%2$s">Μάθετε περισσότερα</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Απόρρητο και ασφάλεια</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Επιλογές καταγραφής, cookie, δεδομένων</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Ορισμός ως προεπιλογή, αυτόματη συμπλήρωση</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Σχετικά με το %1$s, βοήθεια</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Ενισχυμένη προστασία από καταγραφή</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Περιεχόμενο ιστού</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Εναλλαγή εφαρμογών</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Γενικά</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Προεπιλεγμένος φυλλομετρητής, γλώσσα</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Συλλογή και χρήση δεδομένων</string>
+
+ <string name="preference_category_search">Αναζήτηση</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Λήψη προτάσεων αναζήτησης</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">Το %1$s θα στέλνει όσα πληκτρολογείτε στη γραμμή διευθύνσεων στη μηχανή αναζήτησής σας</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Προεπιλογή</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Μηχανή αναζήτησης</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Ενεργό</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Ανενεργό</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Αυτόματη συμπλήρωση URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Για κορυφαίους ιστοτόπους</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Ενεργοποιήστε το για συμπλήρωση πάνω από 450 δημοφιλών URL στη γραμμή διευθύνσεων του %s.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Για ιστοτόπους που προσθέτετε</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Ενεργοποιήστε το για συμπλήρωση των αγαπημένων σας URL στο %s.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Διαχείριση ιστοτόπων</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Διαχείριση ιστοτόπων</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Προσθήκη προσαρμοσμένου URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Λίστα αυτόματης συμπλήρωσης:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Προσθήκη URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Προσθήκη προσαρμοσμένου URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Προσθήκη προσαρμοσμένου URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Προσθήκη συνδέσμου για αυτόματη συμπλήρωση</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookie και δεδομένα ιστοτόπων</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Επιλογές δεδομένων</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Αφαίρεση προσαρμοσμένων URL</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Μάθετε περισσότερα</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Προσθήκη και διαχείριση προσαρμοσμένων URL αυτόματης συμπλήρωσης.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL για προσθήκη</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Επικόλληση ή εισαγωγή URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Παράδειγμα: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Παράδειγμα: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Προστέθηκε νέο προσαρμοσμένο URL.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Αφαίρεση</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Αφαίρεση</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Ελέγξτε ξανά το URL που πληκτρολογήσατε.</string>
+
+ <string name="preference_language">Γλώσσα</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Προεπιλογή συστήματος</string>
+
+ <string name="preference_category_privacy">Απόρρητο</string>
+ <string name="preference_privacy_block_ads">Φραγή ιχνηλατών διαφημίσεων</string>
+ <string name="preference_privacy_block_ads_summary">Ορισμένες διαφημίσεις καταγράφουν επισκέψεις σε ιστοτόπους, ακόμη κι αν δεν τις πατήσετε</string>
+ <string name="preference_privacy_block_analytics">Φραγή ιχνηλατών ανάλυσης</string>
+ <string name="preference_privacy_block_analytics_summary">Χρησιμοποιούνται για τη συλλογή, την ανάλυση και τη μέτρηση δραστηριοτήτων, όπως πατήματα και κυλίσεις</string>
+ <string name="preference_privacy_block_social">Φραγή ιχνηλατών κοινωνικών δικτύων</string>
+ <string name="preference_privacy_block_social_summary">Ενσωματώνονται σε ιστοτόπους για την καταγραφή των επισκέψεών σας και την εμφάνιση λειτουργιών, όπως κουμπιά κοινοποίησης</string>
+ <string name="preference_privacy_block_content">Φραγή ιχνηλατών άλλου περιεχομένου</string>
+ <string name="preference_privacy_block_content_summary2">Η ενεργοποίηση ενδέχεται να προκαλέσει την απρόσμενη συμπεριφορά ορισμένων σελίδων</string>
+ <string name="preference_privacy_category_cookies">Φραγή cookie</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Όχι, ευχαριστώ</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Φραγή μόνο τρίτων cookie καταγραφής</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Φραγή μόνο τρίτων cookie</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Φραγή cookie μεταξύ ιστοτόπων</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ναι, παρακαλώ</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Χρήση αποτυπώματος για ξεκλείδωμα εφαρμογής</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Ξεκλείδωμα με αποτύπωμα εάν έχετε προσθέσει συντομεύσεις ή όταν ένας ιστότοπος είναι ήδη ανοικτός στο %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Αορατότητα</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Απόκρυψη ιστοσελίδων κατά την εναλλαγή εφαρμογών και φραγή στιγμιότυπων.</string>
+
+ <string name="preference_category_security">Ασφάλεια</string>
+
+ <string name="preference_category_performance">Επιδόσεις</string>
+ <string name="preference_performance_block_webfonts">Φραγή γραμματοσειρών ιστού</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Ενδέχεται να οδηγήσει σε απώλεια εικονιδίων ή εικόνων</string>
+
+ <string name="preference_performance_block_javascript">Φραγή JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Οι σελίδες ενδέχεται να φορτώνονται ταχύτερα, αλλά με απρόσμενες συμπεριφορές</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Ορισμός του %1$s ως προεπιλογής</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Αποστολή δεδομένων χρήσης</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Μάθετε περισσότερα</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Η Mozilla προσπαθεί συλλέγει μόνο όσα χρειάζεται για να παρέχει και να βελτιώνει το %1$s για όλους.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Σημείωση απορρήτου</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Πληροφορίες άδειας</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Βιβλιοθήκες που χρησιμοποιούμε</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Βιβλιοθήκες OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Σχετικά με το %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Εγκατεστημένες μηχανές αναζήτησης</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Επιλογή μηχανής αναζήτησης</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Επαναφορά αρχικών μηχανών αναζήτησης</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Προσθήκη άλλης μηχανής αναζήτησης</string>
+ <string name="preference_search_remove_title">Αφαίρεση μηχανών αναζήτησης</string>
+ <string name="preference_search_remove">Αφαίρεση</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Προσθήκη άλλης μηχανής αναζήτησης</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Επιλέξτε την προτιμώμενη μηχανή σας:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Προσθήκη μηχανής αναζήτησης</string>
+
+ <string name="search_add_manually_name_hint">Όνομα μηχανής αναζήτησης</string>
+ <string name="search_add_manually_string">Όρος αναζήτησης για χρήση</string>
+ <string name="search_add_manually_save">Αποθήκευση</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Παράδειγμα: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Προστέθηκε νέα μηχανή αναζήτησης.</string>
+
+ <string name="search_add_error_empty_name">Εισαγάγετε το όνομα μηχανής αναζήτησης</string>
+ <string name="search_add_error_duplicate_name">Μια εγκατεστημένη μηχανή αναζήτησης χρησιμοποιεί ήδη αυτό το όνομα.</string>
+
+ <string name="search_add_error_empty_search">Εισαγάγετε τον όρο αναζήτησης</string>
+
+ <string name="search_add_error_format">Ελέγξτε αν ο όρος αναζήτησης ταιριάζει με τη μορφή του παραδείγματος</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Απαλοιφή εισόδου</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Απόρριψη</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Διαγραφή ιστορικού περιήγησης</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Ανοικτές καρτέλες: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Ασφαλής σύνδεση</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Φόρτωση</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Ο ιστότοπος φορτώθηκε</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Περισσότερες επιλογές</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Κουμπί περισσότερων επιλογών</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Πλοήγηση προς τα εμπρός</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Ανανέωση ιστοτόπου</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Πλοήγηση προς τα πίσω</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Διακοπή φόρτωσης ιστοτόπου</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Επιστροφή στην προηγούμενη εφαρμογή</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Αριθμός αποκλεισμένων ιχνηλατών</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Φραγή ιχνηλατών</string>
+
+ <string name="your_rights">Τα δικαιώματά σας</string>
+
+ <string name="external_app_prompt_title">Άνοιγμα συνδέσμου σε άλλη εφαρμογή</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Μπορείτε να φύγετε από το %1$s για να ανοίξετε τον σύνδεσμο στο %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Βρείτε μια εφαρμογή που μπορεί να ανοίξει τον σύνδεσμο</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Καμία από τις εφαρμογές της συσκευής σας δεν μπορεί να ανοίξει αυτόν τον σύνδεσμο. Μπορείτε να φύγετε από το %1$s για να αναζητήσετε στο %2$s μια εφαρμογή που να μπορεί να εκτελέσει αυτήν την εργασία.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Έξοδος από την ιδιωτική περιήγηση;</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">Το %1$s ολοκληρώθηκε</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Άνοιγμα</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Προστέθηκε στις συντομεύσεις!</string>
+
+ <string name="error_hostLookup_title">Ο διακομιστής δεν βρέθηκε</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Κλείσιμο</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Καλώς ορίσατε στο %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Γρήγορο. Ιδιωτικό. Χωρίς περισπασμούς.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Έναρξη</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">Το %1$s δεν είναι σαν τα άλλα προγράμματα περιήγησης</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Διαγράφουμε το ιστορικό σας όταν κλείνετε την εφαρμογή για επιπλέον ιδιωτικότητα.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Ορίστε το %1$s ως προεπιλογή για να προστατεύσετε τα δεδομένα σας με κάθε σύνδεσμο που ανοίγετε.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Ορισμός ως προεπιλογή</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Παράλειψη</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Ενισχύστε το απόρρητό σας</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Μεταβείτε στο επόμενο επίπεδο ιδιωτικής περιήγησης. Αποκλείστε διαφημίσεις και περιεχόμενο που μπορεί να καταγράψει τη δραστηριότητά σας και να επιβραδύνει τη φόρτωση σελίδων.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Αναζήτηση με τον δικό σας τρόπο</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Ψάχνετε κάτι διαφορετικό; Επιλέξτε μια άλλη προεπιλεγμένη μηχανή αναζήτησης στις ρυθμίσεις.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Προσθήκη συντομεύσεων στην αρχική οθόνη</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Επιστρέψτε γρήγορα στους αγαπημένους σας ιστοτόπους στο %1$s. Απλά επιλέξτε «Προσθήκη στην αρχική οθόνη» από το μενού του %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Κάντε το απόρρητο συνήθεια</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Ορίστε το %1$s ως τον προεπιλεγμένο φυλλομετρητή για ιδιωτική περιήγηση σε ιστοτόπους που ανοίγουν από άλλες εφαρμογές.</string>
+
+ <string name="firstrun_close_button">OK, κατάλαβα!</string>
+ <string name="firstrun_skip_button">Παράλειψη</string>
+ <string name="firstrun_next_button">Επόμενο</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Προσθήκη</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ΝΑΙ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Ακύρωση</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">ΟΧΙ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Η συντόμευση θα ανοίξει χωρίς Ενισχυμένη προστασία από καταγραφή</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Συνεδρία ιδιωτικής περιήγησης</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Οι ειδοποιήσεις σάς επιτρέπουν να διαγράψετε τη συνεδρία σας στο %1$s με ένα πάτημα. Δεν χρειάζεται να ανοίξετε την εφαρμογή ή να δείτε τι συμβαίνει στον φυλλομετρητή σας.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Διαγραφή ιστορικού περιήγησης</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Λήψη του Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[Το %1$s είναι δωρεάν και ανοικτού κώδικα λογισμικό, που αναπτύσσεται από τη Mozilla και άλλους εθελοντές.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[Το %1$s διατίθεται βάσει των όρων της <a href="%2$s">Mozilla Public License</a> και άλλων αδειών ανοικτού κώδικα.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Δεν έχετε δικαίωμα ή άδεια για τα εμπορικά σήματα του Mozilla Foundation ή άλλου μέρους, όπως της Mozilla, του Firefox και τα ονόματα ή λογότυπα του %1$s. Μπορείτε να βρείτε περισσότερες πληροφορίες <a href="%2$s">εδώ</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Επιπρόσθετος πηγαίος κώδικας του %1$s διατίθεται βάσει άλλων ελεύθερων <a href="%2$s">αδειών</a> ανοικτού κώδικα.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[Το %1$s χρησιμοποιεί επίσης λίστες αποκλεισμού από την ανεξάρτητη Disconnect, Inc. βάσει της <a href="%2$s">GNU General Public License v3</a>, που βρίσκονται <a href="%3$s">εδώ</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Όνομα χρήστη</string>
+ <string name="gv_prompt_password_hint">Κωδικός πρόσβασης</string>
+ <string name="gv_prompt_clear">Εκκαθάριση</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Ασφαλής σύνδεση</string>
+ <string name="security_popup_insecure_connection">Μη ασφαλής σύνδεση</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Επαληθεύτηκε από: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Ασφάλεια ιστοτόπου</string>
+ <string name="preference_autocomplete_duplicate_url_error">Το URL υπάρχει ήδη</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Εύρεση στη σελίδα</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Εύρεση στη σελίδα</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d από %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Εύρεση επόμενου αποτελέσματος</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Εύρεση προηγούμενου αποτελέσματος</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Απόρριψη εύρεσης στη σελίδα</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Ιστότοπος υπολογιστή</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Έκδοση υπολογιστή</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Το URL αντιγράφτηκε</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Εργαλεία προγραμματιστή</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Άνοιγμα συνδέσμων σε εφαρμογές</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Σύνθετα</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Άδειες ιστοτόπων</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Μείωση μηνυμάτων για cookie</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Ενεργή</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Ανενεργή</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Μείωση μηνυμάτων για cookie</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Δείτε λιγότερα μηνύματα με αυτόματη απόρριψη αιτημάτων για cookie, όταν αυτό είναι δυνατό.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Μείωση μηνυμάτων για cookie</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ΕΝΕΡΓΗ για αυτόν τον ιστότοπο</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Ο ιστότοπος δεν υποστηρίζεται</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">ΑΝΕΝΕΡΓΗ για αυτόν τον ιστότοπο</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Μείωση μηνυμάτων για cookie</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">ΑΝΕΝΕΡΓΗ για αυτόν τον ιστότοπο</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ΕΝΕΡΓΗ για αυτόν τον ιστότοπο</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Ενεργοποίηση μείωσης μηνυμάτων για cookie στο %1$s;</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Απενεργοποίηση μείωσης μηνυμάτων για cookie στο %1$s;</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">Το %1$s θα απαλείψει τα cookie του ιστοτόπου και θα ανανεώσει τη σελίδα. Η απαλοιφή όλων των cookie ενδέχεται να σας αποσυνδέσει ή να αδειάσει τα καλάθια αγορών.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">Το %1$s προσπαθεί να απορρίπτει αυτόματα τα αιτήματα για cookie.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Αυτός ο ιστότοπος δεν υποστηρίζεται προς το παρόν από τη Μείωση μηνυμάτων για cookie. Θέλετε να ζητήσετε από την ομάδα μας να ελέγξει αυτόν τον ιστότοπο και να προσθέσει υποστήριξη στο μέλλον;</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Ακύρωση</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Αίτημα υποστήριξης</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Υποβλήθηκε αίτημα για υποστήριξη ιστοτόπου.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Υποβλήθηκε αίτημα για υποστήριξη ιστοτόπου.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">Το %1$s προσπαθεί να απορρίψει τα αιτήματα για cookie, ώστε να κλείσει τα ενοχλητικά μηνύματα για cookie.\n\nΔιαχειριστείτε τις προτιμήσεις των μηνυμάτων για cookie στις %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">ρυθμίσεις</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Αυτόματη αναπαραγωγή</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Για να το επιτρέψετε:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Μεταβείτε στις ρυθμίσεις Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Πατήστε <b>Δικαιώματα</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Μετάβαση στις ρυθμίσεις</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Ενεργοποιήστε το <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Κάμερα</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Μικρόφωνο</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Τοποθεσία</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Ειδοποιήσεις</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Περιεχόμενο με έλεγχο DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Ερώτηση για αποδοχή</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Φραγή</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Αποδοχή</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Αποκλείστηκε από το Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Αποδοχή ήχου και βίντεο</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Φραγή ήχου μόνο</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Προτείνεται</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Φραγή ήχου και βίντεο</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Μελέτες</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Το Firefox ενδέχεται να εγκαθιστά και να εκτελεί περιστασιακά μελέτες.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Μάθετε περισσότερα</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Η εφαρμογή θα κλείσει για την εφαρμογή των αλλαγών</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Αφαίρεση</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Ενεργές</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Ολοκληρωμένες</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Απομακρυσμένος έλεγχος σφαλμάτων μέσω USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Ξεκλείδωμα</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Επιβεβαίωση με δακτυλικό αποτύπωμα</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Μπορείτε να χρησιμοποιήσετε το αποτύπωμά σας για να συνεχίσετε την τρέχουσα συνεδρία της εφαρμογής σας.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Άνοιγμα συνδέσμου σε νέα συνεδρία</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Εικονίδιο αποτυπώματος</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Το αποτύπωμα δεν αναγνωρίστηκε. Δοκιμάστε ξανά.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Το δάκτυλο κουνήθηκε πολύ γρήγορα. Δοκιμάστε ξανά.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Εμφάνιση προτάσεων αναζήτησης;</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Για να λάβετε προτάσεις, το %1$s πρέπει να στείλει ό,τι πληκτρολογείτε στη γραμμή διευθύνσεων στη μηχανή αναζήτησης.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Όχι</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Ναι</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Μερικές μηχανές αναζήτησης δεν μπορούν να εμφανίσουν προτάσεις.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Απόρριψη</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Απρόσμενη συμπεριφορά σε ιστότοπο;\n
+ Απενεργοποιήστε την προστασία από καταγραφή</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Πρόσβαση με ένα πάτημα σε συχνούς ιστοτόπους%1$s Μενού > Προσθήκη στην αρχική οθόνη]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Άνοιγμα κάθε συνδέσμου στο %1$s\n
+ Ορίστε το %1$s ως προεπιλογή
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Αυτόματη συμπλήρωση URL για συχνούς ιστοτόπους\n
+ Πατήστε παρατεταμένα οποιοδήποτε URL στη γραμμή διευθύνσεων
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Άνοιγμα συνδέσμου σε νέα καρτέλα\n
+ Πατήστε παρατεταμένο σε οποιονδήποτε σύνδεσμο μιας σελίδας
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Απενεργοποίηση συμβουλών αρχικής οθόνης</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Άνοιξε νέα καρτέλα</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Εναλλαγή</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Είσοδος σε λειτουργία πλήρους οθόνης</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Άμεση αλλαγή στον σύνδεσμο νέας καρτέλας</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Φραγή δυνητικά επικίνδυνων και παραπλανητικών ιστοτόπων</string>
+
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Φραγή ιστοτόπων εξαπάτησης, επιθέσεων, κακόβουλου και ανεπιθύμητου λογισμικού.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Λειτουργία «Μόνο HTTPS»</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Προσπαθεί αυτόματα να συνδεθεί σε ιστοτόπους με το πρωτόκολλο κρυπτογράφησης HTTPS για αυξημένη ασφάλεια.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Εξαιρέσεις</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Έχετε απενεργοποιήσει τη φραγή περιεχομένου στους εξής ιστοτόπους.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Αφαίρεση</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Αφαίρεση όλων των ιστοτόπων</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Φραγή cookie</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Θέλετε να αποκλείσετε τα cookie;</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Η καρτέλα κατέρρευσε</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Δυστυχώς, αντιμετωπίζουμε πρόβλημα με αυτήν την καρτέλα.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Για λόγους ασφαλείας, δεν αποθηκεύουμε ούτε μπορούμε να ανακτήσουμε αυτήν την καρτέλα.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Κλείσιμο καρτέλας</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Αποστολή αναφοράς κατάρρευσης στη Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Αποκλεισμένοι ιχνηλάτες από τις %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Περιεχόμενο</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Διαφημίσεις</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Κοινωνικά δίκτυα</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Αναλύσεις</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Ενισχυμένη προστασία από καταγραφή</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Η προστασία είναι ΑΝΕΝΕΡΓΗ για τον ιστότοπο</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Η προστασία είναι ΕΝΕΡΓΗ για τον ιστότοπο</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Η σύνδεση είναι ασφαλής</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Η σύνδεση δεν είναι ασφαλής</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Ιχνηλάτες και σενάρια για φραγή</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Επιστροφή</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Αφαίρεση</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Μετονομασία</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Μετονομασία</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Όνομα συντόμευσης</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">&lt;b&gt;Δεν&lt;/b&gt; διαγράφονται αποθηκευμένες και κοινόχρηστες εικόνες κατά την απαλοιφή ιστορικού του %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Θέμα</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Ανοιχτόχρωμο</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Σκουρόχρωμο</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Ορισμός από εξοικονόμηση μπαταρίας</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Χρήση θέματος συσκευής</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Αυτός ο ιστότοπος δεν υποστηρίζει HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[Το %1$s προσπαθεί να χρησιμοποιεί σύνδεση HTTPS, όποτε αυτό είναι δυνατό, για περισσότερη ασφάλεια.
+ <a href="%2$s">Μάθετε περισσότερα</a> <br/><br/>
+ Αλλάξτε αυτήν τη ρύθμιση στις Ρυθμίσεις > Απόρρητο και ασφάλεια > Ασφάλεια.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Μη ασφαλής σύνδεση</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Ενδέχεται να υπάρχει πρόβλημα με τη διαμόρφωση του διακομιστή ή κάποιος ίσως προσπαθεί να μιμηθεί τον διακομιστή. <br/><br/>
+ Εάν έχετε συνδεθεί επιτυχώς σε αυτόν τον διακομιστή στο παρελθόν, το σφάλμα είναι μάλλον προσωρινό.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Κάποιος ίσως προσπαθεί να μιμηθεί τον ιστότοπο και θα ήταν επικίνδυνο να συνεχίσετε.</label>
+ <br><br>
+ <label>Το %1$s δεν εμπιστεύεται το <b>%2$s</b>, επειδή ο εκδότης του πιστοποιητικού του είναι άγνωστος, το πιστοποιητικό είναι αυτοϋπογεγραμμένο ή ο διακομιστής δεν στέλνει τα σωστά ενδιάμεσα πιστοποιητικά.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Κλείσιμο καρτέλας</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Εμποδίσαμε την παρακολούθησή σας από αυτόν τον ιστότοπο. Πατήστε την ασπίδα ανά πάσα στιγμή για να δείτε τι αποκλείουμε.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Κλείσιμο παραθύρου</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Προστατεύεστε!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Αυτές οι προεπιλεγμένες ρυθμίσεις προσφέρουν ισχυρή προστασία. Αλλά μπορείτε εύκολα να τις προσαρμόσετε για να ταιριάξουν με τις δικές σας ανάγκες.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Απόρριψη</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Πατήστε εδώ για να τα διαγράψετε όλα — ιστορικό, cookie, τα πάντα — και ξεκινήστε από την αρχή σε μια νέα καρτέλα.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Κλείσιμο</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Γραφικό στοιχείο αναζήτησης</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Το ιστορικό περιήγησης διαγράφηκε! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Ξεκινήστε τη συνεδρία ιδιωτικής περιήγησής σας και θα αποκλείσουμε τους ιχνηλάτες και άλλα επιβλαβή στοιχεία.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Θα σας αφήσουμε στην ιδιωτική σας περιήγηση, αλλά ξεκινήστε πιο γρήγορα την επόμενη φορά με το γραφικό στοιχείο %1$s στην αρχική σας οθόνη.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Προσθήκη γραφικού στοιχείου στην αρχική οθόνη</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Το γραφικό στοιχείο προστέθηκε στην αρχική οθόνη</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-en-rCA/strings.xml b/mobile/android/focus-android/app/src/main/res/values-en-rCA/strings.xml
new file mode 100644
index 0000000000..99594114ac
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-en-rCA/strings.xml
@@ -0,0 +1,1118 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Cancel</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Save</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Search or enter address</string>
+
+ <string name="teaser">Automatic private browsing.\nBrowse. Erase. Repeat.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Your browsing history has been erased.</string>
+ <string name="feedback_erase2">Browsing history cleared</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Tab’s browsing history has been erased.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Search for %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Share…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Report Site Issue</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Open in %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Open in…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Add to Home screen</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Add to Shortcuts</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Remove from Shortcuts</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Settings</string>
+ <string name="menu_about">About</string>
+ <string name="menu_help">Help</string>
+ <string name="menu_rights">Your Rights</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Trackers blocked</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Turning this off may fix some site problems</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Content Blocking</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Turn off to fix some sites</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Powered by %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Share via</string>
+
+ <string name="notification_erase_title_android_14">Erase browsing history?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tap or clear this notification to securely erase your browsing history.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tap or swipe this notification to securely erase your browsing history.</string>
+
+ <string name="notification_erase_text">Erase browsing history</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Open</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Erase and Open</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Erase</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Erase browsing history</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Erase &amp; open</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Erase and open %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Search in Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Search in Klar</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Search in Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Search in Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s puts you in control.</p>
+<p>Use it as a private browser:
+ <ul>
+ <li>Search and browse right in the app</li>
+ <li>Block trackers (or update settings to allow trackers)</li>
+ <li>Erase to delete cookies as well as search and browsing history</li>
+ </ul>
+</p>
+<p>%1$s is produced by Mozilla. Our mission is to foster a healthy, open Internet.<br/>
+<a href="%2$s">Learn more</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privacy &amp; Security</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Tracking, cookies, data choices</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Set default, autocomplete</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">About %1$s, help</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Enhanced Tracking Protection</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Web Content</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Switching Apps</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">General</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Default browser, language</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Data Collection &amp; Use</string>
+
+ <string name="preference_category_search">Search</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Get search suggestions</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s will send what you type in the address bar to your search engine</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Default</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Search engine</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">On</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Off</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL Autocomplete</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">For Top sites</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Enable to have %s autocomplete over 450 popular URLs in the address bar.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">For Sites You Add</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Enable to have %s autocomplete your favourite URLs.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Manage sites</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Manage sites</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Add custom URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Your autocomplete list:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Add URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Add custom URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Add custom URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Add link to autocomplete</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies and Site Data</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Data Choices</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Remove custom URLs</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Learn more</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Add and manage custom autocomplete URLs.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL to add</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Paste or enter URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Example: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Example: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">New custom URL added.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Remove</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Remove</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Double-check the URL you entered.</string>
+
+ <string name="preference_language">Language</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">System default</string>
+
+ <string name="preference_category_privacy">Privacy</string>
+ <string name="preference_privacy_block_ads">Block ad trackers</string>
+ <string name="preference_privacy_block_ads_summary">Some ads track site visits, even if you don’t click the ads</string>
+ <string name="preference_privacy_block_analytics">Block analytic trackers</string>
+ <string name="preference_privacy_block_analytics_summary">Used to collect, analyze and measure activities like tapping and scrolling</string>
+ <string name="preference_privacy_block_social">Block social trackers</string>
+ <string name="preference_privacy_block_social_summary">Embedded on sites to track your visits and to display functionality like share buttons</string>
+ <string name="preference_privacy_block_content">Block other content trackers</string>
+ <string name="preference_privacy_block_content_summary2">Enabling may cause some pages to behave unexpectedly</string>
+ <string name="preference_privacy_category_cookies">Block cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">No thanks</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Block 3rd-party tracker cookies only</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Block 3rd-party cookies only</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Block cross-site cookies</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Yes please</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Use fingerprint to unlock app</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Unlock using fingerprint if you’ve added Shortcuts or when a website is already open in %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Stealth</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Hide webpages when switching apps and block taking screenshots.</string>
+
+ <string name="preference_category_security">Security</string>
+
+ <string name="preference_category_performance">Performance</string>
+ <string name="preference_performance_block_webfonts">Block Web fonts</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">May result in missing icons or images</string>
+
+ <string name="preference_performance_block_javascript">Block JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Pages may load faster, but may also behave unexpectedly</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Make %1$s default browser</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Send usage data</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Learn more</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla strives to collect only what we need to provide and improve %1$s for everyone.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Privacy Notice</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Licensing information</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Libraries that we use</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS Libraries</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">About %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Installed search engines</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Choose search engine</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Restore default search engines</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Add another search engine</string>
+ <string name="preference_search_remove_title">Remove search engines</string>
+ <string name="preference_search_remove">Remove</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Add another search engine</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Select your preferred engine:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Add search engine</string>
+
+ <string name="search_add_manually_name_hint">Search engine name</string>
+ <string name="search_add_manually_string">Search string to use</string>
+ <string name="search_add_manually_save">Save</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Example: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">New search engine added.</string>
+
+ <string name="search_add_error_empty_name">Enter search engine name</string>
+ <string name="search_add_error_duplicate_name">An installed search engine is already using that name.</string>
+
+ <string name="search_add_error_empty_search">Enter search string</string>
+
+ <string name="search_add_error_format">Check that search string matches Example format</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Clear input</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Dismiss</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Erase browsing history</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Tabs open: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Secure connection</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Loading</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Website loaded</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">More options</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">More options button</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Navigate forward</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Reload website</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Navigate back</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Stop loading website</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Return to previous app</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Number of trackers blocked</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Block trackers</string>
+
+ <string name="your_rights">Your Rights</string>
+
+ <string name="external_app_prompt_title">Open link in another app</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">You can leave %1$s to open this link in %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Find an app that can open link</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">None of the apps on your device are able to open this link. You can leave %1$s to search %2$s for an app that can.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Exit Private Browsing?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s finished</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Open</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Added to shortcuts!</string>
+
+ <string name="error_hostLookup_title">Server not found</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Close</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Welcome to %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Fast. Private. No distractions.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Get started</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s isn’t like other browsers</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">We clear your history when you close the app for extra privacy.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Make %1$s your default to protect your data with every link you open.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Set as default browser</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Skip</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Power up your privacy</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Take private browsing to the next level. Block ads and other content that can track you across sites and bog down page load times.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Your search, your way</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Searching for something different? Choose another default search engine in Settings.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Add shortcuts to your home screen</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Return to your favourite sites in %1$s quickly. Just select “Add to Home screen” from the %1$s menu.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Make privacy a habit</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Set %1$s as your default browser and get the benefits of private browsing when you open webpages from other apps.</string>
+
+ <string name="firstrun_close_button">OK, got it!</string>
+ <string name="firstrun_skip_button">Skip</string>
+ <string name="firstrun_next_button">Next</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Add</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">YES</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Cancel</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NO</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Shortcut will open with Enhanced Tracking Protection disabled</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Private browsing session</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Notifications let you erase your %1$s session with a tap. You don’t need to open the app or see what’s running in your browser.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Erase browsing history</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Download Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s is free and open source software made by Mozilla and other contributors.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s is made available to you under the terms of the <a href="%2$s">Mozilla Public License</a> and other open source licenses.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[You are not granted any rights or licenses to the trademarks of the Mozilla Foundation or any party, including the Mozilla, Firefox or %1$s names or logos. Additional information may be found <a href="%2$s">here</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Additional source code for %1$s is available under various other free and open source <a href="%2$s">licenses</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s also uses blocklists provided by Disconnect, Inc. as separate and independent works under the <a href="%2$s">GNU General Public License v3</a>, and available <a href="%3$s">here</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Username</string>
+ <string name="gv_prompt_password_hint">Password</string>
+ <string name="gv_prompt_clear">Clear</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Secure Connection</string>
+ <string name="security_popup_insecure_connection">Insecure Connection</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verified by: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Site Security</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL already exists</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Find in Page</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Find in page</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d out of %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Find next result</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Find previous result</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Dismiss find in page</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Request desktop site</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Desktop site</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL copied</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Developer tools</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Open links in apps</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Advanced</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Site permissions</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Cookie Banner Reduction</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">On</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Off</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Cookie Banner Reduction</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">See fewer banners by automatically rejecting cookie requests, when possible.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Cookie Banner Reduction</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ON for this site</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Site currently not supported</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">OFF for this site</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Cookie Banner Reduction</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">OFF for this site</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ON for this site</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Turn on Cookie Banner Reduction for %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Turn off Cookie Banner Reduction for %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s will clear this site’s cookies and refresh the page. Clearing all cookies may sign you out or empty shopping carts.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s can try to automatically reject cookie requests.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">This site is currently not supported by Cookie Banner Reduction. Would you like to request our team review this website and add support in the future?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Cancel</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Request support</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Request to support site submitted.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Request to support site submitted.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s tries to reject cookie requests to dismiss annoying cookie banners.\n\nManage cookie banner preferences in %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">settings</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Autoplay</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">To allow it:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Go to Android Settings</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tap <b>Permissions</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Go to Settings</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Toggle <b>%1$s</b> to ON]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Camera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Microphone</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Location</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notification</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-controlled content</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Ask to allow</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blocked</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Allowed</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blocked by Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Allow audio and video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Block audio only</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Recommended</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Block audio and video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studies</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox may install and run studies from time to time.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Learn more</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">The application will quit to apply changes</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Remove</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Active</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Completed</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Remote debugging via USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Unlock</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Confirm Using Your Fingerprint</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">You can use your fingerprint to continue your current app session.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Open Link in New Session</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Fingerprint icon</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Fingerprint not recognized. Try again.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Finger moved too fast. Try again.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Show search suggestions?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> To get suggestions, %1$s needs to send what you type in the address bar to the search engine.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">No</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Yes</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Some search engines cannot show suggestions.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Dismiss</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Site behaving unexpectedly?\n Try turning off Tracking Protection</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Get one-tap access to sites you use most%1$s Menu > Add to Home screen]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Open every link in %1$s\n Set %1$s as default browser</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Autocomplete URLs for sites you use most\n Long-press any URL in the address bar</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Open a link in a new tab\n Long-press any link on a page</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Turn off tips on the start screen</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">New tab opened</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Switch</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Entering full screen mode</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Switch to link in new tab immediately</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Block potentially dangerous and deceptive sites</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Block reported deceptive and attack sites, malware sites, and unwanted software sites.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">HTTPS-Only Mode</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Automatically attempts to connect to sites using the HTTPS encryption protocol for increased security.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Exceptions</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">You have disabled Content Blocking for these websites.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Remove</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Remove all websites</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Block Cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Would you like to block cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Tab Crashed</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Sorry. We’re having a problem with this tab.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">As a private browser, we never save and cannot restore this tab.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Close Tab</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Send crash report to Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Trackers blocked since %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Content</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Advertising</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analytics</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Enhanced Tracking Protection</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Protections are OFF for this site</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Protections are ON for this site</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Connection is secure</string>
+
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Connection is not secure</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Trackers and Scripts to Block</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Go back</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Remove</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Rename</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Rename</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Shortcut name</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Saved and shared images &lt;b&gt;will not be&lt;/b&gt; deleted when you erase %1$s history</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Theme</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Light</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Dark</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Set by Battery Saver</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Follow device theme</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">This site doesn’t support HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s tries to use an HTTPS connection whenever possible for more security.
+ <a href="%2$s">Learn more</a> <br/><br/>
+ Change this setting in Settings > Privacy &amp; Security > Security.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Connection not secure</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ This could be a problem with the server’s configuration, or it could be someone trying to impersonate the server. <br/><br/>
+ If you’ve connected to this server successfully in the past, the error may be temporary.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Someone could be trying to impersonate the site and continuing could be risky.</label>
+ <br><br>
+ <label>%1$s does not trust <b>%2$s</b> because its certificate issuer is unknown, the certificate is self-signed, or the server is not sending the correct intermediate certificates.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Close tab</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Got ‘em! We stopped this site from spying on you. Tap the shield any time to see what we’re blocking.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Close popup</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">You’re protected!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">These default settings offer strong protection. But it’s easy to tweak the settings to meet your specific needs.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Dismiss</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tap here to trash it all — history, cookies, everything — and start fresh on a new tab.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Close</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Search widget</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Browsing history cleared! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Start your private browsing session, and we’ll block trackers and other bad stuff as you go.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">We’ll leave you to your private browsing, but get a quicker start next time with the %1$s widget on your Home screen.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Add widget to home screen</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget added to home screen</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-en-rGB/strings.xml b/mobile/android/focus-android/app/src/main/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000000..48fb8ef313
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-en-rGB/strings.xml
@@ -0,0 +1,1090 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Cancel</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Save</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Search or enter address</string>
+
+ <string name="teaser">Automatic private browsing.\nBrowse. Erase. Repeat.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Your browsing history has been erased.</string>
+ <string name="feedback_erase2">Browsing history cleared</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Tab’s browsing history has been erased.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Search for %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Share…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Report Site Issue</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Open in %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Open in…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Add to Home screen</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Add to Shortcuts</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Remove from Shortcuts</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Settings</string>
+ <string name="menu_about">About</string>
+ <string name="menu_help">Help</string>
+ <string name="menu_rights">Your Rights</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Trackers blocked</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Turning this off may fix some site problems</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Content Blocking</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Turn off to fix some sites</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Powered by %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Share via</string>
+
+ <string name="notification_erase_title_android_14">Erase browsing history?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tap or clear this notification to securely erase your browsing history.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tap or swipe this notification to securely erase your browsing history.</string>
+
+ <string name="notification_erase_text">Erase browsing history</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Open</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Erase and Open</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Erase</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Erase browsing history</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Erase &amp; open</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Erase and open %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Search in Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Search in Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Search in Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Search in Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s puts you in control.</p>
+<p>Use it as a private browser:
+ <ul>
+ <li>Search and browse right in the app</li>
+ <li>Block trackers (or update settings to allow trackers)</li>
+ <li>Erase to delete cookies as well as search and browsing history</li>
+ </ul>
+</p>
+<p>%1$s is produced by Mozilla. Our mission is to foster a healthy, open Internet.<br/>
+<a href="%2$s">Learn more</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privacy &amp; Security</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Tracking, cookies, data choices</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Set default, autocomplete</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">About %1$s, help</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Enhanced Tracking Protection</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Web Content</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Switching Apps</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">General</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Default browser, language</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Data Collection &amp; Use</string>
+
+ <string name="preference_category_search">Search</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Get search suggestions</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s will send what you type in the address bar to your search engine</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Default</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Search engine</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">On</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Off</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL Autocomplete</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">For Top sites</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Enable to have %s autocomplete over 450 popular URLs in the address bar.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">For Sites You Add</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Enable to have %s autocomplete your favourite URLs.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Manage sites</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Manage sites</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Add custom URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Your autocomplete list:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Add URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Add custom URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Add custom URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Add link to autocomplete</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies and Site Data</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Data Choices</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Remove custom URLs</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Learn more</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Add and manage custom autocomplete URLs.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL to add</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Paste or enter URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Example: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Example: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">New custom URL added.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Remove</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Remove</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Double-check the URL you entered.</string>
+
+ <string name="preference_language">Language</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">System default</string>
+
+ <string name="preference_category_privacy">Privacy</string>
+ <string name="preference_privacy_block_ads">Block ad trackers</string>
+ <string name="preference_privacy_block_ads_summary">Some ads track site visits, even if you don’t click the ads</string>
+ <string name="preference_privacy_block_analytics">Block analytic trackers</string>
+ <string name="preference_privacy_block_analytics_summary">Used to collect, analyse and measure activities like tapping and scrolling</string>
+ <string name="preference_privacy_block_social">Block social trackers</string>
+ <string name="preference_privacy_block_social_summary">Embedded on sites to track your visits and to display functionality like share buttons</string>
+ <string name="preference_privacy_block_content">Block other content trackers</string>
+ <string name="preference_privacy_block_content_summary2">Enabling may cause some pages to behave unexpectedly</string>
+ <string name="preference_privacy_category_cookies">Block cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">No thanks</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Block 3rd-party tracker cookies only</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Block 3rd-party cookies only</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Block cross-site cookies</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Yes please</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Use fingerprint to unlock app</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Unlock using fingerprint if you’ve added Shortcuts or when a web site is already open in %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Stealth</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Hide web pages when switching apps and block taking screenshots.</string>
+
+ <string name="preference_category_security">Security</string>
+
+ <string name="preference_category_performance">Performance</string>
+ <string name="preference_performance_block_webfonts">Block web fonts</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">May result in missing icons or images</string>
+
+ <string name="preference_performance_block_javascript">Block JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Pages may load faster, but may also behave unexpectedly</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Make %1$s default browser</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Send usage data</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Learn more</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla strives to collect only what we need to provide and improve %1$s for everyone.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Privacy Notice</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Licensing information</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Libraries that we use</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS Libraries</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">About %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Installed search engines</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Choose search engine</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Restore default search engines</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Add another search engine</string>
+ <string name="preference_search_remove_title">Remove search engines</string>
+ <string name="preference_search_remove">Remove</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Add another search engine</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Select your preferred engine:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Add search engine</string>
+
+ <string name="search_add_manually_name_hint">Search engine name</string>
+ <string name="search_add_manually_string">Search string to use</string>
+ <string name="search_add_manually_save">Save</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Example: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">New search engine added.</string>
+
+ <string name="search_add_error_empty_name">Enter search engine name</string>
+ <string name="search_add_error_duplicate_name">An installed search engine is already using that name.</string>
+
+ <string name="search_add_error_empty_search">Enter search string</string>
+
+ <string name="search_add_error_format">Check that search string matches Example format</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Clear input</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Dismiss</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Erase browsing history</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Tabs open: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Secure connection</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Loading</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Web site loaded</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">More options</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">More options button</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Navigate forwards</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Reload web site</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Navigate backwards</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Stop loading web site</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Return to previous app</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Number of trackers blocked</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Block trackers</string>
+
+ <string name="your_rights">Your Rights</string>
+
+ <string name="external_app_prompt_title">Open link in another app</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">You can leave %1$s to open this link in %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Find an app that can open link</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">None of the apps on your device are able to open this link. You can leave %1$s to search %2$s for an app that can.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Exit Private Browsing?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s finished</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Open</string>
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Added to shortcuts!</string>
+
+ <string name="error_hostLookup_title">Server not found</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Close</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Welcome to %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Fast. Private. No distractions.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Get started</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s isn’t like other browsers</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">We clear your history when you close the app for extra privacy.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Make %1$s your default to protect your data with every link you open.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Set as default browser</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Skip</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Power up your privacy</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Take private browsing to the next level. Block ads and other content that can track you across sites and bog down page load times.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Your search, your way</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Searching for something different? Choose another default search engine in Settings.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Add shortcuts to your home screen</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Return to your favourite sites in %1$s quickly. Just select \&quot;Add to Home screen\&quot; from the %1$s menu.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Make privacy a habit</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Set %1$s as your default browser and get the benefits of private browsing when you open web pages from other apps.</string>
+
+ <string name="firstrun_close_button">OK, got it!</string>
+
+ <string name="firstrun_skip_button">Skip</string>
+ <string name="firstrun_next_button">Next</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Add</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">YES</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Cancel</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NO</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Shortcut will open with Enhanced Tracking Protection disabled</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Private browsing session</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Notifications let you erase your %1$s session with a tap. You don’t need to open the app or see what’s running in your browser.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Erase browsing history</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Download Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s is free and open source software made by Mozilla and other contributors.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s is made available to you under the terms of the <a href="%2$s">Mozilla Public License</a> and other open source licences.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[You are not granted any rights or licences to the trademarks of the Mozilla Foundation or any party, including the Mozilla, Firefox or %1$s names or logos. Additional information may be found <a href="%2$s">here</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Additional source code for %1$s is available under various other free and open source <a href="%2$s">licences</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s also uses blocklists provided by Disconnect, Inc. as separate and independent works under the <a href="%2$s">GNU General Public Licence v3</a>, and available <a href="%3$s">here</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Username</string>
+ <string name="gv_prompt_password_hint">Password</string>
+ <string name="gv_prompt_clear">Clear</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Secure Connection</string>
+ <string name="security_popup_insecure_connection">Insecure Connection</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verified by: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Site Security</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL already exists</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Find in Page</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Find in page</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d out of %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Find next result</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Find previous result</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Dismiss find in page</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Request desktop site</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Desktop site</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL copied</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Developer tools</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Open links in apps</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Advanced</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Site permissions</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Cookie Banner Reduction</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">On</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Off</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Cookie Banner Reduction</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">See fewer banners by automatically rejecting cookie requests, when possible.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Cookie Banner Reduction</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ON for this site</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Site currently not supported</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">OFF for this site</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Cookie Banner Reduction</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">OFF for this site</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ON for this site</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Turn on Cookie Banner Reduction for %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Turn off Cookie Banner Reduction for %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s will clear this site’s cookies and refresh the page. Clearing all cookies may sign you out or empty shopping carts.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s can try to automatically reject cookie requests.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">This site is currently not supported by Cookie Banner Reduction. Would you like to request our team review this web site and add support in the future?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Cancel</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Request support</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Request to support site submitted.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Request to support site submitted.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s tries to reject cookie requests to dismiss annoying cookie banners.\n\nManage cookie banner preferences in %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">settings</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Autoplay</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">To allow it:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Go to Android Settings</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tap <b>Permissions</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Go to Settings</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Toggle <b>%1$s</b> to ON]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Camera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Microphone</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Location</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notification</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-controlled content</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Ask to allow</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blocked</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Allowed</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blocked by Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Allow audio and video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Block audio only</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Recommended</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Block audio and video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studies</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox may install and run studies from time to time.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Learn more</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">The application will quit to apply changes</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Remove</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Active</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Completed</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Remote debugging via USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Unlock</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Confirm Using Your Fingerprint</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">You can use your fingerprint to continue your current app session.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Open Link in New Session</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Fingerprint icon</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Fingerprint not recognised. Try again.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Finger moved too fast. Try again.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Show search suggestions?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> To get suggestions, %1$s needs to send what you type in the address bar to the search engine.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">No</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Yes</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Some search engines cannot show suggestions.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Dismiss</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Site behaving unexpectedly?\n
+ Try turning off Tracking Protection</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Get one-tap access to sites you use most%1$s Menu > Add to Home screen]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Open every link in %1$s\n
+ Set %1$s as default browser
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Autocomplete URLs for sites you use most\n
+ Long-press any URL in the address bar
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Open a link in a new tab\n
+ Long-press any link on a page
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Turn off tips on the start screen</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">New tab opened</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Switch</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Entering full screen mode</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Switch to link in new tab immediately</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Block potentially dangerous and deceptive sites</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Block reported deceptive and attack sites, malware sites and unwanted software sites.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">HTTPS-Only Mode</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Automatically attempts to connect to sites using the HTTPS encryption protocol for increased security.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Exceptions</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">You have disabled content blocking for these web sites.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Remove</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Remove all web sites</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Block Cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Would you like to block cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Tab Crashed</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Sorry. We’re having a problem with this tab.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">As a private browser, we never save and cannot restore this tab.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Close Tab</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Send crash report to Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Trackers blocked since %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Content</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Advertising</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analytics</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Enhanced Tracking Protection</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Protections are OFF for this site</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Protections are ON for this site</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Connection is secure</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Connection is not secure</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Trackers and Scripts to Block</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Go backwards</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Remove</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Rename</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Rename</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Shortcut name</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Saved and shared images &lt;b&gt;will not be&lt;/b&gt; deleted when you erase %1$s history</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Theme</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Light</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Dark</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Set by Battery Saver</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Follow device theme</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">This site doesn’t support HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s tries to use an HTTPS connection whenever possible for more security.
+ <a href="%2$s">Learn more</a> <br/><br/>
+ Change this setting in Settings > Privacy &amp; Security > Security.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Connection not secure</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ This could be a problem with the server’s configuration, or it could be someone trying to impersonate the server. <br/><br/>
+ If you’ve connected to this server successfully in the past, the error may be temporary.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Someone could be trying to impersonate the site and continuing could be risky.</label>
+ <br><br>
+ <label>%1$s does not trust <b>%2$s</b> because its certificate issuer is unknown, the certificate is self-signed, or the server is not sending the correct intermediate certificates.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Close tab</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Got ‘em! We stopped this site from spying on you. Tap the shield any time to see what we’re blocking.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Close popup</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">You’re protected!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">These default settings offer strong protection. But it’s easy to tweak the settings to meet your specific needs.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Dismiss</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tap here to trash it all — history, cookies, everything — and start fresh on a new tab.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Close</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Search widget</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Browsing history cleared! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Start your private browsing session, and we’ll block trackers and other bad stuff as you go.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">We’ll leave you to your private browsing, but get a quicker start next time with the %1$s widget on your Home screen.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Add widget to home screen</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget added to home screen</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-eo/strings.xml b/mobile/android/focus-android/app/src/main/res/values-eo/strings.xml
new file mode 100644
index 0000000000..4e0c38728b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-eo/strings.xml
@@ -0,0 +1,1118 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Nuligi</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Akcepti</string>
+
+ <string name="action_save">Konservi</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Serĉu ion aŭ tajpu adreson</string>
+
+ <string name="teaser">Aŭtomata privata retumo.\nRetumu. Viŝu. Ripetu.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Via retuma historio estis viŝita.</string>
+
+ <string name="feedback_erase2">Retuma historio viŝita</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">La retuma historio de la langeto estis viŝita.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Serĉi %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Dividi…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Raporti problemon en retejo</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Malfermi per %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Malfermi per…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Aldoni al hejmekrano</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Aldoni al ŝparvojoj</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Forigi el ŝparvojoj</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Agordoj</string>
+ <string name="menu_about">Pri</string>
+ <string name="menu_help">Helpo</string>
+ <string name="menu_rights">Viaj rajtoj</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Blokitaj spuriloj</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Malŝalto de tio ĉi povus solvi kelkajn retejajn problemojn</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blokado de enhavo</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Malŝalti por ripari kelkajn retejojn</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Kun teknologio de %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Dividi per</string>
+
+ <string name="notification_erase_title_android_14">Ĉu viŝi retuman historion?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tuŝetu aŭ viŝu tiun ĉi sciigon por sekure viŝi vian retuman historion.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tuŝetu aŭ forŝovu tiun ĉi sciigon por sekure viŝi vian retuman historion.</string>
+
+ <string name="notification_erase_text">Forviŝi retuman historion</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Malfermi</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Forigi kaj malfermi</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Forviŝi</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Forviŝi retuman historion</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Forigi kaj malfermi</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Forigi kaj malfermi %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Serĉi en Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Serĉi en Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Serĉi en Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Serĉi en Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s igas vin reganto.</p>
+<p>Uzu ĝin kiel privatan retumilon:
+ <ul>
+ <li>Serĉu kaj retumu rekte el la programo</li>
+ <li>Bloku spurilojn (aŭ agordi por permesi spurilojn)</li>
+ <li>Forigu kuketojn kaj ankaŭ retuman kaj serĉan historion</li>
+ </ul>
+</p>
+<p>%1$s estas farita de Mozilla. Nia misio estas stimuli sanan kaj malfermitan interreton.<br/>
+<a href="%2$s">Pli da informo</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privateco kaj sekureco</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Spurado, kuketoj, elekto de datumoj</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Difini kiel norman, aŭtomata kompletigo</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Pri %1$s, helpo</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Plibonigita protekto kontraŭ spurado</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Teksaĵa enhavo</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Ŝanĝo de programoj</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Ĝenerala</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Norma retumilo, lingvo</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Kolekto kaj uzo de datumoj</string>
+
+ <string name="preference_category_search">Serĉi</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Ricevi serĉajn sugestojn</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s sendos tion, kion vi tajpas en la adresa strio, al via serĉilo</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Norma</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Serĉilo</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Ŝaltita</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Malŝaltita</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Aŭtomata kompletigo de adresoj</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Por la plej vizititaj retejoj</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Aktivigu por igi %s aŭtomate kompletigi pli ol 450 popularajn adresojn en la adresa strio.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Por retejoj, kiujn vi aldonas</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Akvitigi por ke %s aŭtomate kompletigu viajn plej ŝatatajn retadresojn.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Administri retejojn</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Administri retejojn</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Aldoni personecigitan adreson</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Via listo de aŭtomata plenigo:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Aldoni adreson</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Aldoni personecigitan adreson</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Aldoni personecigitan adreson</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Aldoni aŭtomate plenigendan ligilon</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Kuketoj kaj retejaj datumoj</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Elekto de datumoj</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Forigi personecigitajn adresojn</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Pli da informo</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Aldoni kaj administri aŭtomatan kompletigon de personecigitaj adresoj.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Aldonota adreso</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Alglui aŭ tajpi adreson</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Ekzemplo: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Ekzemplo: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Nova personecigita adreso aldonita.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Forigi</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Forigi</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Kontrolu denove la tajpitan adreson.</string>
+
+ <string name="preference_language">Lingvo</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Sistema normo</string>
+
+ <string name="preference_category_privacy">Privateco</string>
+ <string name="preference_privacy_block_ads">Bloki reklamajn spurilojn</string>
+ <string name="preference_privacy_block_ads_summary">Kelkaj reklamoj spuras viajn vizitojn, eĉ se vi ne alklakas ilin</string>
+ <string name="preference_privacy_block_analytics">Bloki analizajn spurilojn</string>
+ <string name="preference_privacy_block_analytics_summary">Ili estas uzataj por kolekti, analizi kaj mezuri agojn, kiel tuŝetojn kaj rulumojn</string>
+ <string name="preference_privacy_block_social">Bloki sociajn spurilojn</string>
+ <string name="preference_privacy_block_social_summary">Inkluzivitaj en retejoj por spuri viajn vizitojn kaj montri funkciojn, kiel dividajn butonojn</string>
+ <string name="preference_privacy_block_content">Bloki spurilojn en aliaj enhavoj</string>
+ <string name="preference_privacy_block_content_summary2">Se vi ŝaltas tion ĉi, kelkaj paĝoj povus neatendite konduti</string>
+ <string name="preference_privacy_category_cookies">Bloki kuketojn</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ne, dankon</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Bloki nur nerektajn spurajn kuketojn</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Bloki nur nerektajn kuketojn</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Bloki interretejajn kuketojn</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Jes, bonvolu</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Uzi fingrospuron por malbloki programon</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Malbloki per fingrospuro se vi aldonis ŝparvojojn aŭ kiam retejo jam estas malfermita en %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Kaŝreĝimo</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Kaŝi retpaĝojn dum ŝanĝo de programo kaj bloki la faradon de ekrankopioj.</string>
+
+ <string name="preference_category_security">Sekureco</string>
+
+ <string name="preference_category_performance">Efikeco</string>
+ <string name="preference_performance_block_webfonts">Bloki retajn tiparojn</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Tio povus malaperigi emblemojn aŭ bildojn</string>
+
+ <string name="preference_performance_block_javascript">Bloki JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Paĝoj povas aperi pli rapide, sed ankaŭ povas konduti neatendite</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Igi %1$s via norma retumilo</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Sendi datumojn pri uzo</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Pli da informo</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla penas kolekti nur la datumojn nepre bezonatajn por provizi kaj plibonigi %1$s por ĉiuj.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Rimarko pri privateco</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Permesila informo</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliotekoj uzataj de ni</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Malfermitkodaj bibliotekoj</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Pri %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Instalitaj serĉiloj</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Elekti serĉilon</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Remeti normajn serĉilojn</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Aldoni alian serĉilon</string>
+ <string name="preference_search_remove_title">Forigi serĉilojn</string>
+ <string name="preference_search_remove">Forigi</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Aldoni alian serĉilon</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Elektu vian preferatan serĉilon:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Aldoni serĉilon</string>
+
+ <string name="search_add_manually_name_hint">Nomo de serĉilo</string>
+ <string name="search_add_manually_string">Teksto por serĉi</string>
+ <string name="search_add_manually_save">Konservi</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Ekzemplo: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Nova serĉilo aldonita.</string>
+
+ <string name="search_add_error_empty_name">Tajpu nomon de serĉilo</string>
+ <string name="search_add_error_duplicate_name">Tiu nomo jam estas uzita de instalita serĉilo.</string>
+
+ <string name="search_add_error_empty_search">Tajpu serĉan tekston</string>
+
+ <string name="search_add_error_format">Kontrolu ĉu la serĉa teksto kongruas kun la formo de la ekzemplo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Viŝi kampon</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Ignori</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Viŝi retuman historion</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Malfermitaj langetoj: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Sekura konekto</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Ŝargado</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Retejo ŝargita</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Pli da elektebloj</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Butono por montri pli da elektebloj</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Iri antaŭen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Reŝargi retejon</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Iri reen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Haltigi ŝargadon de retejo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Reen al antaŭa programo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Nombro de blokitaj spuriloj</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Bloki spurilojn</string>
+
+ <string name="your_rights">Viaj rajtoj</string>
+
+ <string name="external_app_prompt_title">Malfermi ligilon en alia programo</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Vi povas forlasi %1$s por malfermi tiun ĉi ligilon en %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Serĉi programon, kiu povas malfermi ligilon</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Neniu programo en via aparato povas malfermi tiun ĉi ligilon. Vi povas forlasi %1$s por serĉi en %2$s programon kiu povas fari tion.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Ĉu eliri el privata retumo?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s finiĝis</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Malfermi</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Aldonita al ŝparvojoj!</string>
+
+ <string name="error_hostLookup_title">Servilo ne trovita</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Fermi</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Bonvenon al %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rapida. Privata. Sendistra.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Unuaj paŝoj</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s ne estas kiel aliaj retumiloj</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Ni viŝas vian historion kiam vi fermas la programon por havi kroman privatecon.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Igu %1$s via norma retumilo por protekti viajn datumojn en ĉiu malfermita ligilo.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Difini kiel norma retumilo</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Ignori</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Plibonigi vian privatecon</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Privata retumo pli altnivela, kun blokado de reklamoj kaj aliaj enhavoj, kiuj povas spuri vin trans retejoj kaj malrapidigi la ŝargon de paĝoj.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Via serĉo laŭ via maniero</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Ĉu vi serĉas ion alian, malsaman? Elektu alian norman serĉilon en la agordoj.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Aldoni rektajn alirojn al via hejmekrano</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">En %1$s, por reiri rapide al viaj plej ŝatataj retejoj, elektu \&quot;Aldoni al hejmekrano\&quot; en la menuo.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Alkutimiĝu al la privateco</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Elektu %1$s kiel via normal retumilo kaj ricevu ĉiujn avantaĝojn de la privata retumo, kiam vi malfermas paĝojn el aliaj programoj.</string>
+
+ <string name="firstrun_close_button">En ordo, mi komprenis!</string>
+ <string name="firstrun_skip_button">Ignori</string>
+ <string name="firstrun_next_button">Sekva</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Aldoni</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">JES</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Nuligi</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NE</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Tiu ĉi ŝparvojo estos malfermita sen plibonigita protekto kontraŭ spurado</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Privata retuma seanco</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Sciigoj permesas al vi viŝi vian seancon de %1$s per tuŝeto. Vi ne bezonas malfermi la programon aŭ vidi kio estas en via retumilo.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Viŝi retuman historion</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Elŝuti Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA["%1$s estas libera kaj malfermitkoda programaro, farita de Mozilla kaj aliaj kontribuintoj. "]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s estas liverita laŭ la kondiĉoj de la permesilo <a href="%2$s">Mozilla Public License</a> kaj de aliaj malfermitkodaj permesiloj.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Vi ricevas neniun rajton aŭ uzopermeson pri la registritaj markoj de Mozilla Foundation aŭ de iu alia. Tio inkluzivas la nomojn kaj emblemojn de Mozilla, Firefox aŭ %1$s. Pli da informo troveblas <a href="%2$s">ĉi tie</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Aldonaj fontaj kodoj por %1$s haveblas sub pluraj aliaj liberaj kaj malfermitkodaj <a href="%2$s">permesiloj</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s uzas ankaŭ listojn de blokado provizitaj de Disconnect, Inc. kiel apartajn kaj sendependajn verkojn sub la <a href="%2$s">GNU General Public License v3</a>, kiu haveblas <a href="%3$s">ĉi tie</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nomo de uzanto</string>
+ <string name="gv_prompt_password_hint">Pasvorto</string>
+ <string name="gv_prompt_clear">Viŝi</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Sekura konekto</string>
+ <string name="security_popup_insecure_connection">Nesekura konekto</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Kontrolita de: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Sekureco de retejo</string>
+ <string name="preference_autocomplete_duplicate_url_error">Retadreso jam ekzistas</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Serĉi en paĝo</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Serĉi en paĝo</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d el %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Trovi venontan rezulton</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Trovi antaŭan rezulton</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Fermi serĉon en paĝo</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Peti version por komputiloj</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Skribotabla retejo</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Retadreso kopiita</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Iloj por programistoj</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Malfermi ligilojn per programoj</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Spertula</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Permesoj por retejo</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Redukto de kuketaj anoncoj</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Ŝaltita</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Malŝaltita</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Redukto de kuketaj anoncoj</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Montri malpli da anoncoj per aŭtomata rifuzo de kuketaj petoj, kiam tio eblas.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Redukto de kuketaj anoncoj</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Ŝaltita por tiu ĉi retejo</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Retejo nuntempe ne subtenata</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Malŝaltita por tiu ĉi retejo</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Redukto de kuketaj anoncoj</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Malŝaltita por tiu ĉi retejo</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Ŝaltita por tiu ĉi retejo</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Ĉu ŝalti la redukton de kuketaj anoncoj en %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Ĉu malŝalti la redukton de kuketaj anoncoj en %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s forigos la kuketojn de tiuj ĉi retejo kaj reŝargos la paĝon. Forigo de ĉiuj kuketoj povas fini seancojn aŭ malplenigi aĉetumĉarojn.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s povas aŭtomate rifuzi kuketajn petojn.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Tiu ĉi retejo ne estas subtenata de la redukto de kuketaj anoncoj. Ĉu vi ŝatus peti al ni revizii tiun ĉi retejon, por subteni ĝin estontece?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Nuligi</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Peti subtenon</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">La peto pri subteno de retejo estis sendita.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">La peto pri subteno de retejo estis sendita.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s klopodas rifuzi kuketajn petojn por ignori ĝenajn anoncojn.\n\nAdministru viajn preferojn pri kuketaj anoncoj en %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">agordoj</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Aŭtomata ludado</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Por permesi ion:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Iru al Agordoj de Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tuŝetu <b>Permesoj</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Iri al agordoj</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Aktivigu <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Filmilo</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofono</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Loko</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Sciigoj</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Enhavo protektita de DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Demandi antaŭ ol permesi</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blokita</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Permesita</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blokita de Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Permesi sonon kaj videon</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Bloki nur sonon</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Rekomenditaj</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Bloki sonon kaj videon</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studoj</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox povas de tempo al tempo instali kaj fari studojn.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Pli da informo</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Tiu ĉi programo finiĝos por apliki ŝanĝojn</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Forigi</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktiva</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Kompleta</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Fora senerarigo per USB aŭ sendrata reto</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Malbloki</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Konfirmi per via fingrospuro</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Vi povas uzi vian fingrospuron por daŭrigi vian nunan sesion en la apo.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Malfermi ligilon en nova seancon</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Emblemo de fingrospuro</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Fingrospuro nerekonita. Provu denove.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">La fingro moviĝis tro rapide. Provu denove.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Ĉu montri serĉajn sugestojn?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Por povi ion sugesti, %1$s devas sendi kion vi tajpas en la adresa strio al la serĉilo.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ne</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Jes</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Kelkaj serĉiloj ne povas montri serĉajn sugestojn.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Ignori</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Ĉu la retejo neatendite kondutas?\n Provu malŝalti la protekton kontraŭ spurado</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Atingu viajn plej vizititajn retejojn per nura tuŝeto%1$s Menuo > Aldoni al hejmekrano]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Malfermi ĉiun ligilon per %1$s\n Igu %1$s via norma retumilo</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Aŭtomate kompletigi restadresojn por la retejoj, kiujn vi plej multe uzas\n Longe premu iun ajn retadreson en la adresa strio</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Malfermu ligilon en nova langeto\n Longe premu iun ajn ligilon en paĝo</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Malŝalti konsilojn en la komenca ekrano</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nova langeto malfermita</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Ŝanĝi</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Plenekrana reĝimo aktiva</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Iri tuj al la ligilo en nova langeto</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Bloki verŝajne danĝeran kaj trompan enhavon</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Bloki raportitajn trompajn, atakajn, fiprogramajn kaj trudprogramajn retejojn.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">HTTPS-nura reĝimo</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Aŭtomate klopodi konekti al retejoj per la ĉifrita HTTPS protokolo por pli sekura aliro.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Esceptoj</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Vi malaktvigis la blokadon de enhavo por tiuj ĉi retejoj.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Forigi</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Forigi ĉiujn retejojn</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Bloki kuketojn</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Ĉu vi ŝatus bloki kuketojn?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Langeto paneis</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Bedaŭrinde ni havas problemojn kun tiu ĉi langeto.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Kiel privata retumilo, ni neniam konservis kaj do ne povas restarigi tiun ĉi langeton.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Fermi langeton</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Sendi raporton pri paneo al Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Spuriloj blokitaj ekde %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Enhavo</string>
+
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Reklamado</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Socia</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Statistikoj</string>
+
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Plibonigita protekto kontraŭ spurado</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Protektoj malŝaltitaj por tiu ĉi retejo</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Protektoj ŝaltitaj por tiu ĉi retejo</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Sekura konekto</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Nesekura konekto</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Spuriloj kaj skriptoj blokendaj</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Malantaŭen</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Forigi</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Renomi</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Renomi</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nomo de ŝparvojo</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Konservitaj kaj dividitaj bildoj &lt;b&gt;ne estos&lt;/b&gt; forigitaj kiam vi viŝas la historion de %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Etoso</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Hela</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Malhela</string>
+
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Difinita de la energiŝparilo</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Uzi la etoson de la aparato</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Tiu ĉi retejo ne subtenas HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s klopodas uzi konekton HTTPS, kiam tio eblas, pro sekureco.
+ <a href="%2$s">Pli da informo</a> <br/><br/>
+ Ŝanĝu tiun ĉi agordon en Agordoj > Privateco kaj sekureco > Sekureco.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Nesekura konekto</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Tio povus esti problemo kun la agordoj de la servilo, aŭ iu kiu klopodas trompe ŝajnigi esti tiu servilo. <br/><br/>
+ Se vi sukcese konektiĝis al tiu ĉi servilo en la pasinto, la eraro povas esti momenta. ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[<label>Iu povus voli trompe aspekti kiel tiu retejo, kaj daŭrigo estas riska.</label>
+ <br><br>
+<label>%1$s ne fidas <b>%2$s</b> ĉar la eldoninto de ĝia atestilo estas nekonata, la atestilo estas memsubskribita aŭ la servilo ne sendas la ĝustajn perajn atestilojn.</label>
+]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Fermi langeton</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Kaptita! Ni evitis ke tiu ĉi retejo spionu vin. Tuŝetu la ŝildon iam ajn por vidi kion ni blokas.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Fermi ŝprucaĵon</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Vi estas protektata!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Tiuj ĉi normaj agordoj provizas fortan protekton. Sed estas facile modifi ilin por viaj specifaj bezonoj.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Ignori</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tuŝetu ĉi tie por forigi ĉion — historion, kuketojn, ĉion — kaj komenci je nulo en nova langeto.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Fermi</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Serĉila komponanto</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Retuma historio viŝita! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Komencu vian seancon de privata retumo kaj ni blokos spurilojn kaj aliajn aĉaĵojn dum vi retumas.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Plu retumu private, sed venontfoje komencu tion pli rapide per komponanto de %1$s en via hejmekrano.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Aldoni komponanton al hejmekrano</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Komponanto aldonita al hejmekrano</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-es-rAR/strings.xml b/mobile/android/focus-android/app/src/main/res/values-es-rAR/strings.xml
new file mode 100644
index 0000000000..02222fab8c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-es-rAR/strings.xml
@@ -0,0 +1,1121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Cancelar</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Aceptar</string>
+
+ <string name="action_save">Guardar</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Buscar o ingresar dirección</string>
+
+ <string name="teaser">Navegación privada automática.\nNavegar. Borrar. Repetir.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Se borró el historial de navegación.</string>
+ <string name="feedback_erase2">Historial de navegación borrado</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Se borró el historial de navegación de la pestaña.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Buscar %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Compartir…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Informar sobre problema en el sitio</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Abrir en %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Abrir en…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Agregar a pantalla de inicio</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Agregar acceso directo</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Eliminar acceso directo</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Configuración</string>
+ <string name="menu_about">Acerca de</string>
+ <string name="menu_help">Ayuda</string>
+ <string name="menu_rights">Tus derechos</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Rastreadores bloqueados</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Desactivar esto puede solucionar algunos problemas del sitio</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Bloqueo de contenido</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Desactivar para corregir algunos sitios</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Con tecnología de %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Compartir vía</string>
+
+ <string name="notification_erase_title_android_14">¿Borrar historial de navegación?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tocá o borrá esta notificación para eliminar de forma segura tu historial de navegación.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tocá o deslizá esta notificación para eliminar de forma segura tu historial de navegación.</string>
+
+ <string name="notification_erase_text">Borrar historial de navegación</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Abrir</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Borrar y abrir</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Borrar</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Borrar historial de navegación</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Eliminar y abrir</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Eliminar y abrir %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Buscar en Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Buscar en Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Buscar en Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Buscar en Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s te da el control.</p>
+<p>Usalo como navegador privado:
+ <ul>
+ <li>Buscar y navegar directamente en la aplicación</li>
+ <li>Bloquear rastreadores (o actualizar los ajustes para permitir rastreadores)</li>
+ <li>Borrar para eliminar cookies e historial de búsqueda y navegación</li>
+ </ul>
+</p>
+<p>%1$s es producido por Mozilla. Nuestra misión es promover una Internet saludable y abierta.<br/>
+<a href="%2$s">Conocer más</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privacidad y seguridad</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Rastreo, cookies, opciones de datos</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Predeterminados, autocompletar</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Acerca de %1$s, ayuda</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Protección de rastreo aumentada</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Contenido web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Intercambio de aplicaciones</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">General</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Navegador predeterminado, idioma</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Recolección de datos y uso</string>
+
+ <string name="preference_category_search">Buscar</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Obtener sugerencias de búsqueda</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s enviará lo que ingreses en la barra de direcciones a tu motor de búsqueda</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Predeterminado</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Buscador</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Activado</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Desactivado</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Autocompletar URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Para los sitios más visitados</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Habilitar para que %s autocomplete más de 450 URLs populares en la barra de direcciones.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Para los sitios que agrega</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Habilitar para que %s autocomplete tus URLs favoritas.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Administrar sitios</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Administrar sitios</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Agregar URL personalizada</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Tu lista de autocompletado:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Agregar URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Agregar URL personalizada</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Agregar URL personalizada</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Agregar el enlace para autocompletar</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies y datos del sitio</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Elección de datos</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Borrar URL personalizada</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Conocer más</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Agregar y administrar URLs personalizadas.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL para agregar</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Pegue o escriba una URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Ejemplo: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Ejemplo: ejemplo.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Nueva URL personalizada agregada.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Borrar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Borrar</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Verifique la URL que escribió.</string>
+
+ <string name="preference_language">Idioma</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Predeterminado del sistema</string>
+
+ <string name="preference_category_privacy">Privacidad</string>
+ <string name="preference_privacy_block_ads">Bloquear rastreadores de publicidad</string>
+ <string name="preference_privacy_block_ads_summary">Algunas publicidades rastrean visitas a los sitios aunque no haga clic en los anuncios</string>
+ <string name="preference_privacy_block_analytics">Bloquear rastreadores analíticos</string>
+ <string name="preference_privacy_block_analytics_summary">Se usan para recolectar, analizar y medir actividades como tocar y desplazar</string>
+ <string name="preference_privacy_block_social">Bloquear rastreadores sociales</string>
+ <string name="preference_privacy_block_social_summary">Incorporados en sitios para rastrear visitas y mostrar funcionalidades como los botones de compartir</string>
+ <string name="preference_privacy_block_content">Bloquear otros rastreadores de contenidos</string>
+ <string name="preference_privacy_block_content_summary2">Habilitarlos puede causar que algunas páginas se comporten de forma inesperada</string>
+ <string name="preference_privacy_category_cookies">Bloquear las cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">No, gracias</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Bloquear solo cookies de rastreo de terceros</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Bloquear sólo cookies de terceros</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Bloquear cookies de sitios cruzados</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Sí, por favor</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Usar la huella digital de para desbloquear la aplicación</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Desbloqueá usando la huella digital si agregaste accesos directos o cuando un sitio web ya está abierto en %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Invisible</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Ocultar páginas web al intercambiar aplicaciones y bloquear la toma de capturas de pantalla.</string>
+
+ <string name="preference_category_security">Seguridad</string>
+
+ <string name="preference_category_performance">Rendimiento</string>
+ <string name="preference_performance_block_webfonts">Bloquear fuentes web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Puede resultar en la falta de iconos o imágenes</string>
+
+ <string name="preference_performance_block_javascript">Bloquear JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Las páginas podrán cargar más rápido, pero también pueden comportarse de manera inesperada</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Establecer %1$s como navegador predeterminado</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Enviar datos de uso</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Conocer más</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla lucha por recolectar solo lo necesario para brindar y mejorar %1$s para todos.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Aviso de privacidad</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Información de licencia</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliotecas que usamos</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Bibliotecas OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Acerca de %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Motores de búsqueda instalados</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Elegir buscador</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Restaurar los motores de búsqueda predeterminados</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+Agregar otro buscador</string>
+ <string name="preference_search_remove_title">Eliminar los motores de búsqueda</string>
+ <string name="preference_search_remove">Eliminar</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Agregar otro buscador</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Elegí tu buscador preferido:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Agregar buscador</string>
+
+ <string name="search_add_manually_name_hint">Nombre del buscador</string>
+ <string name="search_add_manually_string">Cadena de búsqueda para usar</string>
+ <string name="search_add_manually_save">Guardar</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Ejemplo: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Se agregó un buscador nuevo.</string>
+
+ <string name="search_add_error_empty_name">Ingresar el nombre del buscador</string>
+ <string name="search_add_error_duplicate_name">Ya hay instalado un buscador con ese nombre.</string>
+
+ <string name="search_add_error_empty_search">Ingresar cadena de búsqueda</string>
+
+ <string name="search_add_error_format">Verificar que la cadena de búsqueda coincida con el formato del ejemplo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Borrar entrada</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Descartar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Limpiar historial de navegación</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Pestañas abiertas: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Conexión segura</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Cargando</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Sitio web cargado</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Más opciones</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Botón de más opciones</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Navegar hacia adelante</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Recargar sitio web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Navegar hacia atrás</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Dejar de cargar el sitio web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Volver a la aplicación anterior</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Número de rastreadores bloqueados</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Bloquear rastreadores</string>
+
+ <string name="your_rights">Tus derechos</string>
+
+ <string name="external_app_prompt_title">Abrir enlace en otra aplicación</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Puede dejar que %1$s abra este enlace en %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Buscar una app que pueda abrir el enlace</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ninguna de las apps de tu dispositivo puede abrir este enlace. Podés dejar que %1$s busque en %2$s una app compatible.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">¿Salir de la navegación privada?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s finalizado</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Abrir</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">¡Agregado a accesos directos!</string>
+
+ <string name="error_hostLookup_title">Servidor no encontrado</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Cerrar</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Bienvenido a %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rápido. Privado. Sin distracciones.</string>
+
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Comenzar</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s no es como los otros navegadores</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Borramos tu historial cuando cerrás la aplicación para mayor privacidad.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Poné a %1$s como predeterminado para proteger tus datos con cada enlace que abrás.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Establecer como navegador predeterminado</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Omitir</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Potenciá tu privacidad</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Lleva la navegación privada al siguiente nivel. Bloquéa publicidades y otro contenido que puede rastrearte en todos los sitios y lentificar los tiempos de carga de las páginas.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Tu búsqueda, a tu manera</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">¿Buscás algo diferente? Elegí otro buscador predeterminado en la configuración.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Agregar accesos directos a la pantalla principal</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Volvé a tus sitios favoritos en %1$s rápidamente. Seleccioná \&quot;Agregar a pantalla de inicio\&quot; en el menú de %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Hacé de la privacidad un hábito</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Establecé %1$s como navegador predeterminado y obtené los beneficios de la navegación privada cuando abras páginas web desde otras aplicaciones.</string>
+
+ <string name="firstrun_close_button">Genial, ¡lo tengo!</string>
+ <string name="firstrun_skip_button">Saltar</string>
+ <string name="firstrun_next_button">Siguiente</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Agregar</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">SÍ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Cancelar</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NO</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">El acceso directo se abrirá con la protección de rastreo aumentada desactivada</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sesión de navegación privada</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Las notificaciones te permiten borrar la sesión de %1$s con un toque. No necesitás abrir la aplicación o ver lo que está corriendo en el navegador.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Borrar historial de navegación</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Descargar Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s es software gratuito y de código abierto hecho por Mozilla y otros colaboradores.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s está disponible para vos bajo los términos de <a href="%2$s">Mozilla Public License</a> y otras licencias de código abierto.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[No se te concedió ningún derecho de marca o licencia sobre las marcas registradas de la fundación Mozilla o de cualquier tercero, incluyendo los logos o nombres de Mozilla, Firefox o %1$s. Podés encontrar Información adicional <a href="%2$s">aquí</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[El código fuente adicional para %1$s está disponible bajo varias otras <a href="%2$s">licencias</a> gratuitas y de código abierto.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s también usa listas de bloqueo provistas por Disconnect, Inc. como trabajos separados e independientes bajo la <a href="%2$s">GPLv3 (GNU General Public License v3)</a>, y se encuentra disponible <a href="%3$s">aquí</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nombre de usuario</string>
+ <string name="gv_prompt_password_hint">Contraseña</string>
+ <string name="gv_prompt_clear">Eliminar</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Conexión segura</string>
+ <string name="security_popup_insecure_connection">Conexión insegura</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verificado por: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Seguridad del sitio</string>
+ <string name="preference_autocomplete_duplicate_url_error">Ya existe la URL</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Buscar en la página</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Buscar en la página</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d de %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Buscar próximo resultado</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Buscar resultado anterior</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Cerrar búsqueda en la página</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Pedir versión de escritorio</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Sitio de escritorio</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL copiada</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Herramientas para desarrolladores</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Abrir enlaces en aplicaciones</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avanzadas</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Permisos del sitio</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reducción de mensajes de cookies</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Activada</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Desactivada</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reducción de mensajes de cookies</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Vea menos anuncios rechazando automáticamente las solicitudes de cookies cuando sea posible.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reducción de mensajes de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ACTIVADA para este sitio</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">El sitio actualmente no es compatible</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">DESACTIVADA para este sitio</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reducción de mensajes de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">DESACTIVADA para este sitio</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ACTIVADA para este sitio</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">¿Habilitar reducción de mensajes de cookies para %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">¿Deshabilitar reducción de mensajes de cookies para %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s borrará las cookies de este sitio y actualizará la página. Borrar todas las cookies puede cerrar la sesión o vaciar los carritos de compras.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s puede intentar rechazar automáticamente las solicitudes de cookies.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Este sitio actualmente no soporta la reducción de mensajes de cookies. ¿Querés pedirle a nuestro equipo que revise este sitio web y agregue soporte en el futuro?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Cancelar</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Pedir soporte</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Pedido para soporte del sitio enviado.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Pedido para soporte del sitio enviado.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s trata de rechazar los pedidos de cookies para descartar mensajes de cookies molestos.\n\nAdministrar preferencias de mensajes de cookies en %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">ajustes</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Reproducción automática</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Para permitirlo:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Ir a Ajustes de Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Presionar <b>Permisos</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Ir a Ajustes</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Cambiar <b>%1$s</b> a Habilitado]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Cámara</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Micrófono</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Ubicación</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notificación</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Contenido controlado por DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Pedir permiso</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Bloqueado</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Permitido</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Bloqueado por Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Permitir audio y video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Bloquear solo audio</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Recomendado</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Bloquear audio y video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Estudios</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox puede instalar y ejecutar estudios de vez en cuando.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Conocer más</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">La aplicación se cerrará para aplicar los cambios</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Eliminar</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Activo</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Completo</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Depuración remota vía USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Desbloquear</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Confirmar usando tu huella digital</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Podés usar tu huella digital para continuar con la sesión actual de la aplicación.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Abrir enlace en una nueva sesión</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Icono de la huella digital</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Huella digital no reconocida. Pruebe de nuevo.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">El dedo se movió muy rápido. Pruebe de nuevo.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">¿Mostrar sugerencias de búsqueda?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Para obtener sugerencias de búsqueda, %1$s necesita enviar lo que ingreses en la barra de direcciones al motor de búsqueda.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">No</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Sí</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Algunos motores de búsqueda no pueden mostrar sugerencias.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Descartar</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">¿El sitio se comporta de manera inesperada?\n Pruebe desactivar la Protección de rastreo</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Conseguí acceso a los sitios que más usás con un toque a %1$s Menú > Añadir a la Pantalla de inicio]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Abrir todos los enlaces en %1$s\n Configure %1$s como su navegador predeterminado</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Autocomplete las URLs para los sitios que más usa\n Mantenga presionada cualquier URL en la barra de direcciones</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Abra un enlace en una nueva pestaña\n Mantenga presionado cualquier enlace en una página</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Desactivar los consejos en la pantalla de inicio</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nueva pestaña abierta</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Cambiar</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Cambiando a pantalla completa</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Cambiar a enlazar en nueva pestaña inmediatamente</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Bloquear sitios potencialmente peligrosos y engañosos</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Bloquear los sitios de ataque y engaños informados, sitios de aplicaciones dañinas y sitios de software no deseados.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Modo solo HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Intenta conectarse automáticamente a sitios usando el protocolo de cifrado HTTPS para mayor seguridad.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Excepciones</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Desactivó el Bloqueo de contenido para estos sitios.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Eliminar</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Eliminar todos los sitios</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Bloquear cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">¿Te gustaría bloquear las cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Falló la pestaña</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Disculpe. Tenemos un problema con esta pestaña.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Como navegador privado, nunca guardamos y no podemos restaurar esta pestaña.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Cerrar pestaña</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Enviar informe de fallo a Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Rastreadores bloqueados desde %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Contenido</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Publicidad</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analítica</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Protección de rastreo aumentada</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Las protecciones están desactivadas para este sitio</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Las protecciones están activadas para este sitio</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">La conexión es segura</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">La conexión no es segura</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Rastreadores y scripts a bloquear</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Ir atrás</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Eliminar</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Renombrar</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Renombrar</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nombre del atajo</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Las imágenes guardadas y compartidas &lt;b&gt;no serán&lt;/b&gt; borradas al borrar el historial de %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Claro</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Oscuro</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Establecido por ahorro de batería</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Usar el tema del dispositivo</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Este sitio no soporta HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s trata de usar una conexión HTTPS cuando sea posible para mayor seguridad.
+ <a href="%2$s">Conocer más</a> <br/><br/>
+ Se puede cambiar en Configuración > Privacidad y seguridad > Seguridad.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Conexión insegura</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[ Ésto podría ser un problema con la configuración del servidor o podría ser alguien tratando de hacerse pasar por el servidor.<br/><br/>
+ Si te conectaste a este servidor exitosamente en el pasado, el error puede ser temporal.
+]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+        <label>Alguien podría estar intentando imitar el sitio y continuar podría ser riesgoso.</label>
+        <br><br>
+        <label>%1$s no confía en <b>%2$s</b> porque el emisor del certificado es desconocido, el certificado está autofirmado o el servidor no envía los certificados intermedios correctos.</label>
+    ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Cerrar pestaña</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">¡Excelente! Evitamos que esta página web te espíe. Presioná el escudo para ver lo que estamos bloqueando.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Cerrar ventana emergente</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">¡Estás protegido!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Esta configuración predeterminada ofrece una protección fuerte. Pero es fácil modificar la configuración para satisfacer tus necesidades específicas.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Descartar</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tocá aquí para eliminarlo todo: historial, cookies, absolutamente todo y empezá de cero en una nueva pestaña.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Cerrar</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget de búsqueda</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">¡Historial de navegación borrado! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Iniciá tu sesión de navegación privada y bloquearemos rastreadores y otras amenazas mientras navegás.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Te dejaremos con tu navegación privada, pero podés conseguir un inicio más rápido la próxima vez con el widget de %1$s en la pantalla de inicio.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Agregar widget a la pantalla de inicio</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget agregado a la pantalla de inicio</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-es-rCL/strings.xml b/mobile/android/focus-android/app/src/main/res/values-es-rCL/strings.xml
new file mode 100644
index 0000000000..69b3b0c4e8
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-es-rCL/strings.xml
@@ -0,0 +1,1117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Cancelar</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Aceptar</string>
+
+ <string name="action_save">Guardar</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Buscar o ingresar dirección</string>
+
+ <string name="teaser">Navegación privada automática.\nBuscar. Borrar. Repetir.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Tu historial de navegación ha sido limpiado.</string>
+ <string name="feedback_erase2">Historial de navegación limpiado</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">El historial de navegación de la pestaña ha sido limpiado.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Buscar por %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Compartir…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Reportar problema con el sitio</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Abrir en %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Abrir en…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Añadir a la pantalla de inicio</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Añadir a accesos directos</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Eliminar de los accesos directos</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Ajustes</string>
+ <string name="menu_about">Acerca de</string>
+ <string name="menu_help">Ayuda</string>
+ <string name="menu_rights">Tus derechos</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Rastreadores bloqueados</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Desactivar esto puede solucionar algunos problemas del sitio</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Bloqueo de contenido</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Desactivar para arreglar algunos sitios</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Impulsado por %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Compartir vía</string>
+
+ <string name="notification_erase_title_android_14">¿Eliminar historial de navegación?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Toca o elimina esta notificación para borrar de forma segura tu historial de navegación.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Toca o desliza esta notificación para borrar de forma segura tu historial de navegación.</string>
+
+ <string name="notification_erase_text">Eliminar historial de navegación</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Abrir</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Borrar y abrir</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Eliminar</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Eliminar historial de navegación</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Eliminar y abrir</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Eliminar y abrir %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Buscar en Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Buscar en Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Buscar en Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Buscar en Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s te pone al control.</p>
+<p>Úsalo como un navegador privado:
+ <ul>
+ <li>Busca y navega directo desde la app</li>
+ <li>Bloquea rastreadores (o cambia los ajustes para permitirlos)</li>
+ <li>Mantente libre de cookies y del historial de búsqueda y navegación</li>
+ </ul>
+</p>
+<p>%1$s es producido por Mozilla. Nuestra misión es fomentar un Internet sano y abierto.<br/>
+<a href="%2$s">Aprender más</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privacidad y seguridad</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Seguimiento, cookies, selección de datos</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Predeterminados, autocompletar</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Acerca de %1$s, ayuda</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Protección de seguimiento mejorada</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Contenido Web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Cambio de aplicación</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">General</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Navegador predeterminado, idioma</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Recolección de datos y uso</string>
+
+ <string name="preference_category_search">Buscar</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Recibir sugerencias de búsqueda</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s enviará lo que escribas en la barra de direcciones a tu motor de búsqueda</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Predeterminado</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Motor de búsqueda</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Activado</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Desactivado</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Autocompletar URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Para los sitios frecuentes</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Activar para que %s autocomplete más de 450 URLs populares en la barra de direcciones.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Para los sitios que añadas</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Activar para que%s autocomplete tus URLs favoritas.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Gestionar sitios</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Gestionar sitios</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Añadir URL personalizada</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Tu lista de autocompletado:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Añadir URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Añadir URL personalizada</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Añadir URL personalizada</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Agregar el enlace para autocompletar</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies y datos de sitio</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Selección de datos</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Eliminar URLs personalizadas</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Aprender más</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Añadir y gestionar autocompletado de URL personalizadas.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL a añadir</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Pegar o ingresar URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Ejemplo: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Ejemplo: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Nueva URL personalizada añadida.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Eliminar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Eliminar</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Verifica la URL que ingresaste.</string>
+
+ <string name="preference_language">Idioma</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Predeterminado del sistema</string>
+
+ <string name="preference_category_privacy">Privacidad</string>
+ <string name="preference_privacy_block_ads">Bloquear rastreadores de publicidad</string>
+ <string name="preference_privacy_block_ads_summary">Algunas avisos publicitarios rastrean las visitas a sitios, incluso si no haces clic en ellos</string>
+ <string name="preference_privacy_block_analytics">Bloquear rastreadores de analíticas</string>
+ <string name="preference_privacy_block_analytics_summary">Son usados para recolectar, analizar y medir actividades como los toques o los desplazamientos</string>
+ <string name="preference_privacy_block_social">Bloquear rastreadores sociales</string>
+ <string name="preference_privacy_block_social_summary">Los incrustan en sitios para rastrear tus visitas y mostrar funcionalidades como los botones para compartir</string>
+ <string name="preference_privacy_block_content">Bloquear otros rastreadores de contenido</string>
+ <string name="preference_privacy_block_content_summary2">Activar esto puede hacer que algunas páginas se comporten de manera inesperada</string>
+ <string name="preference_privacy_category_cookies">Bloquear cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">No, gracias</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Bloquear solo cookies de rastreo de terceros</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Bloquear solo cookies de terceros</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Bloquear cookies de sitios cruzados</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Sí, por favor</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Usar la huella digital para desbloquear la aplicación</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Desbloquea usando la huella digital si añadiste accesos directos o cuando un sitio web ya está abierto en %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Sigiloso</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Ocultar páginas web al cambiar de aplicación y bloquear la toma de capturas de pantalla</string>
+
+ <string name="preference_category_security">Seguridad</string>
+
+ <string name="preference_category_performance">Rendimiento</string>
+ <string name="preference_performance_block_webfonts">Bloquear fuentes Web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Puede resultar en íconos o imágenes faltantes</string>
+
+ <string name="preference_performance_block_javascript">Bloquear JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Las páginas pueden cargar más rápido, pero también pueden comportarse inesperadamente</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Establecer %1$s como el navegador predeterminado</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Enviar datos de uso</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Aprender más</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla se esfuerza por recolectar solo lo que necesitama para proporcionar y mejorar %1$s para todos.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Aviso de privacidad</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Información de licencia</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliotecas que utilizamos</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Bibliotecas OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Acerca de %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Motores de búsqueda instalados</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Elige un motor de búsqueda</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Restaurar motores de búsqueda predeterminados</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Añadir otro motor de búsqueda</string>
+ <string name="preference_search_remove_title">Eliminar motores de búsqueda</string>
+ <string name="preference_search_remove">Eliminar</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Añade otro motor de búsqueda</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Selecciona tu motor preferido:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Añadir motor de búsqueda</string>
+
+ <string name="search_add_manually_name_hint">Nombre del motor de búsqueda</string>
+ <string name="search_add_manually_string">Cadena de búsqueda a usar</string>
+ <string name="search_add_manually_save">Guardar</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Ejemplo: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Nuevo motor de búsqueda añadido.</string>
+
+ <string name="search_add_error_empty_name">Ingresa el nombre del motor de búsqueda</string>
+ <string name="search_add_error_duplicate_name">Un motor de búsqueda instalado ya está usando ese nombre.</string>
+
+ <string name="search_add_error_empty_search">Ingresa la cadena de búsqueda</string>
+
+ <string name="search_add_error_format">Revisa que la cadena de búsqueda coincida con el formato del ejemplo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Limpiar texto ingresado</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Ocultar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Eliminar historial de navegación</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Pestañas abiertas: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Conexión segura</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Cargando</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Sitio cargado</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Más opciones</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Botón de más opciones</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Navegar hacia adelante</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Recargar sitio</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Navegar hacia atrás</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Dejar de cargar el sitio</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Regresar a la app anterior</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Número de rastreadores bloqueados</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Bloquear rastreadores</string>
+
+ <string name="your_rights">Tus derechos</string>
+
+ <string name="external_app_prompt_title">Abrir enlace en otra app</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Puedes salir de %1$s para abrir este enlace en %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Buscar una app que pueda abrir el enlace</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ninguna de las aplicaciones en tu dispositivo puede abrir este enlace. Puedes salir de %1$s para buscar en %2$s por una app que pueda.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">¿Salir de la navegación privada?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s finalizado</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Abrir</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">¡Añadido a accesos directos!</string>
+
+ <string name="error_hostLookup_title">Servidor no encontrado</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Cerrar</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Te damos la bienvenida a %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rápido. Privado. Sin distracciones.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Empezar</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s no es como otros navegadores</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Borramos tu historial cuando cierras la aplicación para mayor privacidad.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Establece %1$s como tu predeterminado para proteger tus datos con cada enlace que abras.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Establecer como navegador predeterminado</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Saltar</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Potencia tu privacidad</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Lleva la navegación privada al siguiente nivel. Bloquea anuncios publicitarios y otro tipo de contenido que puede rastrearte a través de los sitios y ralentizar los tiempos de carga de las páginas.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Tu búsqueda, a tu manera</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">¿Buscas algo diferente? Elige otro motor de búsqueda predeterminado en los ajustes.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Añade atajos a tu pantalla de inicio</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Regresa rápidamente a tus sitios favoritos en %1$s. Selecciona \&quot;Añadir a la pantalla de inicio\&quot; desde el menú %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Haz de la privacidad un hábito</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Establece %1$s como navegador predeterminado y experimenta los beneficios de la navegación privada al abrir páginas web desde otras aplicaciones.</string>
+
+ <string name="firstrun_close_button">Ok, ¡ya caché!</string>
+ <string name="firstrun_skip_button">Saltar</string>
+ <string name="firstrun_next_button">Siguiente</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Añadir</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">SÍ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Cancelar</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NO</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">El acceso directo se abrirá con la protección de seguimiento mejorada desactivada</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sesión de navegación privada</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Las notificaciones te permiten eliminar tu sesión de %1$s con un solo toque. No necesitas abrir la aplicación o ver lo que está corriendo en el navegador.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Eliminar historial de navegación</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Bajar Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s es un programa gratuito y de código abierto hecho por Mozilla y otros contribuidores.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s está disponible para ti bajo los términos de la <a href="%2$s">Licencia Pública de Mozilla</a> y otras licencias de código abierto.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[No se le ha concedido ningún derecho de marca o licencia sobre las marcas comerciales de la fundación Mozilla o de cualquier parte, incluyendo los logos o nombres de Mozilla, Firefox o %1$s. Puede encontrar Información adicional <a href="%2$s">aquí</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Código fuente adicional para %1$s está disponible bajo variadas <a href="%2$s">licencias</a> gratuitas y de código abierto.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s también hace uso de listas de bloqueo proveídas por Disconnect, Inc. como trabajos separados e independientes bajo la <a href="%2$s">GPLv3 (GNU General Public License v3)</a>, y se encuentra disponible <a href="%3$s">aquí</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nombre de usuario</string>
+ <string name="gv_prompt_password_hint">Contraseña</string>
+ <string name="gv_prompt_clear">Limpiar</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Conexión segura</string>
+ <string name="security_popup_insecure_connection">Conexión insegura</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verificado por: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Seguridad del sitio</string>
+ <string name="preference_autocomplete_duplicate_url_error">La URL ya existe</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Buscar en la página</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Buscar en la página</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d de %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Buscar el siguiente resultado</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Buscar el resultado anterior</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Cerrar búsqueda en la página</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Solicitar sitio de escritorio</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Sitio de escritorio</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL copiada</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Herramientas de desarrollador</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Abrir enlaces en aplicaciones</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avanzado</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Permisos del sitio</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reducción de anuncios de cookies</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Activada</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Desactivada</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reducción de anuncios de cookies</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Mira menos anuncios rechazando automáticamente las solicitudes de cookies, cuando sea posible.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reducción de anuncios de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ACTIVADA para este sitio</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Sitio actualmente no soportado</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">DESACTIVADA para este sitio</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reducción de anuncios de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">DESACTIVADA para este sitio</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ACTIVADA para este sitio</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">¿Activar la reducción de anuncios de cookies para %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">¿Desactivar la reducción de anuncios de cookies para %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s borrará las cookies de este sitio y recargará la página. Borrar todas las cookies puede cerrar tu sesión o vaciar los carritos de compras.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s puede intentar rechazar automáticamente las solicitudes de cookies.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Actualmente, este sitio no es compatible con la reducción de anuncios de cookies. ¿Te gustaría solicitar a nuestro equipo que revise este sitio web y sea compatible en el futuro?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Cancelar</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Pedir que funcione</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Solicitud para compatibilizar el sitio enviada.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Solicitud para compatibilizar el sitio enviada.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s intenta rechazar las solicitudes de cookies para descartar los molestos anuncios de cookies.\n\nAdministra las preferencias de anuncios de cookies en %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">ajustes</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Autoreproducción</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Para permitirlo:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Ve a los ajustes de Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Toca en <b>Permisos</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Ir a ajustes</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Activa <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Cámara</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Micrófono</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Ubicación</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notificación</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Contenido controlado por DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Pedir permiso</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Bloqueado</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Permitido</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Bloqueado por Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Permitir audio y video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Bloquear solo audio</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Recomendado</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Bloquear audio y video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Estudios</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox podría instalar y realizar experimentos de vez en cuando.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Aprender más</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">La aplicación se cerrará para aplicar cambios</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Eliminar</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Activos</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Completado</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Depuración remota vía USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Desbloquear</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Confirma usando tu huella dactilar</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Puedes usar tu huella dactilar para continuar con tu sesión actual de la aplicación.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Abrir enlace en una nueva sesión</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Ícono de huella digital</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Huella digital no reconocida. Vuelve a intentarlo.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">El dedo fue movido muy rápido. Vuelve a intentarlo.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">¿Mostrar sugerencias de búsqueda?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Para recibir sugerencias, %1$s necesita enviar lo que escribas en la barra de direcciones al motor de búsqueda.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">No</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Sí</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Algunos motores de búsqueda no pueden mostrar sugerencias.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Ocultar</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">¿El sitio se comporta de forma inesperada?\n Intenta desactivar la protección de seguimiento</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Obtén acceso a un toque a los sitios que más usas%1$s Menú > Añadir a la pantalla de inicio]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Abre todos los enlaces en %1$s\n Configura %1$s como tu navegador predeterminado</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Autocompleta las URLs para los sitios que más usas\n Manten presionada cualquier URL en la barra de direcciones</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Abre un enlace en una nueva pestaña\n Mantén presionado cualquier enlace en una página</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Desactivar los consejos en la pantalla de inicio</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nueva pestaña abierta</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Cambiar</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Pasando a modo de pantalla completa</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Cambiar al enlace en la nueva pestaña inmediatamente</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Bloquear sitios potencialmente peligrosos y engañosos</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Bloquear sitios reportados por fraudes y ataques, sitios de malware y sitios de software no deseado.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Modo solo HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Intenta conectarse automáticamente a sitios utilizando el protocolo de cifrado HTTPS para mayor seguridad.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Excepciones</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Has desactivado el bloqueo de contenido para estos sitios.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Eliminar</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Eliminar todos los sitios</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Bloquear cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">¿Te gustaría bloquear las cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Pestaña caida</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Lo sentimos. Estamos teniendo un problema con esta pestaña.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Como un navegador privado nunca guardaremos esta pestaña, por lo que tampoco podremos restaurarla.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Cerrar pestaña</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Enviar reporte de fallos a Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">%s rastreadores bloqueados desde la instalación</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Contenido</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Publicidad</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analítica</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Protección de seguimiento mejorada</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Las protecciones están desactivadas para este sitio</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Las protecciones están activadas para este sitio</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Conexión segura</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Conexión no segura</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Rastreadores y scripts a bloquear</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Retroceder</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Eliminar</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Renombrar</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Renombrar</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nombre del acceso directo</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Las imágenes guardadas y compartidas &lt;b&gt;no serán&lt;/b&gt; eliminadas cuando borres el historial de %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Claro</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Oscuro</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Establecido por el ahorrador de batería</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Usar el tema del dispositivo</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Este sitio no soporta HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s trata de usar una conexión HTTPS cuando sea posible para mayor seguridad.
+ <a href="%2$s">Aprender más</a> <br/><br/>
+ Cambia esta configuración en Ajustes > Privacidad y seguridad > Seguridad.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Conexión no segura</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[Esto podría deberse a un problema con la configuración del servidor, o podría ser alguien intentando hacerse pasar por el servidor.<br/><br/>
+Si ha conectado a este servidor con éxito en el pasado, el error podría ser temporal.]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Alguien podría estar intentando hacerse pasar por el sitio y continuar podría ser riesgoso.</label>
+ <br><br>
+ <label>%1$s no confía en <b>%2$s</b> porque el emisor de su certificado es desconocido, el certificado fue auto-firmado o el servidor no está enviando los certificados intermediarios correctos.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Cerrar pestaña</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">¡Lo agarramos! Evitamos que este sitio te espiara. Toca el escudo para ver lo que estamos bloqueando.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Cerrar elemento emergente</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">¡Estás bajo protección!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Esta configuración predeterminada ofrece una protección fuerte. Pero es fácil ajustar la configuración para satisfacer tus necesidades específicas.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Ocultar</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Toca aquí para eliminarlo todo — historial, cookies, absolutamente todo — y comienza de cero en una nueva pestaña.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Cerrar</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget de búsqueda</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">¡Historial de navegación limpiado! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Inicia tu sesión de navegación privada y bloquearemos rastreadores y otras amenazas mientras navegas.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Puedes continuar con tu navegación privada, pero recuerda que puedes llegar más rápido a ella la próxima vez que la necesites con el widget de %1$s en tu pantalla de inicio.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Agregar widget a la pantalla de inicio</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget agregado a la pantalla de inicio</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-es-rES/strings.xml b/mobile/android/focus-android/app/src/main/res/values-es-rES/strings.xml
new file mode 100644
index 0000000000..9e2aa7413a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-es-rES/strings.xml
@@ -0,0 +1,1117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Cancelar</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Aceptar</string>
+
+ <string name="action_save">Guardar</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Buscar o escribir dirección</string>
+
+ <string name="teaser">Navegación privada automática.\nNavega. Borra. Repite.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Se ha eliminado tu historial de búsqueda.</string>
+
+ <string name="feedback_erase2">Se borró el historial de navegación</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Se ha borrado el historial de navegación de la pestaña.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Buscar %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Compartir…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Informar de fallo en el sitio</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Abrir en %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Abrir en…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Añadir a pantalla de inicio</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Añadir a accesos directos</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Eliminar de los accesos directos</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Ajustes</string>
+ <string name="menu_about">Acerca de</string>
+ <string name="menu_help">Ayuda</string>
+ <string name="menu_rights">Tus derechos</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Rastreadores bloqueados</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Desactivar esta opción puede solucionar algunos problemas del sitio</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Bloqueo de contenido</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Desactivar para arreglar algunos sitios</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Impulsado por %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Compartir vía</string>
+
+ <string name="notification_erase_title_android_14">¿Eliminar historial de navegación?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Toca o elimina esta notificación para borrar de forma segura tu historial de navegación.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Toca o desliza esta notificación para borrar de forma segura tu historial de navegación.</string>
+
+ <string name="notification_erase_text">Eliminar historial de navegación</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Abrir</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Borrar y abrir</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Eliminar</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Eliminar historial de navegación</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Borrar y abrir</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Borrar y abrir %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Buscar en Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Buscar en Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Buscar en Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Buscar en Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s te da el control.</p>
+<p>Úsalo como navegador privado:
+ <ul>
+ <li>Busca y navega en la propia aplicación</li>
+ <li>Bloquea a los rastreadores (o cambia los ajustes para permitirlos)</li>
+ <li>Limpia para borrar cookies y los historiales de búsqueda y navegación</li>
+ </ul>
+</p>
+<p>%1$s es producido por Mozilla. Nuestra misión es promover un Internet saludable y abierto.<br/>
+<a href="%2$s">Descubre más</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privacidad y seguridad</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Opciones de rastreo, cookies y datos</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Establecer como predeterminado, autocompletar</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Acerca de %1$s, ayuda</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Protección mejorada contra el rastreo</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Contenido web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Cambiar entre aplicaciones</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">General</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Navegador predeterminado, idioma</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Recopilación de datos y uso</string>
+
+ <string name="preference_category_search">Búsqueda</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Obtener sugerencias de búsqueda</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s enviará lo que escribas en la barra de direcciones a tu buscador</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Predeterminado</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Buscador</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Activado</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Desactivado</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Autocompletar URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Para los sitios frecuentes</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Activar para que %s complete automáticamente más de 450 URLs populares en la barra de direcciones.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Para los sitios que añades</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Activar para que %s complete automáticamente tus URLs favoritas.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Administrar sitios</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Administrar sitios</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Agregar URL personalizada</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Tu lista de autocompletado:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Añadir URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Agregar URL personalizada</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Agregar URL personalizada</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Añadir el enlace para completar automáticamente</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies y datos del sitio</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Opciones de datos</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Eliminar URLs personalizadas</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Descubrir más</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Agregar y gestionar autocompletado personalizado de URLs.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Agregar URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Pegar o escribir URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Ejemplo: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Ejemplo: ejemplo.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Se agregó una nueva URL personalizada.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Eliminar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Eliminar</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Volver a comprobar la URL que has escrito.</string>
+
+ <string name="preference_language">Idioma</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Predeterminado del sistema</string>
+
+ <string name="preference_category_privacy">Privacidad</string>
+ <string name="preference_privacy_block_ads">Bloquear rastreadores de publicidad</string>
+ <string name="preference_privacy_block_ads_summary">Algunos anuncios, aunque no accedas a ellos, rastrean tus visitas a páginas web</string>
+ <string name="preference_privacy_block_analytics">Bloquear rastreadores analíticos</string>
+ <string name="preference_privacy_block_analytics_summary">Se utilizan para recopilar, analizar y medir tus actividades, como cuándo seleccionas algo o te deslizas por la página</string>
+ <string name="preference_privacy_block_social">Bloquear rastreadores sociales</string>
+ <string name="preference_privacy_block_social_summary">Incorporados en las páginas para rastrear tus visitas y mostrar funcionalidad, como botones para compartir</string>
+ <string name="preference_privacy_block_content">Bloquear rastreadores de otros contenidos</string>
+ <string name="preference_privacy_block_content_summary2">Si lo activas, puede que algunas páginas no funcionen correctamente</string>
+ <string name="preference_privacy_category_cookies">Bloquear cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">No, gracias</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Bloquear solo cookies de rastreo de terceros</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Bloquear sólo cookies de terceros</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Bloquear cookies entre sitios</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Sí, por favor</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Usar la huella digital para desbloquear la aplicación</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Desbloquea usando la huella digital si añadiste accesos directos o cuando un sitio web ya está abierto en %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Invisible</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Ocultar páginas web al cambiar entre aplicaciones y bloquear las capturas de pantalla.</string>
+
+ <string name="preference_category_security">Seguridad</string>
+
+ <string name="preference_category_performance">Rendimiento</string>
+ <string name="preference_performance_block_webfonts">Bloquear fuentes web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Puede hacer que falten iconos o imágenes</string>
+
+ <string name="preference_performance_block_javascript">Bloquear JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Las páginas pueden cargar más rápido, pero también pueden comportarse de forma inesperada</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Convertir %1$s en tu navegador predeterminado</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Enviar datos de consumo</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Descubrir más</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla se esfuerza por recopilar solo lo necesario para proporcionar y mejorar %1$s para todos.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Aviso de privacidad</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Información de licencia</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliotecas que usamos</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Bibliotecas OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Acerca de %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Motores de búsqueda instalados</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Elige un motor de búsqueda</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Restaurar motores de búsqueda predeterminados</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Añadir otro motor de búsqueda</string>
+ <string name="preference_search_remove_title">Eliminar motores de búsqueda</string>
+ <string name="preference_search_remove">Eliminar</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Añade otro motor de búsqueda</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Selecciona tu motor preferido:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Añadir motor de búsqueda</string>
+
+ <string name="search_add_manually_name_hint">Nombre del motor de búsqueda</string>
+ <string name="search_add_manually_string">Cadena de búsqueda que se usará</string>
+ <string name="search_add_manually_save">Guardar</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Ejemplo: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Nuevo motor de búsqueda añadido.</string>
+
+ <string name="search_add_error_empty_name">Introducir nombre del motor de búsqueda</string>
+ <string name="search_add_error_duplicate_name">Un motor de búsqueda instalado ya está usando ese nombre.</string>
+
+ <string name="search_add_error_empty_search">Introducir cadena de búsqueda</string>
+
+ <string name="search_add_error_format">Comprueba que la cadena de búsqueda coincide con el formato del ejemplo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Limpiar registro</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Ignorar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Eliminar historial de navegación</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Pestañas abiertas: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Conexión segura</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Cargando</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Página cargada</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Más opciones</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Botón de más opciones</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Ir hacia delante</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Recargar página</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Ir a la página anterior</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Parar la carga de esta página</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Volver a la aplicación anterior</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Número de rastreadores bloqueados</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Bloquear rastreadores</string>
+
+ <string name="your_rights">Tus derechos</string>
+
+ <string name="external_app_prompt_title">Abrir enlace con otra aplicación</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Puedes salir de %1$s para abrir este enlace en %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Busca una aplicación que pueda abrir este enlace</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ninguna de las aplicaciones de tu dispositivo puede abrir este enlace. Puedes salir de %1$s para buscar en %2$s una aplicación compatible.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">¿Salir de la navegación privada?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s completado</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Abrir</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">¡Añadido a los accesos directos!</string>
+
+ <string name="error_hostLookup_title">Servidor no encontrado</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Cerrar</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Te damos la bienvenida a %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rápido. Privado. Sin distracciones.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Comenzar</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s no es como otros navegadores</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Borramos tu historial cuando cierras la aplicación para ofrecerte mayor privacidad.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Establece %1$s como predeterminado para proteger tus datos con cada enlace que abras.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Establecer como navegador predeterminado</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Saltar</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Potencia tu privacidad</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Lleva la navegación privada al siguiente nivel. Bloquea anuncios y otros contenidos que puedan rastrearte a través de los sitios y ralentizar la carga de las páginas.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Tu búsqueda, a tu manera</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">¿Buscas algo diferente? Elige otro motor de búsqueda predeterminado en Ajustes.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Añade accesos directos a tu pantalla de inicio</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Vuelve a visitar tus sitios favoritos en %1$s de forma instantánea. En el menú %1$s, selecciona \&quot;Agregar a la pantalla de inicio\&quot;.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Haz de la privacidad un hábito</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Establece %1$s como navegador predeterminado y experimenta los beneficios de la navegación privada al abrir páginas web desde otras aplicaciones.</string>
+
+ <string name="firstrun_close_button">¡Entendido!</string>
+ <string name="firstrun_skip_button">Saltar</string>
+ <string name="firstrun_next_button">Siguiente</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Añadir</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">SÍ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Cancelar</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NO</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">El acceso directo se abrirá con la protección mejorada contra el rastreo</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sesión de navegación privada</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Las notificaciones te permiten borrar la sesión de %1$s con un toque. No necesitas abrir la aplicación ni ver qué se está ejecutando en el navegador.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Eliminar historial de navegación</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Descargar Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s es software de código abierto y gratuito, creado por Mozilla y otros colaboradores.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s está disponible para ti bajo los términos de la <a href="%2$s">Licencia Pública de Mozilla</a> y otras licencias de código abierto.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[No se le ha concedido ningún derecho de marca o licencia sobre las marcas comerciales de la fundación Mozilla o de cualquier parte, incluyendo los logos o nombres de Mozilla, Firefox o %1$s. Puede encontrar información adicional <a href="%2$s">aquí</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[El código fuente adicional para %1$s está disponible bajo otras <a href="%2$s">licencias</a> libres y de código abierto.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s también utiliza listas de bloqueo provistas por Disconnect, Inc. como trabajos separados e independientes bajo la<a href="%2$s">GNU General Public License v3</a>, y se encuentra disponible <a href="%3$s">aquí</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nombre de usuario</string>
+ <string name="gv_prompt_password_hint">Contraseña</string>
+ <string name="gv_prompt_clear">Limpiar</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Conexión segura</string>
+ <string name="security_popup_insecure_connection">Conexión no segura</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verificado por: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Seguridad del sitio</string>
+ <string name="preference_autocomplete_duplicate_url_error">La URL ya existe</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Buscar en la página</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Buscar en la página</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d de %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Próximo resultado</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Resultado anterior</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Cerrar la búsqueda</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Solicitar sitio de escritorio</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Sitio de escritorio</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Se copió la URL</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Herramientas de desarrollo</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Abrir enlaces en aplicaciones</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avanzado</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Permisos del sitio</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reducción de avisos de cookies</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Activada</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Desactivada</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reducción de avisos de cookies</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Verás menos avisos rechazando automáticamente las solicitudes de cookies cuando sea posible.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reducción de avisos de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ACTIVADA para este sitio</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Sitio actualmente no compatible</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">DESACTIVADA para este sitio</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reducción de avisos de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">DESACTIVADA para este sitio</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ACTIVADA para este sitio</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">¿Activar la reducción de aviso de cookies para %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">¿Desactivar la reducción de aviso de cookies para %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s borrará las cookies de este sitio y recargará la página. Borrar todas las cookies puede cerrar tu sesión o vaciar los carritos de compras.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s puede intentar rechazar automáticamente las solicitudes de cookies.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Este sitio actualmente no es compatible con la reducción de avisos de cookies. ¿Quieres pedirle a nuestro equipo que revise este sitio web y añada soporte en el futuro?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Cancelar</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Pedir soporte</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">La solicitud de soporte ha sido enviada.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">La solicitud de soporte ha sido enviada.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s intenta rechazar las solicitudes de cookies para descartar los molestos avisos de cookies.\n\nAdministra las preferencias de avisos de cookies en los ajustes en %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">ajustes</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Reproducción automática</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Para permitirlo:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Ir a Ajustes de Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Toca en <b>Permisos</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Ir a Ajustes</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Activa <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Cámara</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Micrófono</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Ubicación</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notificación</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Contenido controlado por DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Pedir permiso</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Bloqueado</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Permitido</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Bloqueado por Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Permitir audio y vídeo</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Bloquear solo audio</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Recomendado</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Bloquear audio y vídeo</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Estudios</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox puede instalar y ejecutar estudios de vez en cuando.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Saber más</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">La aplicación se cerrará para aplicar los cambios</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Eliminar</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Activo</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Completados</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Depuración remota a través de USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Desbloquear</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Confirma usando tu huella dactilar</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Puedes usar tu huella dactilar para continuar con tu sesión actual de la aplicación.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Abrir el enlace en una nueva sesión</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Icono de huella digital</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Huella digital no reconocida. Vuelve a intentarlo.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">El dedo se movió demasiado rápido. Vuelve a intentarlo.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">¿Mostrar sugerencias de búsqueda?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Para recibir sugerencias, %1$s necesita enviar lo que escribas en la barra de direcciones al buscador.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">No</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Si</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Algunos motores de búsqueda no pueden mostrar sugerencias.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Ignorar</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">¿El sitio se comporta de forma inesperada?\n Intenta desactivar la protección contra el rastreo</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Obtén acceso con un toque a los sitios que más usas %1$s Menú > Añadir a la pantalla de inicio]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Abrir todos los enlaces en %1$s\n Establecer %1$s como navegador predeterminado</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Autocompletar las URLs para los sitios que más usas\n Mantén presionada cualquier URL en la barra de direcciones</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Abrir un enlace en una nueva pestaña\n Mantén presionado cualquier enlace de una página</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Desactivar los consejos en la pantalla de inicio</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nueva pestaña abierta</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Cambiar</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Accediendo a pantalla completa</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Cambie a un enlace en una nueva pestaña inmediatamente</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Bloquear sitios potencialmente peligrosos y engañosos</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Bloqueo de sitios informados como fraudulentos y de ataques, de malware y de software no deseado.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Modo solo HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Intenta conectarse automáticamente a sitios utilizando el protocolo de cifrado HTTPS para mayor seguridad.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Excepciones</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Ha desactivado el bloqueo de contenido para estos sitios.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Eliminar</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Eliminar todos los sitios web</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Bloquear cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">¿Te gustaría bloquear las cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">La pestaña falló</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Lo sentimos. Tenemos problemas con esta pestaña.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Como navegador privado, nunca guardamos y no podemos restaurar esta pestaña.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Cerrar pestaña</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Enviar informe de fallo a Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Rastreadores bloqueados desde %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Contenido</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Publicidad</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analítica</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Protección mejorada contra el rastreo</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Las protecciones están desactivadas para este sitio</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Las protecciones están activadas para este sitio</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Conexión segura</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Conexión no segura</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Rastreadores y scripts a bloquear</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Retroceder</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Eliminar</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Renombrar</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Renombrar</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nombre de acceso directo</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Las imágenes guardadas y compartidas &lt;b&gt;no serán&lt;/b&gt; eliminadas cuando borres el historial de %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Claro</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Oscuro</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Establecido por el ahorro de batería</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Usar el tema del dispositivo</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Este sitio no admite HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s trata de usar una conexión HTTPS cuando sea posible para mayor seguridad.
+ <a href="%2$s">Saber más</a> <br/><br/>
+ Cambia esta configuración en Ajustes > Privacidad y seguridad > Seguridad.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Conexión no segura</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Esto podría deberse a un problema con la configuración del servidor, o podría ser alguien intentando hacerse pasar por el servidor.<br/><br/>
+ Si en el pasado te has conectado correctamente a este servidor, el error podría ser temporal.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Alguien podría estar intentando hacerse pasar por el sitio y continuar podría ser peligroso.</label>
+ <br><br>
+ <label>%1$s no confía en <b>%2$s</b> porque el emisor del certificado es desconocido, el certificado está autofirmado o el servidor no envía los certificados intermedios correctos.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Cerrar pestaña</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">¡Excelente! Hemos evitado que este sito web te espiara. Toca el escudo para ver lo que estamos bloqueando.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Cerrar elemento emergente</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">¡Estás protegido!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Esta configuración predeterminada ofrece una fuerte protección. Pero es fácil ajustar la configuración para satisfacer tus necesidades específicas.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Descartar</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Toca aquí para eliminarlo todo — historial, cookies, absolutamente todo — y comenzar desde cero en una nueva pestaña.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Cerrar</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Buscar widget</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">¡Historial de navegación borrado! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Inicia tu sesión de navegación privada y bloquearemos rastreadores y otras amenazas mientras navegas.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Te dejaremos con tu navegación privada, pero comienza más rápido la próxima vez con el widget de %1$s en tu pantalla de inicio.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Añadir widget a la pantalla de inicio</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget añadido a la pantalla de inicio</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-es-rMX/strings.xml b/mobile/android/focus-android/app/src/main/res/values-es-rMX/strings.xml
new file mode 100644
index 0000000000..f9de0a686c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-es-rMX/strings.xml
@@ -0,0 +1,1111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Cancelar</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Guardar</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Buscar o ingresar dirección</string>
+
+ <string name="teaser">Navegación privada automática.\nNavega. Limpia. Repite.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Se ha eliminado tu historial de búsqueda.</string>
+ <string name="feedback_erase2">Se borró el historial de navegación</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Se ha borrado el historial de navegación de la pestaña.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Buscar %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Compartir…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Reportar problema con el sitio</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Abrir en %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Abrir en…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Agregar a la pantalla de inicio</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Agregar a accesos directos</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Eliminar de los accesos directos</string>
+
+ <string name="menu_settings">Configuración</string>
+ <string name="menu_about">Acerca de</string>
+ <string name="menu_help">Ayuda</string>
+ <string name="menu_rights">Tus derechos</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Rastreadores bloqueados</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Desactivar esta opción puede solucionar algunos problemas del sitio</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Bloqueo de contenido</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Desactivar para arreglar algunos sitios</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Impulsado por %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Compartir vía</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Eliminar historial de navegación</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Abrir</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Borrar y abrir</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Borrar</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Eliminar historial de navegación</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Borrar y abrir</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Borrar y abrir %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Buscar en Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Buscar en Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Buscar en Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Buscar en Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s te da el control.</p>
+<p>Úsalo como navegador privado:
+ <ul>
+ <li>Busca y navega en la propia aplicación</li>
+ <li>Bloquea a los rastreadores (o cambia los ajustes para permitirlos)</li>
+ <li>Limpia para borrar cookies y los historiales de búsqueda y navegación</li>
+ </ul>
+</p>
+<p>%1$s es producido por Mozilla. Nuestra misión es promover un Internet saludable y abierto.<br/>
+<a href="%2$s">Descubre más</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privacidad y seguridad</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Opciones de rastreo, cookies y datos</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Establecer como predeterminado, autocompletar</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Acerca de %1$s, ayuda</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Protección mejorada contra el rastreo</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Contenido web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Cambiando aplicaciones</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">General</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Navegador predeterminado, idioma</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Recolección de datos y uso</string>
+
+ <string name="preference_category_search">Buscar</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Obtener sugerencias de búsqueda</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s enviará lo que escribas en la barra de direcciones a tu motor de búsqueda</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Predeterminado</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Motor de búsqueda</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Activar</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Desactivar</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Autocompletar URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Para sitios favoritos</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Activar para que %s autocomplete más de 450 URLs populares en la barra de direcciones.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Para los sitios que agregues</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Activar para que %s autocomplete tus URLs favoritas.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Administrar sitios</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Administrar sitios</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Agregar URL personalizada</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Tu lista de autocompletado:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Agregar URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Agregar URL personalizada</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Agregar URL personalizada</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Agregar enlace para completar automáticamente</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies y datos del sitio</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Opciones de datos</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Eliminar las URL personalizadas</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Saber más</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Agregar y gestionar el autocompletado de URL personalizadas.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL a agregar</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Pegar o introducir URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Ejemplo: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Ejemplo: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Nueva URL personalizada agregada.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Eliminar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Eliminar</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Vuelve a verificar la URL que introdujiste.</string>
+
+ <string name="preference_language">Idioma</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Valor predeterminado del sistema</string>
+
+ <string name="preference_category_privacy">Privacidad</string>
+ <string name="preference_privacy_block_ads">Bloquear rastreadores de publicidad</string>
+ <string name="preference_privacy_block_ads_summary">Algunos anuncios rastrean tus visitas a sitios, aunque no hagas clic en ellos</string>
+ <string name="preference_privacy_block_analytics">Bloquear rastreadores analíticos</string>
+ <string name="preference_privacy_block_analytics_summary">Utilizado para recolectar, analizar y medir actividades como pulsar y deslizar</string>
+ <string name="preference_privacy_block_social">Bloquear rastreadores sociales</string>
+ <string name="preference_privacy_block_social_summary">Incrustado en sitios para rastrear tus visitas y mostrar funcionalidades como botones de compartir</string>
+ <string name="preference_privacy_block_content">Bloquear rastreadores de otros contenidos</string>
+ <string name="preference_privacy_block_content_summary2">Activar puede causar que algunas páginas se comporten inesperadamente</string>
+ <string name="preference_privacy_category_cookies">Bloquear cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">No, gracias</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Bloquear solo cookies de rastreo de terceros</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Bloquear solo cookies de terceros</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Bloquear cookies entre sitios</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Sí, por favor</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Usar huella digital para desbloquear aplicación</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Desbloquea usando la huella digital si agregaste accesos directos o cuando un sitio web ya está abierto en %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Invisible</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Ocultar páginas al intercambiar aplicaciones y bloquear la toma de capturas de pantalla.</string>
+
+ <string name="preference_category_security">Seguridad</string>
+
+ <string name="preference_category_performance">Rendimiento</string>
+ <string name="preference_performance_block_webfonts">Bloquear fuentes web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Puede resultar en pérdida de íconos o imágenes</string>
+
+ <string name="preference_performance_block_javascript">Bloquear JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Las páginas pueden cargar más rápido, pero pueden comportarse de manera inesperada</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Convierte %1$s en tu navegador predeterminado</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Enviar datos de consumo</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Saber más</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla lucha por recolectar solo lo necesario para brindar y mejorar %1$s para todos.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Aviso de privacidad</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Información de licencia</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliotecas que usamos</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Bibliotecas OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Acerca de %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Motores de búsqueda instalados</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Elegir motor de búsqueda</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Restaurar motores predeterminados de búsqueda</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Agregar otro motor de búsqueda</string>
+ <string name="preference_search_remove_title">Eliminar motores de búsqueda</string>
+ <string name="preference_search_remove">Eliminar</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Agregar otro motor de búsqueda</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Selecciona tu motor de búsqueda preferido:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Agregar motor de búsqueda</string>
+
+ <string name="search_add_manually_name_hint">Nombre del motor de búsqueda</string>
+ <string name="search_add_manually_string">Buscar cadena para usar</string>
+ <string name="search_add_manually_save">Guardar</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Ejemplo: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Nuevo motor de búsqueda añadido.</string>
+
+ <string name="search_add_error_empty_name">Introducir el nombre del motor de navegación</string>
+ <string name="search_add_error_duplicate_name">Un motor de búsqueda instalado ya está usando ese nombre.</string>
+
+ <string name="search_add_error_empty_search">Introducir la cadena de búsqueda</string>
+
+ <string name="search_add_error_format">Verificar que la cadena de búsqueda corresponda al formato del ejemplo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Limpiar registro</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Ignorar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Eliminar historial de navegación</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Pestañas abiertas: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Conexión segura</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Cargando</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Sitio web cargado</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Más opciones</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Botón de más opciones</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Ir hacia delante</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Recargar sitio web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Regresar a la navegación</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Detener la carga del sitio web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Regresar a la aplicación anterior</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Número de rastreadores bloqueados</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Bloquear rastreadores</string>
+
+ <string name="your_rights">Tus derechos</string>
+
+ <string name="external_app_prompt_title">Abrir enlace en otra aplicación</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Puedes salir de %1$s para abrir este enlace en %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Buscar una aplicación que pueda abrir el enlace</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ninguna de las aplicaciones en tu dispositivo puede abrir este enlace. Puedes salir de %1$s para buscar una aplicación compatible en %2$s.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">¿Salir de la navegación privada?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s finalizado</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Abrir</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">No se encontró el servidor</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Cerrar</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Te damos la bienvenida a %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rápido. Privado. Sin distracciones.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Comenzar</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s no es como otros navegadores</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Borramos tu historial cuando cierras la aplicación para mayor privacidad.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Establece %1$s como predeterminado para proteger tus datos con cada enlace que abras.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Establecer como navegador predeterminado</string>
+
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Saltar</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Potencia tu privacidad</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Lleva la navegación privada a otro nivel. Bloquea anuncios publicitarios y otro tipo de contenido que puede rastrearte a través de los sitios y ralentizar el tiempo de descarga de las páginas.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Tu búsqueda, a tu manera</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">¿Buscas algo diferente? Elige otro motor de búsqueda predeterminado en la configuración.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Agrega atajos a la pantalla principal</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Regresa rápidamente a tus sitios favoritos en %1$s. Selecciona \&quot;agregar a la página de inicio\&quot; desde el menú %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Acostúmbrate a la privacidad</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Establece %1$s como navegador predeterminado y experimenta los beneficios de la navegación privada al abrir páginas web desde otras aplicaciones.</string>
+
+ <string name="firstrun_close_button">¡Entendido!</string>
+ <string name="firstrun_skip_button">Ignorar</string>
+ <string name="firstrun_next_button">Siguiente</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Agregar</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">SÍ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Cancelar</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NO</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">El acceso directo se abrirá con la protección mejorada contra el rastreo deshabilitada</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sesión de navegación privada</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Las notificaciones permiten borrar la sesión de %1$s con un toque. No necesitas abrir la aplicación o ver lo que está funcionando en el navegador.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Borrar historial de navegación</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Descarga Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s es software libre de código abierto hecho por Mozilla y por otros contribuidores.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s está disponible para ti bajo los términos de la <a href="%2$s">Licencia Pública de Mozilla</a> y otras licencias de código abierto.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[No se te ha concedido ningún derecho de marca o licencia sobre las marcas comerciales de la fundación Mozilla o de cualquier parte, incluyendo los logos o nombres de Mozilla, Firefox o %1$s. Puedes encontrar información adicional <a href="%2$s">aquí</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[El código fuente adicional para %1$s está disponible bajo otras <a href="%2$s">licencias</a> libres y de código abierto.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s también utiliza listas de bloqueo provistas por Disconnect, Inc. como trabajos separados e independientes bajo la<a href="%2$s">GNU General Public License v3</a>, y se encuentra disponible <a href="%3$s">aquí</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nombre de usuario</string>
+ <string name="gv_prompt_password_hint">Contraseña</string>
+ <string name="gv_prompt_clear">Limpiar</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Conexión segura</string>
+ <string name="security_popup_insecure_connection">Conexión insegura</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verificado por: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Seguridad del sitio</string>
+ <string name="preference_autocomplete_duplicate_url_error">La URL ya existe</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Buscar en la página</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Buscar en la página</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d de %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Buscar resultado siguiente</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Buscar resultado anterior</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Cerrar la búsqueda</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Pedir versión de escritorio</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Sitio de escritorio</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL copiada</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Herramientas de desarrollador</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Abrir enlaces en aplicaciones</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avanzadas</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Permisos del sitio</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reducción de banner de cookies</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Activar</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Desactivar</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reducción de banner de cookies</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Mira menos banners automáticamente rechazando las solicitudes de cookies, cuando sea posible.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reducción de banner de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ACTIVADO para este sitio</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Sitio actualmente no compatible</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">DESACTIVADO para este sitio</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reducción de banner de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">DESACTIVADO para este sitio</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ACTIVADO para este sitio</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">¿Activar la reducción de banner de cookies para %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">¿Desactivar la reducción de banner de cookies para %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s borrará las cookies de este sitio y actualizará la página. Borrar todas las cookies puede cerrar tu sesión o vaciar los carritos de compras.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s puede intentar rechazar automáticamente las solicitudes de cookies.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Actualmente, este sitio no es compatible con la reducción de banner de cookies. ¿Te gustaría solicitar a nuestro equipo que revise este sitio web y agregue soporte en el futuro?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Cancelar</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Solicitar soporte</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">La solicitud de soporte ha sido enviada.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">La solicitud de soporte ha sido enviada.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s intentara rechazar las solicitudes de cookies para descartar los molestos banners de cookies.\n
+\nAdministrar preferencias de banners de cookies en %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">ajustes</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Reproducción automática</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Para permitirlo:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Ir a los ajustes de Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Presiona <b>Permisos</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Ir a los ajustes</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Cambia <b>%1$s</b> a Encendido]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Cámara</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Micrófono</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Ubicación</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notificación</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Contenido controlado por DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Pedir permiso</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Bloqueado</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Permitido</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Bloqueado por Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Permitir audio y video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Bloquear solo audio</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Recomendado</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Bloquear audio y video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Estudios</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox puede instalar y ejecutar estudios de vez en cuando.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Saber más</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">La aplicación se cerrará para aplicar los cambios</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Eliminar</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Activo</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Completados</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Depuración remota vía USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Desbloquear</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Confirma usando tu huella digital</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Puedes usar tu huella digital para continuar con tu sesión actual de la aplicación.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Abrir el enlace en una nueva sesión</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Ícono de huella digital</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Huella digital no reconocida. Intenta de nuevo.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">El dedo se movió muy rápido. Intenta de nuevo.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">¿Mostrar sugerencias de búsqueda?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Para recibir sugerencias, %1$s necesita enviar lo que escribas en la barra de direcciones al buscador.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">No</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Sí</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Algunos motores de búsqueda no pueden mostrar sugerencias.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Descartar</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">¿El sitio se comporta de manera inesperada?\n Prueba desactivar la Protección de Rastreo</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Obtén acceso con un toque a los sitios que más usas%1$s Menú > Agregar a la pantalla de inicio]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Abrir cada enlace en %1$s\n Establecer %1$s como navegador predeterminado</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Autocompletar URLs para los sitios que más usas\n Mantén presionada cualquier URL en la barra de direcciones</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Abrir enlace en una nueva pestaña\n Mantén presionado cualquier enlace en una página</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Desactivar los consejos en la pantalla de inicio</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nueva pestaña abierta</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Cambiar</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Accediendo a pantalla completa</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Cambiar a un enlace en una nueva pestaña inmediatamente</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Bloquear sitios potencialmente peligrosos y engañosos</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Bloquear sitios reportados por fraudes y ataques, sitios de malware y sitios de software no deseado.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Modo solo HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Intenta conectarse automáticamente a sitios utilizando el protocolo de encriptación HTTPS para mayor seguridad.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Excepciones</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Has deshabilitado el bloqueo de contenido para estos sitios.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Eliminar</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Eliminar todos los sitios</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Bloquear cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">¿Te gustaría bloquear las cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">La pestaña ha fallado</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Lo sentimos. Estamos teniendo un problema con esta pestaña.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Como navegador privado, no hemos guardado ni podemos restaurar esta pestaña.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Cerrar pestaña</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Enviar reporte de fallos a Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Rastreadores bloqueados desde %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Contenido</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Publicidad</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analítica</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Protección mejorada contra el rastreo</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Las protecciones están desactivadas para este sitio</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Las protecciones están activadas para este sitio</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">La conexión es segura</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">La conexión no es segura</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Rastreadores y scripts a bloquear</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Retroceder</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Eliminar</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Renombrar</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Renombrar</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nombre del acceso directo</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Las imágenes guardadas y compartidas &lt;b&gt;no serán&lt;/b&gt; eliminadas cuando borres el historial de %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Claro</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Oscuro</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Establecido por el ahorrador de batería</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Usar el tema del dispositivo</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Este sitio no es compatible con HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s intenta usar una conexión HTTPS siempre que sea posible para mayor seguridad.
+ <a href="%2$s">Saber más</a> <br/><br/>
+ Cambia esta configuración en Ajustes > Privacidad &amp; Seguridad > Seguridad.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Conexión no segura</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Esto podría deberse a un problema con la configuración del servidor, o podría ser alguien intentando hacerse pasar por el servidor.<br/><br/>
+ Si en el pasado te has conectado correctamente a este servidor, el error podría ser temporal.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Alguien podría estar intentando hacerse pasar por el sitio y continuar podría ser peligroso.</label>
+ <br><br>
+ <label>%1$s no confía en <b>%2$s</b> porque el emisor del certificado es desconocido, el certificado está autofirmado o el servidor no envía los certificados intermedios correctos.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Cerrar pestaña</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">¡Excelente! Evitamos que esta página web te espíe. Presiona el escudo para ver lo que estamos bloqueando.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Cerrar elemento emergente</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">¡Estás protegido!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Esta configuración predeterminada ofrece una fuerte protección. Pero es fácil ajustar la configuración para satisfacer tus necesidades específicas.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Descartar</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Presiona aquí para eliminar todo — historial, cookies, y todo lo demás — e inicia en una nueva pestaña.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Cerrar</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget de búsqueda</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">¡Historial de navegación borrado! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Inicia tu sesión de navegación privada y bloquearemos rastreadores y otras amenazas mientras navegas.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Te dejaremos con tu navegación privada, pero comienza más rápido la próxima vez con el widget %1$s en tu pantalla de inicio.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Agregar widget a la pantalla de inicio</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget agregado a la pantalla de inicio</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-et/strings.xml b/mobile/android/focus-android/app/src/main/res/values-et/strings.xml
new file mode 100644
index 0000000000..da74a70f6b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-et/strings.xml
@@ -0,0 +1,881 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Loobu</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Olgu</string>
+
+ <string name="action_save">Salvesta</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Otsi või sisesta aadress</string>
+
+ <string name="teaser">Automaatne privaatne lehitsemine.\nLehitse. Kustuta. Korda.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Lehitsemisajalugu on kustutatud.</string>
+ <string name="feedback_erase2">Lehitsemisajalugu on kustutatud</string>
+
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Kaardi lehitsemisajalugu on kustutatud.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Otsi fraasi %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Jaga…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Anna teada saidil olevast veast</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Ava brauseris %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Ava brauseriga…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Lisa avaekraanile</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Lisa otseteedesse</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Eemalda otseteede hulgast</string>
+
+ <string name="menu_settings">Sätted</string>
+ <string name="menu_about">Teave</string>
+ <string name="menu_help">Abi</string>
+ <string name="menu_rights">Sinu õigused</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Blokitud jälitajaid</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Selle väljalülitamine võib lahendada mõned saidiprobleemid</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Sisu blokkimine</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Mõne saidi parandamiseks lülita välja</string>
+
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Välja antud %1$s poolt</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Jagamine kasutades</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Kustuta lehitsemise ajalugu</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Ava</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Kustuta ja ava</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Kustuta</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Kustuta lehitsemise ajalugu</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Kustuta ja ava</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Kustuta ja ava %1$s</string>
+
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s annab kontrolli sulle.</p>
+<p>Kasuta seda kui privaatset brauserit:
+ <ul>
+ <li>Otsi ja lehitse otse äpis</li>
+ <li>Bloki jälitajaid (või muuda sätteid, et mõni jälitaja lubada)</li>
+ <li>Kustuta küpsised ja ka lehitsemise ajalugu</li>
+ </ul>
+</p>
+<p>%1$s on Mozilla poolt toodetud. Meie missiooniks on edendada tervet ja avatud internetti.<br/>
+<a href="%2$s">Rohkem teavet</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privaatsus ja turvalisus</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Jälitamine, küpsised, andmete valikud</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Vaikeotsingumootor, automaatne täitmine</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$sest, abi</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Täiustatud jälitamisvastane kaitse</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Veebisisu</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Äppide vahel vahetamine</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Üldine</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Vaikebrauser, keel</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Andmete kogumine ja kasutamine</string>
+
+ <string name="preference_category_search">Otsing</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Hangitakse otsingusoovitusi</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s saadab aadressiribale sisestatu sinu otsingumootorile</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Vaikimisi</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Otsingumootor</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Sees</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Väljas</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URLide automaatne lõpetamine</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Top saitide jaoks</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Võimaldab %sel aadressiribal automaatselt lõpetada üle 450 populaarse URli.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Sinu lisatud saitide jaoks</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Võimaldab %sel automaatselt lõpetada sinu lemmik URLe.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Saitide haldamine</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Halda saite</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Lisa kohandatud URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Sinu automaatse täitmise nimekiri:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Lisa URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Kohandatud URLi lisamine</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Lisa kohandatud URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Lisa link automaatse täitmise nimekirja</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Küpsised ja saidi andmed</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Saadetavad andmed</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Eemalda kohandatud URLid</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Rohkem teavet</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Lisa ja halda kohandatud automaatse täitmise URLe.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Lisatav URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Aseta või sisesta URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Näide: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Näide: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Uus kohandatud URL lisatud.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Eemalda</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Eemalda</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Kontrolli sisestatud URLi uuesti.</string>
+
+ <string name="preference_language">Keel</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Süsteemi vaikekeel</string>
+
+ <string name="preference_category_privacy">Privaatsus</string>
+
+ <string name="preference_privacy_block_ads">Jälitajad blokitakse</string>
+
+ <string name="preference_privacy_block_ads_summary">Mõned reklaamid jälgivad saidi külastusi isegi siis, kui sa reklaamil ei klõpsa</string>
+ <string name="preference_privacy_block_analytics">Analüütilised jälitajad blokitakse</string>
+ <string name="preference_privacy_block_analytics_summary">Kasutatakse veebis tehtavate tegevuste analüüsimiseks ja mõõtmiseks</string>
+ <string name="preference_privacy_block_social">Sotsiaalsed jälitajad blokitakse</string>
+ <string name="preference_privacy_block_social_summary">Lisatud saitidele, et jälitada sinu külastusi ja kuvada funktsioone nagu jagamisnupud</string>
+ <string name="preference_privacy_block_content">Blokitakse muud jälitajad</string>
+ <string name="preference_privacy_block_content_summary2">Lubamine võib põhjustada mõne lehe ootamatu käitumise</string>
+ <string name="preference_privacy_category_cookies">Küpsised blokitakse</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Tänan, ei soovi</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Blokitakse ainult kolmanda osapoole jälitavad küpsised</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Blokitakse ainult kolmanda osapoole küpsised</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blokitakse saidiülesed küpsised</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Jah, palun</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Rakenduse lahtilukustamiseks kasutatakse sõrmejälge</string>
+
+ <string name="preference_security_biometric_summary2">Kui oled juba lisanud otsetee või avanud kaardi, siis saad %se avada sõrmejäljega.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Salajasus</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Äppide vahetajas varjatakse veebilehed ja ekraanipiltide tegemine blokitakse.</string>
+
+ <string name="preference_category_security">Turvalisus</string>
+
+ <string name="preference_category_performance">Jõudlus</string>
+ <string name="preference_performance_block_webfonts">Veebifondid blokitakse</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Võib põhjustada ikoonide või piltide puudumist</string>
+
+ <string name="preference_performance_block_javascript">JavaScript blokitakse</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Lehed võivad laadida kiiremini, kuid võivad käituda ootamatult</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s määratakse vaikebrauseriks</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Saadetakse kasutusandmeid</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Rohkem teavet</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla püüab koguda ainult seda, mida vajame, et teha %1$s kõigi jaoks paremaks.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Privaatsusreeglid</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$sest</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Paigaldatud otsingumootorid</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Otsingumootori määramine</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Lähtesta vaikeotsingumootorid</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Lisa veel üks otsingumootor</string>
+ <string name="preference_search_remove_title">Otsingumootorite eemaldamine</string>
+ <string name="preference_search_remove">Eemalda</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Lisa veel üks otsingumootor</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Vali oma eelistatud otsingumootor:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Otsingumootori lisamine</string>
+
+ <string name="search_add_manually_name_hint">Otsingumootori nimi</string>
+ <string name="search_add_manually_string">Kasutatav otsingustring</string>
+ <string name="search_add_manually_save">Salvesta</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Näide: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Uus otsingumootor lisatud.</string>
+
+ <string name="search_add_error_empty_name">Sisesta otsingumootori nimi</string>
+ <string name="search_add_error_duplicate_name">Paigaldatud otsingumootor juba kasutab sellist nime.</string>
+
+ <string name="search_add_error_empty_search">Sisesta otsingustring</string>
+
+ <string name="search_add_error_format">Kontrolli, et otsingustring kattub näidises toodud formaadiga</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Tühjenda sisend</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Tühista</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Kustuta lehitsemise ajalugu</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Avatud kaarte: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Turvaline ühendus</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Laadimine</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Veebisait laaditud</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Rohkem sätteid</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Rohkemate sätete nupp</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Liigu edasi</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Laadi veebileht uuesti</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Liigu tagasi</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Peata veebilehe laadimine</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Tagasi eelmise äpi juurde</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Blokitud jälitajate arv</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Bloki jälitajaid</string>
+
+ <string name="your_rights">Sinu õigused</string>
+
+ <string name="external_app_prompt_title">Ava link teises äpis</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Selle lingi avamiseks äpis %2$s võid lahkuda %1$sest.</string>
+
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Linki avada suutva äpi otsimine</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ükski sinu seadmes olev äpp ei saa seda linki avada. Võid lahkuda %1$sest, et otsida äpist %2$s sobivat äppi.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Kas väljuda privaatsest veebilehitsemisest?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">Faili %1$s allalaadimine on lõpetatud</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Ava</string>
+
+ <string name="error_hostLookup_title">Serverit ei leitud</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Tugevda oma privaatsust</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Vii privaatne veebilehitsemine uuele tasemele. Bloki reklaamid ja muu sisu, mis võib sinu tegevust erinevatel saitidel jälitada ja lehtede laadimist aeglustada.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Sinu otsing, sinu moodi</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Otsid midagi muud? Vali sätetes mõni teine vaikeotsingumootor.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Lisa otsetee oma avaekraanile</string>
+
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Naase kiiresti oma lemmiksaitidele %1$ses. Lihtsalt vali %1$se menüüst \&quot;Lisa avaekraanile\&quot;.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Muuda privaatsus harjumuseks</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Määra %1$s oma vaikebrauseriks ja kasuta teistest äppidest veebilehtede avamisel privaatse lehitsemise eeliseid.</string>
+
+ <string name="firstrun_close_button">Olgu, sain aru!</string>
+ <string name="firstrun_skip_button">Jäta vahele</string>
+ <string name="firstrun_next_button">Järgmine</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Lisa</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">JAH</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Loobu</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">EI</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Otsetee avaneb keelatud täiustatud jälitamisvastase kaitsega</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Privaatse veebilehitsemise seanss</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Teavitused võimaldavad sul %1$se seansi kustutada puudutusega. Sa ei pea äppi avama ega vaatama, mis brauseris töötab.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Kustuta lehitsemise ajalugu</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Laadi alla Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s on Mozilla ja teiste kaasautorite poolt loodud vaba ja avatud tarkvara.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s on kättesaadavaks tehtud <a href="%2$s">Mozilla avaliku litsentsi</a> ja muude avatud lähtekoodi litsentside tingimuste alusel.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Sulle ei anta mingeid õigusi ega litsentse Mozilla Foundationi ega ühegi osapoole kaubamärkidele, sealhulgas Mozilla, Firefoxi või %1$se nimedele või logodele. <a href="%2$s">Lisateave</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[%1$se täiendav lähtekood on saadaval mitmesuguste vaba ja avatud lähtekoodi <a href="%2$s">litsentside</a> alusel.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s kasutab ka Disconnect, Inc. poolt pakutavat blokkimise nimekirja kui eraldiseisvat ja sõltumatut tööd <a href="%2$s">GNU GPL v3 litsentsi</a> all, mis on saadaval <a href="%3$s">siin</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Kasutajanimi</string>
+ <string name="gv_prompt_password_hint">Parool</string>
+ <string name="gv_prompt_clear">Tühjenda</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Turvaline ühendus</string>
+ <string name="security_popup_insecure_connection">Ebaturvaline ühendus</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verifitseerija: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Saidi turvalisus</string>
+
+ <string name="preference_autocomplete_duplicate_url_error">URL on juba olemas</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Otsi lehelt</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Otsi lehelt</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">tulemus %1$d, kokku %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Leia järgmine tulemus</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Leia eelmine tulemus</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Katkesta otsimine</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Töölaua versioon</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Töölaua versioon</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL kopeeritud</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Arendaja tööriistad</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Lingid avatakse äppides</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Edasijõudnuile</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Saitide õigused</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automaatne esitamine</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Lubamiseks:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Mine Androidi sätetesse</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Puuduta <b>Load</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Mine sätetesse</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Lülita <b>%1$s</b> olekusse SEES]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kaamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Asukoht</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Teavitused</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRMiga kaitstud sisu</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Alati küsitakse</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blokitud</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Lubatud</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Keelatud Androidi poolt</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Heli ja video on lubatud</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blokitakse ainult heli</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Soovitatud</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blokitakse heli ja video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Uuringud</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox võib aegajalt paigaldada ja käivitada uuringuid.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Rohkem teavet</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Muudatuste rakendamiseks äpp suletakse</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Eemalda</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktiivne</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Lõpetatud</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Kaugsilumine USB/Wi-Fi kaudu</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Lukusta lahti</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Kinnita sõrmejälge kasutades</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Praeguse seansi jätkamiseks kasuta oma sõrmejälge.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Ava link uues seansis</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Sõrmejälje ikoon</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Sõrmejälge ei tuvastatud. Proovi uuesti.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Sõrm liikus liiga kiiresti. Proovi uuesti.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Kas kuvada otsingusoovitusi?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Soovituste saamiseks peab %1$s saatma aadressiribale sisestatud teksti otsingumootorile.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ei</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Jah</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Mõnedel otsingumootoritel pole võimalik soovitusi kuvada.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Peida</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Kas sait käitub ootamatult?\n
+ Proovi jälitamisvastane kaitse välja lülitada</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Saa ühe puudutusega ligipääs saitidele, mida enim %1$ses kasutad. Menüü > Lisa avaekraanile]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Ava kõik lingid %1$ses\n
+ Määra %1$s vaikebrauseriks
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Lõpeta enimkülastatud saitide URLid automaatselt\n
+ Puuduta pikalt mis tahes URLi aadressiribal
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Ava link uuel kaardil\n
+ Puuduta pikalt mis tahes linki lehel
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Lülita näpunäited avakuval välja</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Avati uus kaart</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Lülitu</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Uuele kaardile lülitutakse koheselt</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Ohtlikud ja petlikud saidid blokitakse</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Tuntud petu-, ründe-, pahavara- ja soovimatu tarkvara saidid blokitakse.</string>
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Ainult HTTPS-režiim</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Kõrgendatud turvalisuse nimel üritatakse saitidega ühenduda ainult HTTPSi krüptitud protokolli vahendusel.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Erandid</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Sisu blokkimine on järgnevatel saitidel keelatud.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Eemalda</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Eemalda kõik saidid</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Küpsised blokitakse</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Kas soovid küpsised blokkida?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Kaart jooksis kokku</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Vabandust. Meil on selle kaardiga probleeme.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Privaatse brauserina ei salvesta me andmeid ja seetõttu ei saa seda kaarti taastada.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Sulge kaart</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Mozillale saadetakse vearaport</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Alates %s blokitud jälitajaid</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Sisu</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Reklaam</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Sotsiaalmeedia</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analüütika</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Täiustatud jälitamisvastane kaitse</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Sellel saidil on kaitse VÄLJAS</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Sellel saidil on kaitse SEES</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Turvaline ühendus</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Ühendus pole turvaline</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Blokitavad jälitajad ja skriptid</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Mine tagasi</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Eemalda</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Muuda nime</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Nime muutmine</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Otsetee nimi</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Salvestatud ja jagatud pilte &lt;b&gt;ei&lt;/b&gt; kustutata %1$se ajaloo kustutamisel</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Teema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Hele</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Tume</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Seadistatud akusäästja poolt</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Järgitakse seadme teemat</string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Sulge kaart</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Sulge hüpikaken</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Sa oled kaitstud!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Need vaikesätted pakuvad tugevat kaitset. Kuid nende muutmine konkreetselt sinu vajadustele on lihtne.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Peida</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-eu/strings.xml b/mobile/android/focus-android/app/src/main/res/values-eu/strings.xml
new file mode 100644
index 0000000000..9d8dfc274f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-eu/strings.xml
@@ -0,0 +1,1117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Utzi</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Ados</string>
+
+ <string name="action_save">Gorde</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Bilatu edo idatzi helbidea</string>
+
+ <string name="teaser">Nabigatze pribatu automatikoa.\nNabigatu. Ezabatu. Errepikatu.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Zure nabigatze-historia ezabatu egin da.</string>
+ <string name="feedback_erase2">Nabigazio-historia garbituta</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Fitxaren nabigatze-historia ezabatu egin da.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Bilatu %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Partekatu…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Eman gunearen arazoaren berri</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Ireki %1$s nabigatzailean</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Ireki honekin…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Gehitu hasierako pantailan</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Gehitu lasterbideetara</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Kendu lasterbideetatik</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Ezarpenak</string>
+ <string name="menu_about">Honi buruz</string>
+ <string name="menu_help">Laguntza</string>
+ <string name="menu_rights">Zure eskubideak</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Blokeatutako elementuak</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Hau itzaltzeak zenbait guneren arazoak konpon litzake</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Edukia blokeatzea</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Itzali zenbait gune konpontzeko</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s nabigatzaileak hornitua</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Partekatu</string>
+
+ <string name="notification_erase_title_android_14">Ezabatu nabigatze-historia?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Sakatu edo garbitu jakinarazpen hau zure nabigatze-historia ezabatzeko.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Sakatu edo pasatu zeharka jakinarazpen hau zure nabigatze-historia ezabatzeko.</string>
+
+ <string name="notification_erase_text">Ezabatu nabigatze-historia</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Ireki</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Ezabatu eta ireki</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Ezabatu</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Ezabatu nabigatze-historia</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Ezabatu eta ireki</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Ezabatu eta ireki %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Bilatu Focus erabiliz</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Bilatu Klar erabliz</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Bilatu Focus Beta erabiliz</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Bilatu Focus Nightly erabiliz</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s(e)k agintea ematen dizu.</p>
+<p>Erabili nabigatzaile pribatu gisa:
+ <ul>
+ <li>Bilatu eta nabigatu aplikaziotik zuzenean</li>
+ <li>Blokeatu jarraipen-elementuak (edo eguneratu ezarpenak jarraipen-elementuak baimentzeko)</li>
+ <li>Ezabatu cookieak eta bilaketa- eta nabigatze-historia</li>
+ </ul>
+</p>
+<p>Mozillak egina da %1$s. Internet osasuntsu eta irekia sustatzea da gure misioa.<br/>
+<a href="%2$s">Argibide gehiago</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Pribatutasuna eta segurtasuna</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Jarraipena, cookieak, datu-aukerak</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Ezarri lehenespenak, osatze automatikoa</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s(r)i buruz, laguntza</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Jarraipenaren babes hobetua</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Web edukia</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Aplikazioak aldatzea</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Orokorra</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Nabigatzaile lehenetsia, hizkuntza</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Datuen bilketa eta erabilera</string>
+
+ <string name="preference_category_search">Bilaketa</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Eskuratu bilaketa-iradokizunak</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">Helbide-barran idazten duzuna bilaketa-motorrera bidaliko du %1$s(e)k</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Lehenetsia</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Bilaketa-motorra</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Aktibatuta</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Desaktibatuta</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URLen osatze automatikoa</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Gune erabilienetarako</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Gaituz gero, helbide-barran automatikoki osatuko ditu 450 URL ezagun baino gehiago %s(e)k.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Gehitzen dituzun guneetarako</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Gaitu %s(e)k zure gogoko URLak automatikoki osatzeko.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Kudeatu guneak</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Kudeatu guneak</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Gehitu URL perstonalizatua</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Zure osatze automatikoko zerrenda:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Gehitu URLa</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Gehitu URL perstonalizatua</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Gehitu URL pertsonalizatua</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Gehitu automatikoki osatzeko lotura</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookieak eta guneetako datuak</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Datu-aukerak</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Kendu URL pertsonalizatuak</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Argibide gehiago</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Gehitu eta kudeatu automatikoki osatzeko URL pertsonalizatuak.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Gehitu beharreko URLa</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Itsatsi edo idatzi URLa</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Adibidea: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Adibidea: adibidea.eus</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">URL pertsonalizatu berria gehitu da.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Kendu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Kendu</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Egiaztatu idatzi duzun URLa.</string>
+
+ <string name="preference_language">Hizkuntza</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Sistemaren lehenetsia</string>
+
+ <string name="preference_category_privacy">Pribatutasuna</string>
+ <string name="preference_privacy_block_ads">Blokeatu publizitatearen jarraipena</string>
+ <string name="preference_privacy_block_ads_summary">Zenbait iragarkik guneen bisiten jarraipena egiten dute, iragarkietan klik egiteko beharrik gabe ere</string>
+ <string name="preference_privacy_block_analytics">Blokeatu analitiken jarraipena</string>
+ <string name="preference_privacy_block_analytics_summary">Sakatzea edo korritzea bezalako jarduerak bildu, analizatu eta neurtzeko erabiltzen da</string>
+ <string name="preference_privacy_block_social">Blokeatu sare sozialetako jarraipena</string>
+ <string name="preference_privacy_block_social_summary">Guneetan txertatuta zure bisiten jarraipena egin eta partekatzeko botoien tankerako eginbideak bistaratzeko</string>
+ <string name="preference_privacy_block_content">Blokeatu bestelako edukien jarraipena</string>
+ <string name="preference_privacy_block_content_summary2">Gaituz gero, zenbait orrik espero gabeko portaera izan lezakete</string>
+ <string name="preference_privacy_category_cookies">Blokeatu cookieak</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ez, eskerrik asko</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Blokeatu soilik hirugarrenen jarraipen-cookieak</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Blokeatu soilik hirugarrenen cookieak</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blokeatu guneen arteko cookieak</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Bai, mesedez</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Erabili hatz-marka aplikazioa desblokeatzeko</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Desblokeatu hatz-marka erabiliz lasterbideak gehitu badituzu edo webgune bat %s(e)n dagoeneko zabalik badago.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Modu isil-gordea</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Ezkutatu web orriak aplikazioak aldatzean eta blokeatu pantaila-argazkiak ateratzea.</string>
+
+ <string name="preference_category_security">Segurtasuna</string>
+
+ <string name="preference_category_performance">Errendimendua</string>
+ <string name="preference_performance_block_webfonts">Blokeatu webeko letra-tipoak</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Ikonoak edo irudiak ez bistaratzea eragin lezake</string>
+
+ <string name="preference_performance_block_javascript">Blokeatu JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Orriak azkarrago karga litezke baina espero gabeko portaera ere izan lezakete</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Egin %1$s nabigatzaile lehenetsia</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Bidali erabilera-datuak</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Argibide gehiago</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">%1$s denontzat eskaini eta hobetzeko beharrezkoa dena soilik biltzen ahalegintzen da Mozilla.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Pribatutasun-oharra</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Lizentziaren informazioa</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Erabiltzen ditugun liburutegiak</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Kode irekiko liburutegiak</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s(r)i buruz</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Instalatutako bilaketa-motorrak</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Aukeratu bilaketa-motorra</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Berrezarri bilaketa-motor lehenetsiak</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Gehitu beste bilaketa-motor bat</string>
+ <string name="preference_search_remove_title">Kendu bilaketa-motorrak</string>
+ <string name="preference_search_remove">Kendu</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Gehitu beste bilaketa-motor bat</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Hautatu bilaketa-motor hobetsia:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Gehitu bilaketa-motorra</string>
+
+ <string name="search_add_manually_name_hint">Bilaketa-motorraren izena</string>
+ <string name="search_add_manually_string">Erabili beharreko bilaketa-katea</string>
+ <string name="search_add_manually_save">Gorde</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Adibidea: adibidea.eus/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Bilaketa-motor berria gehitu da.</string>
+
+ <string name="search_add_error_empty_name">Idatzi bilaketa-motorraren izena</string>
+ <string name="search_add_error_duplicate_name">Instalatutako bilaketa-motor batek izen hori darabil lehendik ere.</string>
+
+ <string name="search_add_error_empty_search">Idatzi bilaketa-katea</string>
+
+ <string name="search_add_error_format">Egiaztatu bilaketa-katea adibidearen formatuarekin bat datorrela</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Garbitu idatzitakoa</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Baztertu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Ezabatu nabigatze-historia</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Irekitako fitxak: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Konexio segurua</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Kargatzen</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Webgunea kargatuta</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Aukera gehiago</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Aukera gehiagorako botoia</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Nabigatu aurrera</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Berritu webgunea</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Nabigatu atzera</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Gelditu webgunea kargatzen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Itzuli aurreko aplikaziora</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Blokeatutako elementu kopurua</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blokeatu jarraipena</string>
+
+ <string name="your_rights">Zure eskubideak</string>
+
+ <string name="external_app_prompt_title">Ireki lotura beste aplikazio batean</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">%1$s utz dezakezu lotura hau %2$s aplikazioan irekitzeko.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Bilatu lotura ireki dezakeen aplikazio bat</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ez dago lotura hau irekitzeko gai den aplikaziorik zure gailuan. %1$s utz dezakezu lotura ireki dezaken aplikazio bat %2$s(e)n bilatzeko.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Irten nabigazio pribatutik?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s amaituta</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Ireki</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Lasterbideetara gehituta!</string>
+
+ <string name="error_hostLookup_title">Zerbitzaria ez da aurkitu</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Itxi</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Ongi etorri %1$s(e)ra!</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Azkarra. Pribatua. Distraziorik gabea.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Hasi erabiltzen</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s ez da beste nabigatzaileak bezalakoa</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Pribatutasun handiagorako, zure historia garbitzen dugu aplikazioa ixten duzunean.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Lehenetsi %1$s, irekitako lotura bakoitzarekin zure datuak babesteko.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Ezarri nabigatzaile lehenetsi gisa</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Saltatu</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Indartu zure pribatutasuna</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Eraman nabigatze pribatua hurrengo mailara. Blokeatu iragarkiak eta webguneetan zehar zure jarraipena egin edo orrien karga-denbora makal dezaketen edukiak.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Bilaketa, zure erara</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Zerbait desberdinaren bila? Aukeratu beste bilaketa-motor lehenetsi bat ezarpenetan.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Gehitu lasterbideak zure hasierako pantailan</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Itzuli azkar batean zure gogoko guneetara %1$s(r)en. Hautatu \'Gehitu hasierako pantailan\' %1$s menutik.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Egizu pribatutasuna zure ohitura</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Ezarri %1$s nabigatzaile lehenetsi gisa eta eskuratu nabigatze pribatuaren onurak beste aplikazioetatik web orriak irekitzean.</string>
+
+ <string name="firstrun_close_button">Ulertuta!</string>
+ <string name="firstrun_skip_button">Saltatu</string>
+ <string name="firstrun_next_button">Hurrengoa</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Gehitu</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">BAI</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Utzi</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">EZ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Lasterbidea jarraipenaren babes hobetua desgaituta duela irekiko da</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Nabigatze pribatuko saioa</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Jakinarazpenetatik zure %1$s saioa ezaba dezakezu sakatzearekin soilik. Horretarako ez daukazu aplikazioa ireki edo nabigatzailean dagoena ikusi beharrik.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Ezabatu nabigatze-historia</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Deskargatu Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[Mozillak eta beste hainbat laguntzailek egindako software libre eta kode irekikoa da %1$s.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s zure eskura dago <a href="%2$s">Mozilla Public License</a> eta kode irekiko beste lizentzien baldintzapean.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Ez zaizu inolako eskubiderik edo lizentziarik aitortzen Mozilla Fundazioaren edo bestelakoen marka erregistratuetan, Mozilla, Firefox edo %1$s izen edo logoetan barne. Argibide gehiago <a href="%2$s">hemen</a> aurki daitezke.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[%1$s aplikazioaren iturburu-kode gehigarria erabilgarri dago kode irekikoak eta libreak diren bestelako <a href="%2$s">lizentzietan</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s aplikazioak Diskonnect, Inc.-ek emandako blokeo-zerrendak ere erabiltzen ditu, <a href="%2$s">GNU General Public License v3</a> lizentziapeko aparteko lan independente gisa eta eskuragarri dago <a href="%3$s">hemen</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Erabiltzaile-izena</string>
+ <string name="gv_prompt_password_hint">Pasahitza</string>
+ <string name="gv_prompt_clear">Garbitu</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Konexio segurua</string>
+ <string name="security_popup_insecure_connection">Konexio ez-segurua</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Egiaztatzailea: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Gunearen segurtasuna</string>
+ <string name="preference_autocomplete_duplicate_url_error">URLa badago lehendik ere</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Bilatu orrian</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Bilatu orrian</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%2$d/%1$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%2$d(e)tik %1$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Bilatu hurrengo emaitza</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Bilatu aurreko emaitza</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Baztertu orrian bilatzea</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Mahaigaineko gunea</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Mahaigainerako gunea</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URLa kopiatu da</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Garatzaile-tresnak</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Ireki loturak aplikazioetan</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Aurreratua</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Gunearen baimenak</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Cookie iragarki-banden murrizpena</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Aktibatuta</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Desaktibatuta</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Cookie iragarki-banden murrizpena</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Ikusi iragarki-banda gutxiago ahal denean cookie eskaerak automatikoki baztertuz.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Cookie iragarki-banden murrizpena</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Aktibatuta gune honetarako</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Une honetan gune honetarako euskarririk ez</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Desaktibatuta gune honetarako</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Cookie iragarki-banden murrizpena</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Desaktibatuta gune honetarako</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Aktibatuta gune honetarako</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Aktibatu cookie iragarki-banden murrizpena %1$s gunerako?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Desaktibatu cookie iragarki-banden murrizpena %1$s gunerako?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s(e)k gune honetako cookieak garbitu eta orria berrituko du. Cookie guztiak garbitzean, saioak amaitu edo erosketa-orgak hustu litezke.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s automatikoki saia daiteke cookie-eskaerak ukatzen.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Cookie iragarki-banden murrizpenak oraindik ez du gune honetarako euskarririk. Gure taldeak webgune hau berrikusi eta etorkizunean bere euskarria gehitzea eskatu nahi duzu?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Utzi</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Eskatu euskarria</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Gunearen euskarria gehitzeko eskaera bidalita.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Gunearen euskarria gehitzeko eskaera bidalita.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s cookie eskaerak ukatzen saiatzen da cookie iragarki-banda gogaikarriak baztertzeko.\n\nKudeatu cookie iragarki-banden hobespenak %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">ezarpenetan</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Erreprodukzio automatikoa</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Baimentzeko:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Zoaz Android sistemako ezarpenetara</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Sakatu <b>Baimenak</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Joan ezarpenetara</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Txandakatu <b>%1$s</b> piztuta egon dadin]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofonoa</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Kokalekua</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Jakinarazpena</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM bidez kontrolatutako edukia</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Galdetu baimentzeko</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blokeatuta</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Baimenduta</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Androidek blokeatuta</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Baimendu audioa eta bideoa</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blokeatu audioa soilik</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Gomendatua</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blokeatu audioa eta bideoa</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Esperimentuak</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Noizean behin esperimentuak instala eta exekuta litzake Firefoxek.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Argibide gehiago</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Aplikazioa itxi egingo da aldaketak aplikatzeko</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Kendu</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktibo</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Burututa</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">USB/Wi-Fi bidezko urruneko arazketa</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Desblokeatu</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Berretsi hatz-marka erabiliz</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Zure hatz-marka erabil dezakezu aplikazioaren saioarekin jarraitzeko.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Ireki lotura saio berrian</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Hatz-markaren ikonoa</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Ez da hatz-marka ezagutu. Saiatu berriro.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Hatza azkarregi mugitu da. Saiatu berriro.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Erakutsi bilaketa-iradokizunak?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Iradokizunak lortzeko, helbide-barran idazten duzuna bilaketa-motorrari bidali behar dio %1$s(e)k.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ez</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Bai</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Zenbait bilaketa-motorrek ezin dituzte iradokizunak erakutsi.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Baztertu</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Guneak espero gabeko portaera du?\n Saiatu jarraipenaren babesa itzaltzen</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Eskuratu behin sakatuta gehien bisitatzen dituzun webguneetarako sarbidea%1$s Menua > Gehitu hasierako pantailan]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Ireki lotura guztiak %1$s aplikazioarekin\n Egin %1$s nabigatzaile lehenetsia</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Osatu automatikoki gehien bisitatzen dituzun guneetako URLak\n Mantendu sakatuta helbide-barran edozein URL</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Ireki lotura fitxa berri batean\n Mantendu sakatuta orri bateko edozein lotura</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Desgaitu hasierako pantailako aholkuak</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Fitxa berria irekita</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Aldatu</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Pantaila osoko moduan sartzen</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Aldatu berehala loturara fitxa berrian</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Blokeatu arriskutsuak eta iruzurtiak izan litezkeen guneak</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blokeatu iruzurti eta erasotzaile gisa identifikatutako guneak, hala nola malwarea eta eskatu gabeko softwarea duten guneak.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">HTTPS-Only modua</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Automatikoki saiatzen da guneetara konektatzen HTTPS zifratze-protokoloa erabiliz, segurtasun gehiago lortzeko.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Salbuespenak</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Edukia blokeatzea desgaitu duzu gune hauetarako.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Kendu</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Kendu webgune guztiak</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blokeatu cookieak</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Cookieak blokeatu nahi dituzu?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Fitxak huts egin du</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Barkatu. Arazo bat izaten ari gara fitxa honekin.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Nabigatzaile pribatu gisa, inoiz ez dugu ezer gordetzen eta ezin dugu fitxa hau berreskuratu.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Itxi fitxa</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Bidali hutsegite-txostena Mozillara</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Blokeatutako jarraipen-elementuak %s datatik</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Edukia</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Iragarkiak</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Sare sozialak</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analitikak</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Jarraipenaren babes hobetua</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Babesak inaktibo daude gune honetarako</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Babesak aktibo daude gune honetarako</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Konexioa segurua da</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Konexioa ez da segurua</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Blokeatu beharreko jarraipen-elementu eta scriptak</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Joan atzera</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Kendu</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Berrizendatu</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Berrizendatu</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Lasterbidearen izena</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Deskargatutako eta partekatutako irudiak &lt;b&gt;ez dira&lt;/b&gt; ezabatuko %1$s(r)en historia ezabatzean.</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Itxura</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Argia</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Iluna</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Bateria-aurrezleak ezarrita</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Erabili gailuaren itxura</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Gune honek ez du HTTPS onartzen</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s saiatzen da ahal denean HTTPS konexioa erabiltzen segurtasun hobeagorako.
+ <a href="%2$s">Argibide gehiago</a> <br/><br/>
+ Aldatu ezarpen hau Ezarpenak > Pribatutasuna eta Segurtasuna > Segurtasuna atalean.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Konexio ez-segurua</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Hau zerbitzariaren konfigurazio-errore batengatik edo norbait zerbitzariaren nortasuna hartzen ari delako izan daiteke. <br/><br/>
+ Aurretik zerbitzari honetara behar bezala konektatu bazara, errorea behin-behinekoa izan daiteke.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Baten bat gunea ordezten saiatzen egon liteke eta jarraitzea arriskutsua izan liteke.</label>
+ <br><br>
+ <label>%1$sek ez du <b>%2$s</b> fidagarritzat jotzen ziurtagiriaren jaulkitzailea ezezaguna delako, ziurtagiria guneak berak sinatutakoa delako, edo zerbitzariak ez dituelako tarteko ziurtagiriak egoki bidaltzen.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Itxi fitxa</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Harrapatu dugu! Gunek honek zu espiatzea galarazi dugu. Sakatu edonoiz babesaren ikonoa ikusteko zer ari garen blokeatzen.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Itxi laster-leihoa</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Babestuta zaude!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Ezarpen lehenetsi hauek babes sendoa eskaintzen dute. Erraza da halere ezarpenak zure beharretara moldatzea.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Baztertu</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Sakatu hemen dena zakarrontzira botatzeko — historia, cookieak, dena — eta hasi berriro zerotik fitxa berri batean.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Itxi</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Bilaketa widgeta</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Nabigatze-historia garbituta! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Hasi nabigatze pribatuko saioa eta jarraipen-elementuak eta bestelako gauza txarrak blokeatu egingo ditugu zuk nabigatzen duzun bitartean.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Zure nabigatze pribatuaren menpe utziko dugu, baina hurrengoan azkarrago has zaitezke zure hasierako pantailan %1$s widgeta erabiliz.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Gehitu widgeta hasierako pantailan</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widgeta hasierako pantailan gehitu da</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-fa/strings.xml b/mobile/android/focus-android/app/src/main/res/values-fa/strings.xml
new file mode 100644
index 0000000000..20b4181212
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-fa/strings.xml
@@ -0,0 +1,857 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">لغو</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">تایید</string>
+
+ <string name="action_save">ذخیره</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">جست‌وجو کنید یا آدرسی را وارد کنید</string>
+
+ <string name="teaser">مرور ناشناس خودکار.\nمرور کنید. پاک کنید. تکرار کنید.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">تاریخچهٔ مرور شما پاک شد.</string>
+ <string name="feedback_erase2">تاریخچهٔ مرور، پاک شد</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">تاریخچه زبانه‌های مرورگر پاک شده است.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">جست‌وجو برای %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">اشتراک‌گذاری…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">گزارش مشکل در پایگاه</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">بازکردن در %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">بازکردن…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">افزودن به صفحهٔ خانه</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">افزودن به میان‌برها</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">برداشتن از میان‌برها</string>
+
+ <string name="menu_settings">تنظیمات</string>
+ <string name="menu_about">درباره</string>
+ <string name="menu_help">راهنما</string>
+ <string name="menu_rights">حقوق شما</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">ردیاب‌های مسدود شده</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">خاموش کردن این ممکن است بتواند تعدادی از مشکلات این سایت را حل کند</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">مسدود کردن محتوا</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">خاموش کردن برای حل مشکل چند سایت</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">نیرو گرفته توسط %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">اشتراک‌گذاری از طریق</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">پاک کردن تاریخچهٔ مرورگر</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">باز کردن</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">حذف و باز کن</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">پاک کردن</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">پاک کردن تاریخچهٔ مرورگر</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">پاک کردن و بازکردن</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">پاک کردن و باز کردن %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">جستجو در فوکوس</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">جستجو در فوکوس بتا</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">جستجو در Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s شما را تحت کنترل قرار می‌دهد.</p>
+<p>از این به عنوان یک مرورگر خصوصی استفاده کنید:
+ <ul>
+ <li>مستقیما در برنامه جست‌وجو و مرور کنید</li>
+ <li>ردیاب‌ها را مسدود کنید (یا تنظیمات را برای اجازه دادن به ردیاب‌ها تغییر دهید)</li>
+ <li>کوکی‌ها را مانند جست‌وجو و تاریخچه مرور پاک یا حذف کنید</li>
+ </ul>
+</p>
+<p>%1$s توسط موزیلا ساخته شده است. ماموریت ما تا رواج یک اینترنت سالم و باز است.<br/>
+<a href="%2$s">بیشتر بدانید</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">حریم خصوصی و امنیت</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">ردیابی، کوکی‌ها، انتخاب‌های داده</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">تنظیم پیش‌فرض، تکمیل خودکار</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">دربارهٔ %1$s، راهنما</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">محافظت پیشرفته در برابر ردیابی</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">محتوای وب</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">تعویض برنامه‌ها</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">عمومی</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">مرورگر پیش‌فرض، زبان</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">گردآوری داده و موارد استفاده</string>
+
+ <string name="preference_category_search">جست‌وجو</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">دریافت پیشنهادات جست‌وجو</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s چیزی که شما در نوار آدرس وارد می‌کنید را برای موتور جست‌وجو شما ارسال خواهد کرد</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">پیش‌فرض</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">موتور جست‌وجو</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">روشن</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">خاموش</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">تکمیل خودکار نشانی</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">برای سایت‌های برتر</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">فعال کردن %s برای تکمیل خودکار بیش از ۴۵۰ URL محبوب در نوار آدرس.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">برای سایت‌هایی که شما اضافه می‌کنید</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">فعال کردن %s برای تکمیل خودکار URLهای محبوب شما.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">مدیریت سایت‌ها</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">مدیریت سایت‌ها</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ افزودن نشانی سفارشی</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">فهرست تکمیل خودکار شما:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">افزودن آدرس اینترنتی</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">افزودن نشانی سفارشی</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">افزودن نشانی سفارشی</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">افزودن پیوند به تکمیل خودکار</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">کوکی‌ها و داده‌های پایگاه</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">انتخاب‌های داده</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">حذف نشانی‌های سفارشی</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">بیشتر بدانید</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">افزودن و مدیریت تکمیل خودکار نشانی‌های سفارشی.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">نشانی برای افزودن</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">جای‌گذاری یا ورود نشانی</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">مثال: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">مثال: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">نشانی سفارشی جدید اضافه شد</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">حذف</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">حذف</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">نشانی که وارد کردید را دوباره بررسی کنید.</string>
+
+ <string name="preference_language">زبان</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">پیش‌فرض سیستم</string>
+
+ <string name="preference_category_privacy">حریم خصوصی</string>
+ <string name="preference_privacy_block_ads">مسدود کردن ردیاب‌های تبلیغاتی</string>
+ <string name="preference_privacy_block_ads_summary">برخی از تبلیغ‌ها بازدیدهای سایت را دنبال می‌کنند، حتّی اگر شما روی تبلیغ‌ها کلیک نکنید</string>
+ <string name="preference_privacy_block_analytics">مسدود کردن ردیاب‌های آماری</string>
+ <string name="preference_privacy_block_analytics_summary">استفاده شده برای جمع‌آوری، تحلیل و اندازه‌گیری فعّالیت‌هایی مانند لمس کردن و پیمایش کردن</string>
+ <string name="preference_privacy_block_social">مسدود کردن ردیاب‌های شبکه‌های اجتماعی</string>
+ <string name="preference_privacy_block_social_summary">جاسازی شده در سایت‌ها برای دنبال کردن بازدیدهای شما و برای نشان دادن عملکردهایی مانند دکمه‌های به اشتراک گذاری</string>
+ <string name="preference_privacy_block_content">مسدود کردن سایر ردیاب‌های محتوا</string>
+ <string name="preference_privacy_block_content_summary2">فعّال کردنش ممکن است منجر به آن شود که برخی از صفحات بطور غیر منتظره عمل کنند</string>
+ <string name="preference_privacy_category_cookies">مسدود کردن کوکی‌ها</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">خیر، متشکرم</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">فقط مسدود کردن کوکی‌های ردیابی شخص ثالث</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">فقط مسدود کردن کوکی‌های شخص ثالث</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">مسدود کردن کوکی‌های بین‌پایگاهی</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">بله، لطفاً</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">استفاده از اثرانگشت برای بازکردن برنامه</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">بازکردن قفل به وسیله اثر انگشت اگر این میانبر را اضافه کرده‌ اید یا پایگاه اینترنتی در حال حاضر در %s باز است.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">حالت پنهان</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">هنگام تعویض برنامه‌ها صفحه‌های وب را مخفی و گرفتن تصاویر صفحه را مسدود کن.</string>
+
+ <string name="preference_category_security">امنیت</string>
+
+ <string name="preference_category_performance">کارایی</string>
+ <string name="preference_performance_block_webfonts">مسدود کردن قلم‌های وب</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">ممکن است باعث بارگیری نشدن برخی از شمایل‌ها و تصاویر بشود</string>
+
+ <string name="preference_performance_block_javascript">مسدود کردن جاوا اسکریپت</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">صفحات احتمالاً سریع‌تر بارگیری می‌شوند، اما ممکن است به طرز غیر متنظره عمل کنند</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">تبدیل %1$s به مرورگر پیش‌فرض</string>
+
+ <string name="preference_category_mozilla">موزیلا</string>
+ <string name="preference_mozilla_telemetry2">ارسال اطلاعات استفاده</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">اطلاعات بیشتر</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">موزیلا تلاش می‌کند تنها اطلاعاتی که برای بهینه‌سازی %1$s برای همه به آنها نیاز دارد را جمع‌آوری کند.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">نکات حریم‌خصوصی</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">درباره %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">موتورهای جست‌وجو نصب شده</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">انتخاب موتور جست‌وجو</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">بازآوری موتورهای جست‌وجو پیش‌فرض</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ افزودن یک موتور جستجوی دیگر</string>
+ <string name="preference_search_remove_title">حذف موتورهای جست‌وجو</string>
+ <string name="preference_search_remove">حذف</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">افزودن موتور جست‌وجوی دیگر</string>
+
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">گزینش موتور مورد نظر شما:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">اضافه کردن موتور جست‌وجو</string>
+
+ <string name="search_add_manually_name_hint">نام موتور جست‌وجو</string>
+ <string name="search_add_manually_string">رشتهٔ جست‌وجو جهت استفاده</string>
+ <string name="search_add_manually_save">ذخیره</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">مثال: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">موتور جست‌وجو جدید اضافه شد.</string>
+
+ <string name="search_add_error_empty_name">نام موتور جست‌وجو را وارد کنید</string>
+ <string name="search_add_error_duplicate_name">پیش از این یک موتور جستجوی نصب شده از این نام استفاده می‌کند.</string>
+
+ <string name="search_add_error_empty_search">رشتهٔ جست‌وجو را وارد کنید</string>
+
+ <string name="search_add_error_format">بررسی کنید که رشته جست‌وجو با شکل و قالب نمونهٔ ارائه شده مطابقت دارد</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">پاک کردن وروردی</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">رد کردن</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">حذف تاریخچه مرور</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">زبانه‌های باز: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">اتصال امن</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">در حال بارگیری</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">وب‌سایت بارگیری شد</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">گزینه‌های بیشتر</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">دکمه‌ی گزینه‌های بیشتر</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">حرکت به جلو</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">بارگیری مجدد سایت</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">بازگشت به عقب</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">توقف بارگیری وب‌سایت</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">بازگشت به برنامهٔ قبل</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">تعداد دنبال کننده‌های مسدود شده</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">مسدود کردن ردیاب‌ها</string>
+
+ <string name="your_rights">حقوق شما</string>
+
+ <string name="external_app_prompt_title">باز کردن پیوند در برنامه‌ای دیگر</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">می‌توانید از %1$s خارج شوید تا پیوند را در %2$s باز کنید.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">برنامه‌ای برای باز کردن پیوند پیدا کنید</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">هیچکدام از برنامه‌های روی دستگاه شما امکان باز کردن این پیوند را ندارند. می‌توانید از %1$s خارج شوید تا در %2$s برای برنامه‌ای که بتواند اینکار را انجام دهد جست‌وجو کنید.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">از مرور ناشناس خارج می‌شوید؟</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s پایان‌یافته است</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">باز کردن</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">کارگزار پیدا نشد</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">بستن</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">به %1$s خوش‌ آمدید</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">سریع. خصوصی. بدون حواس پرتی.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">شروع کنید</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s مانند سایر مرورگرها نیست</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">برای حفظ حریم خصوصی بیشتر، وقتی برنامه را می بندید، سابقه شما را پاک می کنیم.</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">قدرت حریم‌شخصی خود را افزایش دهید</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">مرور خصوصی را به سطحی بالاتر ببرید. تبلیغات و دیگر محتواهایی را مسدود کنید که می‌توانند شما را در سراسر سایت‌ها ردیابی و زمان‌های بارگذاری صفحه را خراب کنند.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">جستجوی شما، به روش شما</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">به دنبال چیز متفاوتی هستید؟ موتور جستجوی پیش‌فرض دیگری را در تنظیمات انتخاب کنید.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">میان‌برها را به صفحه خانگی خود اضافه کنید</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">در %1$s به سرعت به سایت‌های محبوب خود برگردید. فقط «افزودن به صفحه خانگی» را از منوی %1$s انتخاب کنید.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">حفظ حریم خصوصی را به یک عادت تبدیل کنید</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">%1$s را به عنوان مرورگر پیش‌فرض خود انتخاب کنید و وقتی از اپ‌های دیگر صفحه‌های وب را باز می‌کنید از مزایای مرور خصوصی بهره‌مند شوید.</string>
+
+ <string name="firstrun_close_button">باشه، گرفتم!</string>
+ <string name="firstrun_skip_button">رد کردن</string>
+ <string name="firstrun_next_button">بعدی</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">افزودن</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">بله</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">انصراف</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">خیر</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">میان‌بر بدون محافظت پیشرفته در برابر ردیابی گشوده خواهد شد</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">نشستِ مرور ناشناس</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">اعلان‌ها امکان پاک کردن اطلاعات نشستِ %1$s را با یک ضربه به شما می‌دهند. لازم نیست که برنامه را باز کنید یا ببینید که چه چیزی در مرورگر در حال اجراست.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">پاک کردن تاریخچهٔ مرور</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">دریافت فایرفاکس</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s نرم‌افزاری آزاد و متن‌باز است که توسط موزیلا و سایر مشارکت کنندگان ساخته شده است.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s تحت شرایط <a href="%2$s">پروانه عمومی موزیلا</a> و سایر مجوزهای متن‌ باز در اختیار شما قرار می‌گیرد.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[شما از حقی در خصوص علائم تجاری بنیاد موزیلا و یا هر شخص ثالثی، از جمله نام یا نشان موزیلا، فایرفاکس یا %1$s برخوردار نیستید. اطلاعات بیشتر در <a href="%2$s"> اینجا</a> قابل دسترسی است.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[کد منبع بیشتری برای %1$sتحت تعداد دیگری از <a href="%2$s">پروانه‌های</a> آزاد و متن‌باز در دسترس است.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s همچنین از فهرست‌های مسدودی فراهم شده توسط Disconnect استفاده می‌کند. به عنوان کارهای جدا و مستقل تحت <a href="%2$s">نگارش 3 پروانه جامع همگانی گنو</a> و <a href="%3$s">اینجا</a> در دسترس است.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">نام کاربری</string>
+ <string name="gv_prompt_password_hint">کلمه عبور</string>
+ <string name="gv_prompt_clear">پاک کردن</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">اتصال امن</string>
+ <string name="security_popup_insecure_connection">اتصال ناامن</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">تایید شده توسط:%1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">امنیت پایگاه اینترنتی</string>
+ <string name="preference_autocomplete_duplicate_url_error">نشانی قبلاً وجود دارد</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">یافتن در صفحه</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">پیدا کردن در صفحه</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d از %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">پیدا کردن نتیجه بعدی</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">پیدا کردن نتیجه قبلی</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">رد کردن پیدا کردن در این صفحه</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">درخواست نسخه رومیزی پایگاه</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">نسخه‌ی میزکار پایگاه اینترنتی</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">برداشتURL</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">ابزارهای توسعه دهنده</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">باز کردن پیوندها در برنامه‌ها</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">پیشرفته</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">مطالعات</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">فایرفاکس ممکن است هر از گاهی افزونه‌ای تحقیقی نصب و اجرا کند.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">بیشتر بدانید</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">برنامه برای اعمال تغییرات بسته می‌شود</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">حذف</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">فعال</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">تکمیل شد</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">اشکال زدایی از طریق USB/Wi-Fi</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">باز کردن پیوند در یک نشست تازه</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">نشانه اثرانگشت</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">اثرانگشت شناسایی نشد. مجددا تلاش کنید.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">انگشت خیلی سریع حرکت کرد. مجدد تلاش کنید.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">پیشنهادهای جست‌وجو نمایش داده شوند؟</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">برای دریافت پیشنهادات، %1$s نیاز دارد تا چیزی که در نوار آدرس می‌نویسید را به موتور جست‌وجو ارسال کند.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">خیر</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">بله</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">تعدادی از موتورهای ‌جست‌وجو امکان نمایش پیشنهادات را ندارند.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">رد کردن</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">سایت رفتار غیرمنتظره‌ای دارد؟\n محافظت از دنبال کردن را خاموش کنید</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[با اشاره یک انگشت به سایت های پربازدید خود دسترسی داشته باشید%1$s فهرست> اضافه کردن به صفحه خانگی]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">بازکردن هر پیوندی در %1$s\n تنظیم%1$s به عنوان مرورگر پیش فرض</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">پرکردن خودکارURLs برای سایت های پربازدید شما\n نگاه داشتن بیشتر انگشت بر روی هر URL در نوار آدرس برای انجام این کار</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">بازکردن یک پیوند در زبانه جدید\n نگاه داشتن بیشتر انگشت برای باز کردن پیوند در صفحه</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">خاموش کردن نکات راهنما بر روی صفحه آغازین</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">زبانه‌ي جدیدی باز شده است</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">تعویض</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">تعویض بلافاصله پیوند در زبانه‌های جدید</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">مسدود سازی خطرات بالقوه و سایت‌های فریبنده</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">مسدود کردن گزارش های فریبنده و حملات سایت‌ها،‌ بدافزارهای سایت‌ها و نرم افزارهای ناخواسته سایت‌ها.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">حالت فقط HTTPS</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">استثناعات</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">شما مسدود سازی محتوا برای این سایت را غیرفعال کرده‌اید.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">حذف</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">حذف تمام سایت‌ها</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">مسدود کردن کوکی‌ها</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">آیا می‌خواهید کوکی‌ها را مسدود کنید؟</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">زبانه خراب شد</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">متاسفیم. با این زبانه مشکل داریم.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">به عنوان یک مرورگر خصوصی نمی توانیم این زبانه را ذخیره و بازیابی کنیم.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">بستن زبانه</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">ارسال گزارش خرابی ها به موزیلا</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">ردیاب‌های مسدود شده از %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">محتوا</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">تبلیغات</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">اجتماعی</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">تجزیه و تحلیل</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">محافظت پیشرفته در برابر ردیابی</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">محافظت‌ها برای این سایت خاموش است</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">محافظت‌ها برای این سایت روشن است</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">اتّصال امن است</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">اتّصال امن نیست</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">ردیاب‌ها و اسکریپت‌ها برای مسدود کردن</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">بازگشت</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">حذف</string>
+
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">تغییر نام</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">وقتی شما تاریخچه %1$s را پاک می‌کنید، تصاویر ذخیره یا هم‌رسانی شده &lt;b&gt;پاک نخواهند شد&lt;/b&gt;</string>
+
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">تم</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">روشن</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">تاریک</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">تنظیم شده توسط ذخیره کننده باتری</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">پیروی از تم دستگاه</string>
+
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">بستن زبانه</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-fi/strings.xml b/mobile/android/focus-android/app/src/main/res/values-fi/strings.xml
new file mode 100644
index 0000000000..34399986dd
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-fi/strings.xml
@@ -0,0 +1,1119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Peruuta</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Tallenna</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Kirjoita osoite tai hakusana</string>
+
+ <string name="teaser">Automaattisesti yksityistä selaamista.\nSelaa. Tyhjennä. Toista.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Selaushistoria tyhjennetty.</string>
+ <string name="feedback_erase2">Selaushistoria tyhjennettiin</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Välilehden selaushistoria on poistettu.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Hae %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Jaa…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Ilmoita sivuston ongelmasta</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Avaa sovelluksella %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Avaa sovelluksella…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Lisää linkki aloitusnäyttöön</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Lisää pikavalintoihin</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Poista pikavalinnoista</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Asetukset</string>
+ <string name="menu_about">Tietoja</string>
+ <string name="menu_help">Ohje</string>
+ <string name="menu_rights">Oikeutesi</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Seuraimia estetty</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Tämän poistaminen käytöstä voi korjata joitakin sivuston ongelmia</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Sisällön estäminen</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Poista käytöstä korjataksesi joitain sivustoja</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Toiminnon tarjoaa %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Jaa palvelulla</string>
+
+ <string name="notification_erase_title_android_14">Poistetaanko selaushistoria?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Napauta tai tyhjennä tämä ilmoitus tyhjentääksesi selaushistoriasi turvallisesti.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Napauta tai pyyhkäise tämä ilmoitus tyhjentääksesi selaushistoriasi turvallisesti.</string>
+
+ <string name="notification_erase_text">Tyhjennä selaushistoria</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Avaa</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Tyhjennä ja avaa</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Tyhjennä</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Tyhjennä selaushistoria</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Tyhjennä ja avaa</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Tyhjennä ja avaa %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Hae Focusissa</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Hae Klarissa</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Hae Focus Betassa</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Hae Focus Nightlyssa</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s asettaa sinut ohjaimiin.</p>
+<p>Käytä sitä yksityiseen selaamiseen:
+ <ul>
+ <li>Hae ja selaa suoraan sovelluksessa</li>
+ <li>Estä seuranta (tai muokkaa asetuksia salliaksesi seuraimet)</li>
+ <li>Poista evästeet ja haku- sekä selaushistoria</li>
+ </ul>
+</p>
+<p>%1$s on Mozillan kehittämä. Tehtävämme on edesauttaa tervettä, avointa Internetiä<br/>
+<a href="%2$s">Lue lisää</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Tietosuoja ja turvallisuus</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Seuranta, evästeet, kerätyt tiedot</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Aseta oletus, automaattinen täydennys</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Tietoja: %1$s, ohje</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Tehostettu seurannan suojaus</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Verkkosisältö</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Sovellusten vaihto</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Yleiset</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Oletusselain, kieli</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Tietojen kerääminen &amp; käyttö</string>
+
+ <string name="preference_category_search">Haku</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Nouda hakuehdotuksia</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s lähettää osoiteriville kirjoittamasi tiedot hakukoneelle</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Oletus</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Hakukone</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Päällä</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Pois päältä</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Osoitteen automaattinen täydennys</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Ykkössivustoille</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Ota käyttöön, jotta %s voi täydentää automaattisesti yli 450 suosittua osoitetta osoitepalkkiin.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Lisäämillesi sivustoille</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Ota käyttöön, jotta %s voi täydentää automaattisesti suosikkiosoitteesi.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Hallitse sivustoja</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Hallitse sivustoja</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Lisää mukautettu osoite</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Automaattisen täydennyksen lista:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Lisää osoite</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Lisää mukautettu osoite</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Lisää mukautettu osoite</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Lisää linkki automaattisesti täydennettäväksi</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Evästeet ja sivustotiedot</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Kerätyt tiedot</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Poista mukautettu osoite</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Lue lisää</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Lisää ja hallitse mukautettuja osoitteita.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Lisättävä osoite</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Liitä tai kirjoita osoite</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Esimerkki: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Esimerkki: esimerkki.fi</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Uusi mukautettu osoite lisätty.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Poista</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Poista</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Tarkista kirjoittamasi osoite.</string>
+
+ <string name="preference_language">Kieli</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Järjestelmän oletus</string>
+
+ <string name="preference_category_privacy">Tietosuoja</string>
+ <string name="preference_privacy_block_ads">Estä mainosseuraimet</string>
+ <string name="preference_privacy_block_ads_summary">Jotkin mainokset seuraavat sivustokäyntejä, vaikka et painaisi mainoksia</string>
+ <string name="preference_privacy_block_analytics">Estä analytiikkaseuraimet</string>
+ <string name="preference_privacy_block_analytics_summary">Käytetään keräämään, analysoimaan ja mittaamaan toimintoja, kuten napautuksia ja vierityksiä</string>
+ <string name="preference_privacy_block_social">Estä sosiaalisen median seuraimet</string>
+ <string name="preference_privacy_block_social_summary">Upotettu sivustoihin vierailujen seuraamiseksi ja toimintojen, kuten jakopainikkeiden, näyttämiseksi</string>
+ <string name="preference_privacy_block_content">Estä muut sisältöseuraimet</string>
+ <string name="preference_privacy_block_content_summary2">Tämän käyttöönotto saattaa johtaa joidenkin sivustojen odottamattomaan käytökseen</string>
+ <string name="preference_privacy_category_cookies">Estä kaikki evästeet</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ei kiitos</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Estä vain kolmannen osapuolen seurantaevästeet</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Estä vain kolmannen osapuolen evästeet</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Estä sivustorajat ylittävät evästeet</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Kyllä kiitos</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Avaa sovellus sormenjäljellä</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Avaa lukitus sormenjäljellä, jos olet lisännyt pikakuvakkeita tai kun verkkosivusto on jo auki %s -selaimessa.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Häivetila</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Piilota verkkosivut vaihdettaessa sovellusta ja estä kuvakaappausten ottaminen.</string>
+
+ <string name="preference_category_security">Turvallisuus</string>
+
+ <string name="preference_category_performance">Suorituskyky</string>
+ <string name="preference_performance_block_webfonts">Estä verkkosivun kirjasinlajit</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Saattaa aiheuttaa puuttuvia kuvakkeita tai kuvia</string>
+
+ <string name="preference_performance_block_javascript">Estä JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Sivut voivat latautua nopeammin, mutta voivat käyttäytyä odottamattomasti</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Aseta %1$s oletusselaimeksi</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Lähetä käyttötilastoja</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Lisätietoja</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla pyrkii keräämään vain tietoja, jotka ovat tarpeellisia %1$sen jakelun ja kehittämisen kannalta.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Tietosuojakäytäntö</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Lisenssitiedot</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Käyttämämme kirjastot</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Avoimen lähdekoodin kirjastot</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Tietoja: %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Asennetut hakukoneet</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Valitse hakukone</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Palauta oletushakukoneet</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Lisää toinen hakukone</string>
+ <string name="preference_search_remove_title">Poista hakukone</string>
+ <string name="preference_search_remove">Poista</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Lisää toinen hakukone</string>
+
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Valitse ensisijainen hakukone:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Lisää hakukone</string>
+
+ <string name="search_add_manually_name_hint">Hakukoneen nimi</string>
+ <string name="search_add_manually_string">Käytettävä hakulause</string>
+ <string name="search_add_manually_save">Tallenna</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Esimerkiksi: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Lisättiin uusi hakukone.</string>
+
+ <string name="search_add_error_empty_name">Anna hakukoneen nimi</string>
+ <string name="search_add_error_duplicate_name">Samanniminen hakukone on jo asennettu.</string>
+
+ <string name="search_add_error_empty_search">Kirjoita hakusana</string>
+
+ <string name="search_add_error_format">Tarkista että hakusana vastaa esimerkin muotoa</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Tyhjennä teksti</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Hylkää</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Tyhjennä selaushistoria</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Välilehtiä avoinna: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Suojattu yhteys</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Ladataan</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Verkkosivu ladattu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Lisää asetuksia</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Lisää asetuksia -painike</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Siirry eteenpäin</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Lataa verkkosivu uudelleen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Siirry taaksepäin</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Keskeytä verkkosivun lataaminen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Palaa edelliseen sovellukseen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Estettyjen seuraimien määrä</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Estä seuraimet</string>
+
+ <string name="your_rights">Oikeutesi</string>
+
+ <string name="external_app_prompt_title">Avaa linkki toisessa sovelluksessa</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Voit jättää %1$sin avataksesi tämän linkin sovelluksella %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Etsi sovellus, joka voi avata linkin</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Yksikään laitteesi sovelluksista ei voi avata tätä linkkiä. Voit jättää %1$sin etsiäksesi oikeaa sovellusta %2$ssta.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Poistu yksityisestä selauksesta?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s ladattiin</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Avaa</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Lisätty pikavalintoihin!</string>
+
+ <string name="error_hostLookup_title">Palvelinta ei löytynyt</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Sulje</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Tervetuloa %1$siin</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Nopea. Yksityinen. Ei häiriötekijöitä.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Aloitetaan</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s ei ole kuten muut selaimet</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Tyhjennämme historian yksityisyyden lisäämiseksi, kun suljet sovelluksen.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Aseta %1$s oletukseksi suojataksesi tietosi jokaisella avaamallasi linkillä.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Aseta oletusselaimeksi</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Ohita</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Tehosta yksityisyyttäsi</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Vie yksityinen selaus uudelle tasolle. Estä mainoksia ja muuta sisältöä, jotka voivat seurata sinua eri sivustoilla ja hidastaa sivujen latausaikoja.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Hakusi haluamallasi tavalla</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Haetko jotain erilaista? Valitse asetuksista toinen oletushakukone.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Lisää linkki aloitusnäyttöön</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Avaa suosikkisivusi nopeasti %1$sissa. Valitse \&quot;Lisää linkki aloitusnäyttöön\&quot; %1$s -valikosta.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Tee yksityisyydestä verkossa tapa</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Aseta %1$s oletusselaimeksesi ja hyödy yksityisestä selaamisesta kun avaat verkkosivuja muista sovelluksista.</string>
+
+ <string name="firstrun_close_button">OK, selvä!</string>
+ <string name="firstrun_skip_button">Ohita</string>
+ <string name="firstrun_next_button">Seuraava</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Lisää</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">KYLLÄ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Peruuta</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">EI</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Pikakuvake avautuu ilman tehostettua seurannan suojausta</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Yksityinen selausistunto</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Ilmoitusten avulla voit nollata %1$s istuntosi hipaisulla. Sinun ei tarvitse avata sovellusta nähdäksesi tiedot selaimestasi.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Tyhjennä selaushistoria</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Lataa Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s on ilmainen, avoimen lähdekoodin ohjelmisto Mozillalta ja muilta avustajilta.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s on käytettävissä <a href="%2$s">Mozilla Public License</a>n ja muiden avoimen lähdekoodin lisenssien ehdoin.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Sinulle ei anneta minkäänlaisia tavaramerkki- tai lisenssioikeuksia Mozilla-säätiön tai muun tahon tavaramerkkeihin, joihin lukeutuu Mozillan, Firefoxin tai %1$sin nimet tai logot. Voit lukea tarkempia lisätietoja <a href="%2$s">täältä</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Muita osia %1$sin lähdekoodista on saatavilla erinäisten vapaiden ja avointen lähdekoodin <a href="%2$s">lisenssien</a> ehtojen mukaisesti.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s käyttää myös Disconnect, Inc.:n toimittamia estolistoja, jotka ovat erillisiä ja itsenäisiä <a href="%2$s">GNU General Public License v3</a> -lisenssin mukaisia töitä, ja ne ovat saatavilla <a href="%3$s">täältä</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Käyttäjätunnus</string>
+ <string name="gv_prompt_password_hint">Salasana</string>
+ <string name="gv_prompt_clear">Tyhjennä</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Suojattu yhteys</string>
+ <string name="security_popup_insecure_connection">Suojaamaton yhteys</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Todentaja: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Sivuston tietoturva</string>
+ <string name="preference_autocomplete_duplicate_url_error">Osoite on jo olemassa</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Etsi sivulta</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Etsi sivulta</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d/%2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Etsi seuraava tulos</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Etsi edellinen tulos</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Sulje sivulta etsiminen</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Sivuston työpöytäversio</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Työpöytäsivusto</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Osoite kopioitu</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Kehittäjätyökalut</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Avaa linkit sovelluksissa</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Lisäasetukset</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Sivustojen käyttöoikeudet</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Evästeilmoitusten vähennys</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Päällä</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Pois</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Evästeilmoitusten vähennys</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Näe vähemmän banneri-ilmoituksia hylkäämällä evästepyynnöt automaattisesti, kun mahdollista.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Evästeilmoitusten vähennys</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">KÄYTÖSSÄ tällä sivustolla</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Sivusto ei ole tuettu tällä hetkellä</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">EI KÄYTÖSSÄ tällä sivustolla</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Evästeilmoitusten vähennys</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">EI KÄYTÖSSÄ tällä sivustolla</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">KÄYTÖSSÄ tällä sivustolla</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Haluatko ottaa evästeilmoitusten vähennystoiminnon käyttöön sivustolla %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Haluatko poistaa evästeilmoitusten vähennystoiminnon käytöstä sivustolla %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s poistaa tämän sivuston evästeet ja päivittää sivun. Kaikkien evästeiden poistaminen saattaa kirjata sinut ulos tai tyhjentää ostoskorit.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s voi yrittää hylätä automaattisesti evästepyynnöt.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Evästeilmoitusten vähennys ei tällä hetkellä tue tätä sivustoa. Haluatko pyytää tiimiämme tarkistamaan tämän sivuston ja lisäämään tuen tulevaisuudessa?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Peruuta</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Pyydä tukea</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Pyyntö tukea tätä sivustoa lähetetty.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Pyyntö tukea tätä sivustoa lähetetty.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s yrittää hylätä evästepyynnöt ja siten piilottaa ärsyttävät evästeilmoitukset.\n\nHallinnoi evästeilmoitusasetuksia %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">asetuksissa</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automaattinen toisto</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Salliaksesi sen:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Mene Androidin asetuksiin</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Napauta <b>Käyttöoikeudet</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Mene asetuksiin</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Aseta <b>%1$s</b> PÄÄLLÄ-asentoon]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofoni</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Sijainti</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Ilmoitus</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-suojattu sisältö</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Kysy lupaa</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Estetty</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Sallittu</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Estetty Androidin toimesta</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Salli ääni ja video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Estä vain ääni</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Suositeltu</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Estä ääni ja video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Tutkimukset</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox saattaa asentaa ja suorittaa tutkimuksia silloin tällöin.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Lue lisää</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Tämä sovellus sulkeutuu, jotta muutokset tulevat käyttöön</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Poista</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Käynnissä</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Valmistuneet</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Etävianjäljitys USB:n/Wi-Fi:n välityksellä</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Avaa</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Vahvista sormenjäljen käyttäminen</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Voit käyttää sormenjälkeäsi jatkaaksesi nykyistä sovellusistuntoa.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Avaa linkki uudessa istunnossa</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Sormenjäljen kuvake</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Sormenjälkeä ei tunnistettu. Yritä uudelleen.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Sormi liikkui liian nopeasti. Yritä uudelleen.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Näytetäänkö hakuehdotukset?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Hakuehdotusten saamiseksi %1$sin on lähetettävä osoitekenttään kirjoittamasi teksti hakukoneelle.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ei</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Kyllä</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Jotkin hakukoneet eivät voi näyttää ehdotuksia.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Hylkää</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Käyttäytyykö sivusto odottamattomasti?\n Kokeile kytkeä seurannan suojaus pois päältä</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Pääsy yhdellä napautuksella sivustoille, joilla useimmiten vierailet%1$s Valikko > Lisää linkki aloitusnäyttöön]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Avaa jokainen linkki selaimella %1$s\n Aseta %1$s oletusselaimeksi</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Täydennä osoitteet sivustoille, joita käytät eniten\n Paina pitkään osoitekentässä olevia osoitteita</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Avaa linkki uuteen välilehteen\n Paina pitkään mitä tahansa linkkiä sivulla</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Älä näytä vinkkejä aloitusnäytössä</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Uusi välilehti avattu</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Vaihda</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Siirrytään koko näytön tilaan</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Siirry välilehteen heti linkin avaamisen jälkeen</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Estä mahdollisesti vaaralliset ja petolliset sivustot</string>
+
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Estä ilmoitetut petolliset ja hyökkäävät sivustot, haittaohjelmasivustot ja ei-toivottuja ohjelmia tarjoavat sivustot.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Vain HTTPS -tila</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Yrittää muodostaa automaattisesti yhteyden sivustoihin käyttämällä salattua HTTPS-protokollaa turvallisuuden parantamiseksi.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Poikkeukset</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Olet poistanut sisällön eston käytöstä näiden sivustojen kohdalla.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Poista</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Poista kaikki sivustot</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Estä evästeet</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Haluatko estää evästeet?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Välilehti kaatui</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Valitettavasti tämän välilehden kanssa on ongelmia.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Koska kyseessä on yksityinen selain, emme tallenna välilehtiä, eikä tätä välilehteä voi siksi palauttaa.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Sulje välilehti</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Lähetä kaatumisraportti Mozillalle</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Estetyt seuraimet %s lähtien</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Sisältö</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Mainonta</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Sosiaalinen</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analytiikka</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Tehostettu seurannan suojaus</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Suojaukset ovat POIS PÄÄLTÄ tällä sivustolla</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Suojaukset ovat PÄÄLLÄ tällä sivustolla</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Yhteys on suojattu</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Yhteys ei ole suojattu</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Estettävät seuraimet ja komentosarjat</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Takaisin</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Poista</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Nimeä uudelleen</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Nimeä uudelleen</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Pikakuvakkeen nimi</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Tallennettuja ja jaettuja kuvia &lt;b&gt;ei poisteta&lt;/b&gt; kun tyhjennät %1$sin historian</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Teema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Vaalea</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Tumma</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Asetettu virransäästön toimesta</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Seuraa laitteen teemaa</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Tämä sivusto ei tue HTTPS:ää</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s yrittää käyttää HTTPS aina kun mahdollista turvallisuuden lisäämiseksi.
+ <a href="%2$s">Lue lisää</a> <br/><br/>
+ Muuta tätä asetusta kohdassa Asetukset > Tietosuoja ja turvallisuus > Turvallisuus.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Yhteys ei ole suojattu</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Ongelma voi johtua palvelimen asetuksista tai jonkin toisen palvelimen vilpillisestä yrityksestä tekeytyä palvelimeksi. <br/><br/>
+ Jos yhteyden muodostaminen palvelimeen on aiemmin onnistunut, vika voi olla väliaikainen.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Jokin toinen osapuoli saattaa tekeytyä sivustoksi, jatkaminen voi olla riskialtista.</label>
+ <br><br>
+ <label>%1$s ei luota sivustoon <b>%2$s</b>, koska sen varmenteen myöntäjä on tuntematon, varmenne on itse allekirjoitettu tai palvelin ei lähetä oikeita välivarmenteita.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Sulje välilehti</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Kiinni jäi! Tämän sivuston vakoilu sinua kohtaan on lopetettu. Napauta kilpeä milloin tahansa nähdäksesi, mitä estämme.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Sulje ponnahdusikkuna</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Olet suojattu!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Nämä oletusasetukset tarjoavat vahvan suojan. Asetuksia on helppo muokata vastaamaan erityisiä tarpeitasi.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Hylkää</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Napauta tätä poistaaksesi kaiken – historian, evästeet, kaiken – ja aloita puhtaalta pöydältä uudella välilehdellä.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Sulje</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Hakuwidget</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Selaushistoria tyhjennetty! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Aloita yksityinen selausistuntosi, niin estämme seuraimet ja muut huonot asiat.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Annamme sinulle rauhan yksityiseen selailuun, mutta halutessasi saat nopeamman lähdön ensi kerralla lisäämällä %1$s-widgetin aloitusnäytöllesi.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Lisää widget aloitusnäyttöön</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget lisätty aloitusnäyttöön</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-fr/strings.xml b/mobile/android/focus-android/app/src/main/res/values-fr/strings.xml
new file mode 100644
index 0000000000..5472048ce4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-fr/strings.xml
@@ -0,0 +1,1120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Annuler</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Enregistrer</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Recherche ou adresse</string>
+
+ <string name="teaser">Navigation privée automatique.\nNaviguez. Effacez. Recommencez.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Votre historique de navigation a été effacé.</string>
+
+ <string name="feedback_erase2">Historique de navigation effacé</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">L’historique de navigation de l’onglet a été effacé.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Rechercher %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Partager…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Signaler un problème sur ce site</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Ouvrir avec %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Ouvrir avec…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Ajouter à l’écran d’accueil</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Ajouter aux raccourcis</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Supprimer des raccourcis</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Paramètres</string>
+ <string name="menu_about">À propos</string>
+ <string name="menu_help">Aide</string>
+ <string name="menu_rights">Droits de l’utilisateur</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Traqueurs bloqués</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Désactiver cette option peut résoudre certains problèmes du site</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blocage de contenu</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Désactiver pour réparer certains sites</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Fonctionne grâce à %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Partager avec</string>
+
+ <string name="notification_erase_title_android_14">Effacer l’historique de navigation ?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Appuyez sur cette notification ou supprimez-la pour effacer votre historique de navigation de façon sécurisée.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Appuyez sur cette notification ou faites-la glisser pour effacer votre historique de navigation de façon sécurisée.</string>
+
+ <string name="notification_erase_text">Effacer l’historique de navigation</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Ouvrir</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Effacer et ouvrir</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Effacer</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Effacer l’historique de navigation</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Effacer et ouvrir</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Effacer et ouvrir %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Rechercher dans Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Rechercher dans Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Rechercher dans Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Rechercher dans Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s vous aide à rester aux commandes.</p>
+<p>Utilisez-le comme un navigateur privé :
+<ul>
+<li>Effectuez des recherches et naviguez depuis l’application</li>
+<li>Bloquez les traqueurs (ou modifiez les paramètres pour les autoriser)</li>
+<li>Effacez les cookies, ainsi que les historiques de navigation et de recherche</li>
+</ul>
+</p>
+<p>%1$s est réalisé par Mozilla. Notre mission est de défendre l’ouverture et la bonne santé d’Internet.<br/>
+<a href="%2$s">En savoir plus</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Vie privée et sécurité</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Pistage, cookies, données collectées</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Moteur par défaut, saisie semi-automatique</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">À propos de %1$s, aide</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Protection renforcée contre le pistage</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Contenu web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Navigation entre les applications</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Général</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Navigateur par défaut, langue</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Collecte de données et utilisation</string>
+
+ <string name="preference_category_search">Recherche</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Obtenir des suggestions de recherche</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s enverra ce que vous saisissez dans votre barre d’adresse à votre moteur de recherche</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Par défaut</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Moteur de recherche</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Activée</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Désactivée</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Saisie semi-automatique des adresses</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Pour les sites les plus populaires</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Activer pour que %s complète automatiquement plus de 450 adresses populaires dans la barre d’adresse.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Pour les sites que vous ajoutez</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Activer pour que %s complète automatiquement vos adresses web favorites.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Gérer les sites</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Gérer les sites</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Ajouter une adresse personnalisée</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Votre liste de saisie semi-automatique :</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Ajouter l’adresse</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Ajouter une adresse personnalisée</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Ajouter une adresse personnalisée</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Ajouter un lien à la saisie semi-automatique</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies et données de sites</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Données collectées</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Supprimer des adresses personnalisées</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">En savoir plus</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Ajouter et gérer des adresses personnalisées pour la saisie semi-automatique.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Adresse web à ajouter</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Coller ou saisir une adresse web</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Exemple : mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Exemple : example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Nouvelle adresse personnalisée ajoutée.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Supprimer</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Supprimer</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Veuillez vérifier l’adresse saisie.</string>
+
+ <string name="preference_language">Langue</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Valeur par défaut du système</string>
+
+ <string name="preference_category_privacy">Vie privée</string>
+ <string name="preference_privacy_block_ads">Bloquer les traqueurs publicitaires</string>
+ <string name="preference_privacy_block_ads_summary">Certaines publicités pistent vos visites sur les sites, même sans cliquer sur les publicités</string>
+ <string name="preference_privacy_block_analytics">Bloquer les traqueurs de statistiques</string>
+ <string name="preference_privacy_block_analytics_summary">Ils servent à collecter, analyser et mesurer les actions telles qu’appuyer sur l’écran ou faire défiler la page</string>
+ <string name="preference_privacy_block_social">Bloquer les traqueurs de réseaux sociaux</string>
+ <string name="preference_privacy_block_social_summary">Ils sont insérés sur certains sites pour pister vos visites et afficher des fonctionnalités comme des boutons de partage</string>
+ <string name="preference_privacy_block_content">Bloquer les autres traqueurs de contenu</string>
+ <string name="preference_privacy_block_content_summary2">Activer cette option peut provoquer des problèmes sur certaines pages</string>
+ <string name="preference_privacy_category_cookies">Interdire les cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Non</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Bloquer uniquement les cookies tiers utilisés pour le pistage</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Bloquer les cookies tiers uniquement</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Bloquer les cookies intersites</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Oui</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Utiliser une empreinte digitale pour déverrouiller l’application</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Déverrouillez à l’aide de l’empreinte digitale si vous avez ajouté des raccourcis ou lorsqu’un site web est déjà ouvert dans %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Mode furtif</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Masquer les pages web lorsque vous changez d’application et empêcher les captures d’écran.</string>
+
+ <string name="preference_category_security">Sécurité</string>
+
+ <string name="preference_category_performance">Performances</string>
+ <string name="preference_performance_block_webfonts">Bloquer les polices web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Peut empêcher certaines icônes ou images de s’afficher</string>
+
+ <string name="preference_performance_block_javascript">Bloquer JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Les pages peuvent se charger plus rapidement, mais peuvent aussi se comporter de manière inattendue</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Définir %1$s comme navigateur par défaut</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Envoyer des données d’utilisation</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">En savoir plus</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla veille à collecter uniquement les données nécessaires afin d’offrir et d’améliorer %1$s pour tout le monde.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Politique de confidentialité</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Informations de licence</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliothèques utilisées</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Bibliothèques open source</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">À propos de %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Moteurs de recherche installés</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Choisir le moteur de recherche</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Restaurer les moteurs par défaut</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Ajouter un autre moteur de recherche</string>
+ <string name="preference_search_remove_title">Supprimer des moteurs de recherche</string>
+ <string name="preference_search_remove">Supprimer</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Ajouter un autre moteur de recherche</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Sélectionnez votre moteur de recherche favori :</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Ajouter un moteur de recherche</string>
+
+ <string name="search_add_manually_name_hint">Nom du moteur de recherche</string>
+ <string name="search_add_manually_string">Chaîne de recherche à utiliser</string>
+ <string name="search_add_manually_save">Enregistrer</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Exemple : example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Nouveau moteur de recherche ajouté.</string>
+
+ <string name="search_add_error_empty_name">Saisir le nom du moteur de recherche</string>
+ <string name="search_add_error_duplicate_name">Un moteur de recherche du même nom est déjà installé.</string>
+
+ <string name="search_add_error_empty_search">Saisir une chaîne de recherche</string>
+
+ <string name="search_add_error_format">Vérifiez que la chaîne de recherche suit le format de l’exemple</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Effacer le texte saisi</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Fermer</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Effacer l’historique de navigation</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Onglets ouverts : %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Connexion sécurisée</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Chargement…</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Site web chargé</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Options supplémentaires</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Bouton pour afficher davantage d’options</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Avancer dans l’historique</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Actualiser la page web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Précédent</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Arrêter le chargement du site web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Revenir à l’application précédente</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Nombre de traqueurs bloqués</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Bloquer les traqueurs</string>
+
+ <string name="your_rights">Droits de l’utilisateur</string>
+
+ <string name="external_app_prompt_title">Ouvrir le lien dans une autre application</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Vous allez quitter %1$s pour ouvrir ce lien dans %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Trouver une application capable d’ouvrir ce lien</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Aucune des applications de votre appareil n’est capable d’ouvrir ce lien. Vous pouvez quitter %1$s pour rechercher dans %2$s une application qui en est capable.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Quitter la navigation privée ?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s terminé</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Ouvrir</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Ajouté aux raccourcis !</string>
+
+ <string name="error_hostLookup_title">Adresse introuvable</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Fermer</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Bienvenue dans %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rapide. Confidentiel. Sans distractions.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Commencer</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s n’est pas comme les autres navigateurs</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Nous effaçons l’historique quand vous fermez l’application pour plus de confidentialité.</string>
+
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Choisissez %1$s comme navigateur par défaut et protégez vos données à chaque lien que vous ouvrez.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Définir comme navigateur par défaut</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Passer</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Renforcez votre vie privée</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">La navigation privée passe au niveau supérieur. Dites adieu aux publicités et autres traqueurs qui vous espionnent et ralentissent le chargement des pages web.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Recherchez à votre manière</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Vous recherchez quelque chose de différent ? Choisissez un autre moteur de recherche par défaut dans les paramètres.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Ajoutez des raccourcis sur votre écran d’accueil</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Retournez voir vos sites préférés dans %1$s rapidement. Sélectionnez simplement « Ajouter à l’écran d’accueil » depuis le menu de %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Reprenez votre vie privée en main</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Définissez %1$s en tant que navigateur par défaut et bénéficiez d’une navigation privée dès que vous ouvrez les pages web à partir d’autres applications.</string>
+
+ <string name="firstrun_close_button">OK</string>
+ <string name="firstrun_skip_button">Ignorer</string>
+ <string name="firstrun_next_button">Suivant</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Ajouter</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">OUI</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Annuler</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NON</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Ce raccourci s’ouvrira avec la protection renforcée contre le pistage désactivée</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Session de navigation privée</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Vous pouvez effacer votre session %1$s d’un simple appui depuis les notifications. Vous n’avez pas besoin d’ouvrir l’application ni d’afficher ce qui s’exécute dans votre navigateur.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Effacer l’historique de navigation</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Télécharger Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s est un logiciel libre et ouvert réalisé par Mozilla avec l’aide d’autres contributeurs.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s est distribué suivant les modalités de la <a href="%2$s">Mozilla Public License</a> et d’autres licences open source.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Il ne vous est cédé aucun droit ou licence sur les marques déposées de la Fondation Mozilla ou de tiers, y compris sur les noms et logos de Mozilla, Firefox ou %1$s. Des informations complémentaires peuvent être consultées <a href="%2$s">ici</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Le code source complémentaire pour %1$s est disponible sous différentes <a href="%2$s">licences</a> libres et open source.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s utilise aussi des listes de blocage fournies par Disconnect Inc, en tant que créations sous la licence <a href="%2$s">GNU General Public License v3</a> et qui sont disponibles <a href="%3$s">ici</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nom d’utilisateur</string>
+ <string name="gv_prompt_password_hint">Mot de passe</string>
+ <string name="gv_prompt_clear">Effacer</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Connexion sécurisée</string>
+ <string name="security_popup_insecure_connection">Connexion non sécurisée</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Vérifié par : %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Sécurité du site</string>
+ <string name="preference_autocomplete_duplicate_url_error">L’adresse existe déjà</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Rechercher dans la page</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Rechercher dans la page</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d sur %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Trouver le résultat suivant</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Trouver le résultat précédent</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Fermer la recherche dans la page</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Voir version ordinateur</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Version ordinateur</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Adresse web copiée</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Outils de développement</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Ouvrir les liens dans des applications</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avancé</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Autorisations de site</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Réduction des bannières de cookies</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Activée</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Désactivée</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Réduction des bannières de cookies</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Voir moins de bannières en rejetant automatiquement les demandes de cookies quand c’est possible.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Réduction des bannières de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ACTIVÉE pour ce site</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Site actuellement non pris en charge</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">DÉSACTIVÉE pour ce site</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Réduction des bannières de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">DÉSACTIVÉE pour ce site</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ACTIVÉE pour ce site</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Activer la réduction des bannières de cookies pour %1$s ?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Désactiver la réduction des bannières de cookies pour %1$s ?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s effacera les cookies de ce site et actualisera la page. La suppression de tous les cookies peut vous déconnecter ou vider les paniers d’achats.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s peut essayer automatiquement de refuser les demandes de dépôt de cookies.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Ce site n’est actuellement pas pris en charge par la réduction des bannières de cookies. Souhaitez-vous demander à notre équipe de vérifier ce site et d’ajouter sa prise en charge ultérieurement ?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Annuler</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Demander sa prise en charge</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">La demande de prise en charge du site a été envoyée.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">La demande de prise en charge du site a été envoyée.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s essaie de refuser les demandes de cookies pour vous débarrasser des bannières de cookies pénibles.\n\nGérez vos préférences pour les bannières de cookies dans les %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">paramètres</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Lire automatiquement des éléments multimédia</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Pour l’autoriser :</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Accédez aux paramètres Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Appuyez sur <b>Autorisations</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Se rendre dans les paramètres</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Activez <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Appareil photo</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Microphone</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Localisation</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notifications</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Contenu protégé par des DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Demander pour autoriser</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Bloqué</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Autorisé</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Bloqué par Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Autoriser l’audio et la vidéo</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Bloquer l’audio uniquement</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Recommandé</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Bloquer l’audio et la vidéo</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Études</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox peut installer et lancer des études de temps en temps.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">En savoir plus</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">L’application se fermera pour appliquer les modifications</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Supprimer</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Études actives</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Études terminées</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Débogage distant par USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Déverrouiller</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Confirmez à l’aide de votre empreinte digitale</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Vous pouvez utiliser votre empreinte digitale pour poursuivre la session courante de l’application.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Ouvrir le lien dans une nouvelle session</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Icône d’empreinte digitale</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Empreinte digitale non reconnue. Veuillez réessayer.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Votre doigt a bougé trop rapidement. Veuillez réessayer.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Afficher les suggestions de recherche ?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Pour fournir des suggestions, %1$s doit transmettre ce que vous saisissez dans la barre d’adresse au moteur de recherche.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Non</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Oui</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Certains moteurs de recherche ne peuvent pas afficher de suggestions.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Ignorer</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Ce site ne se comporte pas comme prévu ?\nEssayer de désactiver la protection contre le pistage</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Accédez rapidement à vos sites favoris%1$s Menu > Ajouter à l’écran d’accueil]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Ouvrir tous les liens dans %1$s\n Définir %1$s comme navigateur par défaut</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Compléter automatiquement les URL des sites les plus visités\n Effectuez un appui long sur une URL dans la barre d’adresse</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Ouvrir un lien dans un nouvel onglet\n Effectuez un appui long sur un lien dans une page</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Désactiver les conseils sur l’écran de démarrage</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nouvel onglet ouvert</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Afficher</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Mode plein écran activé</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Afficher immédiatement les liens ouverts dans de nouveaux onglets</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Bloquer les sites potentiellement dangereux ou trompeurs</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Bloquer les sites malveillants et trompeurs, les sites de logiciels malveillants et indésirables signalés.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Mode HTTPS uniquement</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Essayer de se connecter automatiquement aux sites en utilisant le protocole de chiffrement HTTPS pour une sécurité accrue.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Exceptions</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Vous avez désactivé le blocage de contenu pour ces sites web.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Supprimer</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Supprimer tous les sites web</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Bloquer les cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Voulez-vous bloquer les cookies ?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">L’onglet a planté</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Nous sommes désolés, nous avons un problème avec cet onglet.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Votre navigation était privée, nous n’avons pas enregistré cet onglet et ne pouvons donc pas le restaurer.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Fermer l’onglet</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Envoyer un rapport de plantage à Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Traqueurs bloqués depuis le %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Contenu</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Publicité</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Réseaux sociaux</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Statistiques</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Protection renforcée contre le pistage</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Les protections sont désactivées pour ce site</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Les protections sont activées pour ce site</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Connexion sécurisée</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Connexion non sécurisée</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Traqueurs et scripts à bloquer</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Retour</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Supprimer</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Renommer</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Renommer</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nom du raccourci</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Les images enregistrées ou partagées &lt;b&gt;ne sont pas&lt;/b&gt; supprimées quand vous effacez l’historique de %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Thème</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Clair</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Sombre</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Défini par l’économie d’énergie de la batterie</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Suivre le thème de l’appareil</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Ce site ne prend pas en charge HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s tente d’utiliser une connexion HTTPS chaque fois que cela est possible pour plus de sécurité.
+ <a href="%2$s">En savoir plus</a> <br/><br/>
+ Modifiez ce paramètre dans Paramètres > Vie privée et sécurité > Sécurité.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Connexion non sécurisée</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[Ceci peut être dû à un problème de configuration du serveur ou à une personne essayant d’usurper l’identité du serveur.
+<br/><br/>
+Si vous vous êtes déjà connecté·e avec succès à ce serveur, l’erreur est peut-être temporaire.]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[<label>Quelqu’un pourrait essayer de se faire passer pour le site et continuer pourrait être risqué.</label>
+<br><br>
+<label>%1$s ne fait pas confiance à <b>%2$s</b> car l’émetteur de son certificat est inconnu, le certificat est auto-signé ou le serveur n’envoie pas les bons certificats intermédiaires.</label>]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Fermer l’onglet</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Mission accomplie ! Nous avons empêché ce site de vous espionner. Appuyez sur le bouclier à tout moment pour voir ce que nous avons bloqué.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Fermer la fenêtre popup</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Vous êtes protégé·e !</string>
+
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Ces paramètres par défaut offrent une protection renforcée. Mais il est facile de modifier les paramètres pour répondre à vos besoins spécifiques.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Fermer</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Appuyez ici pour tout effacer — historique, cookies, tout — et recommencer à zéro dans un nouvel onglet.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Fermer</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget de recherche</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Historique de navigation effacé ! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Démarrez votre session de navigation privée et nous bloquerons traqueurs et autres nuisances pendant votre navigation.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Nous allons vous laisser à votre navigation privée, mais démarrez plus vite les prochaines fois avec le widget %1$s sur votre écran d’accueil.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Ajouter le widget à l’écran d’accueil</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget ajouté à l’écran d’accueil</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-fur/strings.xml b/mobile/android/focus-android/app/src/main/res/values-fur/strings.xml
new file mode 100644
index 0000000000..6abc77ff22
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-fur/strings.xml
@@ -0,0 +1,1080 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Anule</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Va ben</string>
+
+ <string name="action_save">Salve</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Cîr o inserìs une direzion</string>
+
+
+ <string name="teaser">Navigazion privade automatiche.\nNavighe. Scancele. Ripet.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">La tô cronologjie di navigazion e je stade scancelade.</string>
+ <string name="feedback_erase2">Cronologjie di navigazion netade</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">La cronologjie di navigazion de schede e je stade scancelade.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Cîr %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Condivît…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Segnale probleme cun chest sît</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Vierç in %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Vierç in…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Zonte a schermade principâl</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Zonte aes scurtis</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Gjave des scurtis</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Impostazions</string>
+ <string name="menu_about">Informazions</string>
+ <string name="menu_help">Jutori</string>
+ <string name="menu_rights">I tiei dirits</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Spiis blocadis</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Disativant cheste opzion tu podaressis risolvi cualchi probleme cul sît</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Bloc dai contignûts</string>
+
+
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Disative par risolvi problemis cun cualchi sît</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Potenziât di %1$s</string>
+
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Condivît vie</string>
+
+ <string name="notification_erase_title_android_14">Scancelâ la cronologjie di navigazion?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tocje o scancele cheste notifiche par eliminâ in mût sigûr la tô cronologjie di navigazion.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tocje o fâs scori cheste notifiche par eliminâ in mût sigûr la tô cronologjie di navigazion.</string>
+
+ <string name="notification_erase_text">Scancele la cronologjie di navigazion</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Vierç</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Scancele e vierç</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Scancele</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Scancele la cronologjie di navigazion</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Scancele e vierç</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Scancele e vierç %1$s</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Cîr in Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Cîr in Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Cîr in Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Cîr in Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s ti met al comant.</p>
+<p>Doprilu come navigadôr privât:
+ <ul>
+ <li>Cîr e navighe dret de app</li>
+ <li>Bloche lis spiis (o inzorne lis impostazions par permetilis)</li>
+ <li>Scancele par eliminâ i cookies e la cronologjie des ricercjis e di navigazion</li>
+ </ul>
+</p>
+<p>%1$s al è realizât di Mozilla. La nestre mission e je chê di promovi un internet plui san e viert.<br/>
+<a href="%2$s">Plui informazions</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Riservatece e sigurece</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Sieltis par gjestî spiis, cookies e dâts</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Stabilìs predefinît, completament automatic</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Informazions su %1$s, jutori</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Protezion miorade da lis spiis</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Contignûts web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Cambi tra lis aplicazions</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Gjenerâl</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Navigadôr predefinît, lenghe</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Racuelte e utilizazion dai dâts</string>
+
+ <string name="preference_category_search">Ricercje</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Oten sugjeriments di ricercje</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s al inviarà al motôr di ricercje ce che tu scrivis te sbare de direzion</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Predefinît</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Motôr di ricercje</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Ativât</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Disativât</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Completament automatic dal URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Pai sîts principâi</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Ative par completâ in automatic plui di 450 direzions popolârs te sbare de direzion di %s.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Pai sîts che tu zontis</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Ative par fâ in mût che %s al completi in automatic lis tôs direzions preferidis.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Gjestion sîts</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Gjestìs i sîts</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Zonte direzion personalizade</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">La tô liste pal completament automatic:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Zonte URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Zonte URL personalizât</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Zonte URL personalizât</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Zonte colegament pal completament automatic</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies e dâts di sîts</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Sieltis pai dâts</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Gjave direzions personalizadis</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Plui informazions</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Zonte e gjestìs lis direzions personalizadis pal completament automatic.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Direzion di zontâ</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Tache o inserìs une direzion</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Esempli: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Esempli: esempli.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Zontade gnove direzion personalizade.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Gjave</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Gjave</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Dopli-control de direzion inseride.</string>
+
+ <string name="preference_language">Lenghe</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Predefinide di sisteme</string>
+
+ <string name="preference_category_privacy">Riservatece</string>
+ <string name="preference_privacy_block_ads">Bloche spiis des publicitâts</string>
+ <string name="preference_privacy_block_ads_summary">Cualchi publicitât ti spie pai sîts che tu visitis, ancje se no tu fasis clic su la publicitât</string>
+ <string name="preference_privacy_block_analytics">Bloche lis spiis analitichis</string>
+ <string name="preference_privacy_block_analytics_summary">A son dopradis par racuei, analizâ e misurâ lis ativitâts come i scoriments e lis batuçadis/tocjadis su schermi</string>
+ <string name="preference_privacy_block_social">Bloche lis spiis dai social</string>
+ <string name="preference_privacy_block_social_summary">Integradis sui sîts par stâ daûr a ce che tu visitis e par visualizâ lis funzions come i botons pe condivision</string>
+ <string name="preference_privacy_block_content">Bloche altris spiis di contignûts</string>
+ <string name="preference_privacy_block_content_summary2">La ativazion e podarès causâ compuartaments inspietâts e problemis pal funzionament par cualchi pagjine</string>
+
+ <string name="preference_privacy_category_cookies">Bloche i cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">No, graciis</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Bloche dome i cookies spiis di tiercis parts</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Bloche dome i cookies di tiercis parts</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Bloche i cookies inter-sîts</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Sì, graciis</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Dopre l’impront par sblocâ la app</string>
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Sbloche doprant l’impront se tu âs zontât scurtis o cuant che un sît web al è za viert in %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Invisibil</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Plate lis pagjinis web cuant che tu passis di une aplicazion in chê altre e impedìs la acuisizion des schermadis.</string>
+
+ <string name="preference_category_security">Sigurece</string>
+
+ <string name="preference_category_performance">Prestazions</string>
+ <string name="preference_performance_block_webfonts">Bloche caratars web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Al podarès puartâ a mancjancis di iconis o imagjins</string>
+
+ <string name="preference_performance_block_javascript">Bloche JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Lis pagjinis si cjamaran plui sveltis, ma a podaressin ancje vê compuartaments inspietâts o erôrs</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Rint %1$s il navigadôr predefinît</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Invie dâts di utilizazion</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Plui informazions</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla al cîr di tirâ dongje dome i dâts che i coventin par dâ fûr e miorâ %1$s par ducj i utents.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Informative su la riservatece</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Informazions su la licence</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Librariis dopradis</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Librariis OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Informazions su %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Motôrs di ricercje instalâts</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Sielç il motôr di ricercje</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Ripristine i motôrs di ricercje predefinîts</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Zonte un altri motôr di ricercje</string>
+ <string name="preference_search_remove_title">Gjave motôrs di ricercje</string>
+ <string name="preference_search_remove">Gjave</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Zonte un altri motôr di ricercje</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Selezione il motôr di ricercje preferît:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Zonte motôr di ricercje</string>
+
+ <string name="search_add_manually_name_hint">Non dal motôr di ricercje</string>
+ <string name="search_add_manually_string">Stringhe di ricercje di doprâ</string>
+ <string name="search_add_manually_save">Salve</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Esempli: esempli.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Zontât gnûf motôr di ricercje.</string>
+
+ <string name="search_add_error_empty_name">Inserìs il non dal motôr di ricercje</string>
+ <string name="search_add_error_duplicate_name">Un motôr di ricercje instalât al sta za doprant chel non.</string>
+
+ <string name="search_add_error_empty_search">Inserî la stringhe di ricercje</string>
+
+ <string name="search_add_error_format">Verifiche che la stringhe di ricercje e corispuindi al formât di esempli</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Nete il test</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Siere</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Scancele la cronologjie di navigazion</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Schedis viertis: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Conession sigure</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Daûr a cjamâ</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Sît web cjamât</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Altris opzions</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Boton altris opzions</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Navighe indevant</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Torne cjame il sît web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Torne indaûr</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Ferme di cjamâ il sît web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Torne ae aplicazion precedente</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Numar di spiis blocadis</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Bloche spiis</string>
+
+ <string name="your_rights">I tiei dirits</string>
+
+ <string name="external_app_prompt_title">Vierç colegament intune altre app</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Tu puedis lassâ %1$s par vierzi chest colegament in %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Cjate une app che e pues vierzi il colegament</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Nissune des aplicazions sul to dispositîf e rive a vierzi chest colegament. Tu puedis jessî di %1$s par cirî in %2$s une app adate.</string>
+
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Jessî de navigazion privade?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s completât</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Vierç</string>
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Zontât aes scurtis!</string>
+
+ <string name="error_hostLookup_title">Impussibil contatâ il servidôr</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Siere</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Benvignûts su %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Svelt. Privât. Cence distrazions.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Scomence</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s nol è come chei altris navigadôrs</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">O scancelìn la tô cronologjie ogni volte che tu sieris la app, par dâti plui riservatece.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Rint %1$s il to navigadôr predefinît par protezi i tiei dâts cuant che tu vierzis cualsisei colegament.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Met come navigadôr predefinît</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Salte</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Potenzie la tô riservatece</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Puarte la navigazion privade a un nivel superiôr. Bloche la publicitât e altris contignûts che a puedin spiâti tra i sîts e morestâ il cjariament des pagjinis.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">La ricercje, a la tô maniere</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Stavistu cirint alc altri? Sielç tes impostazions un altri motôr di ricercje predefinît.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Zonte scurtis te tô schermade principâl</string>
+
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Torne in tic e tac sui tiei sîts preferîts cun %1$s. Ti baste selezionâ “Zonte a schermade principâl” dal menù di %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Trasforme la riservatece intune abitudin</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Met %1$s come navigadôr predefinît e gjolt dai vantaçs de navigazion privade cuant che tu vierzis pagjinis web di altris aplicazions.</string>
+
+ <string name="firstrun_close_button">Va ben, capît!</string>
+ <string name="firstrun_skip_button">Salte</string>
+ <string name="firstrun_next_button">Indenant</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Zonte</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">SÌ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Anule</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NO</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Cheste scurte e vignarà vierte cu la Protezion miorade da lis spiis disativade</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Session di navigazion privade</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Lis notifichie ti permetin di scancelâ i dâts de session di %1$s cuntune tocjade. No ti covente vierzi la aplicazion o viodi ce che al è in esecuzion sul to navigadôr.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Scancele cronologjie di navigazion</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Discjame Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s al è un software libar e Open Source realizât di Mozilla e altris colaboradôrs.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s al è disponibil sot i tiermis de <a href="%2$s">Mozilla Public License</a> e altris licencis Open Source.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Mozilla nol atribuìs al utent nissun dirit o licence su la utilizazion des marchis regjistradis di Mozilla Foundation o di altris sogjets, includûts i nons Mozilla, Firefox, %1$s o i logos. Al è pussibil cjatâ altris informazions <a href="%2$s">achì</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Codiç sorzint adizionâl par %1$s al è disponibil sot altris varis <a href="%2$s">licencis</a> libaris e open source.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s al dopre ancje listis di bloc dadis fûr di Disconnect, Inc. in cualitât di opare separade e indipendente, distribuide sot i tiermins de <a href="%2$s">GNU General Public License v3</a> e disponibil <a href="%3$s">achì</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Non utent</string>
+ <string name="gv_prompt_password_hint">Password</string>
+ <string name="gv_prompt_clear">Nete</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Conession sigure</string>
+ <string name="security_popup_insecure_connection">Conession no sigure</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verificât di: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Sigurece dal sît</string>
+
+ <string name="preference_autocomplete_duplicate_url_error"> L’URL al esist za</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Cjate te pagjine</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Cjate te pagjine</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d di %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Cjate risultât sucessîf</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Cjate risultât precedent</string>
+
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Bandone ricercje</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Domande sît par scritori</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Sît par scritori</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL copiât</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Struments di svilup</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Vierç i colegaments tes aplicazions</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avanzadis</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Permès dai sîts</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Riduzion strissons pai cookies</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Ativade</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Disativade</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Riduzion strissons pai cookies</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Viôt mancul strissons refudant in automatic, se pussibil, lis richiestis dai cookies.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Riduzion strissons pai cookies</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ATIVADE par chest sît</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Sît pal moment no supuartât</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">DISATIVADE par chest sît</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Riduzion strissons pai cookies</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">DISATIVADE par chest sît</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ATIVADE par chest sît</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Ativâ la riduzion strissons dai cookies par %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Disativâ la riduzion strissons dai cookies par %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s al netarà vie i cookies di chest sît e al inzornarà la pagjine. Al è pussibil che, netant vie ducj i cookies, tu vegnis disconetût dal sît opûr che i carei des spesis a sedin disvuedâts.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2"> %1$s al pues provâ a refudâ in automatic lis richiestis dai cookies.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Pal moment chest sît nol è supuartât de Riduzion strissons pai cookies. Desideristu che il nestri grup al revisioni chest sît web e che un doman lu supuarti?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Anule</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Domande supuart</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Richieste di supuart pal sît inviade.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Richieste di supuart pal sît inviade.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s al c ir di refudâ lis richiestis dai cookies par sierâ i fastidiôs strissons pai cookies.\n\nGjestìs lis preferencis pai strissons dai cookies in %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">impostazions</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Riproduzion automatiche</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Par permetilu:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Va tes impostazions di Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tocje <b>Permès</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Va aes impostazions</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Met <b>%1$s</b> su Permet]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Fotocjamare</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Microfon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Posizion</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notifichis</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Contignûts protets di DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Domande il permès</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blocât</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Permetût</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blocât di Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Permet audio e video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Bloche dome l’audio</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Conseât</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Bloche audio e video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studis</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox al pues instalâ e puartâ indenant studis di cuant in cuant.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Plui informazions</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">La aplicazion e jessarà par aplicâ lis modifichis</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Gjave</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Atîfs</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Completâts</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Debug di lontan vie USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Sbloche</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Conferme doprant l’impront digjitâl</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Tu puedis doprâ il to impront digjitâl par continuâ la session corinte de aplicazion.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Vierç colegament intune gnove session</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Icone dal impront digjitâl</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Impront digjitâl no ricognossût. Torne prove.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Dêt mot masse adore. Torne prove.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Mostrâ i sugjeriments di ricercje?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Par vê sugjeriments, %1$s al à di inviâ al motôr di ricercje ce che tu scrivis te sbare de direzion.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">No</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Sì</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Cualchi motôr di ricercje nol pues mostrâ sugjeriments.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Ignore</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Un sît mostrial un compuartament anomal?\n
+ Prove a disativâ la Protezion da lis spiis</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Acêt cuntune tocjade sole ai sîts che tu dopris di plui%1$s Menù > Zonte a schermade principâl]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Vierç ducj i colegaments in %1$s\n
+ Met %1$s come navigadôr predefinît
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Auto-complete i URLs pai sîts che tu dopris di plui\n
+ Ten fracât plui a dilunc un URL te sbare de direzion
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Vierç un colegament intune gnove schede\n
+ Ten fracât plui a dilunc un colegament intune pagjine
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Disative i sugjeriments te schermade iniziâl</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Vierte gnove schede</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Passe a</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Daûr a jentrâ in modalitât plen schermi</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Passe dret al colegament te gnove schede</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Bloche i sîts potenzialmentri pericolôs e ingjanôs</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Bloche i sîts che a son stâts segnalâts tant che malevui o ingjanôs, che a contegnin malware o software malvolût.</string>
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Modalitât Dome-HTTPS</string>
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Prove in automatic la conession ai sîts doprant il protocol di cifradure HTTPS par vê une sigurece plui fuarte.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Ecezions</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Tu âs disativât il bloc dai contignûts par chescj sîts web.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Gjave</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Gjave ducj i sîts</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Bloche i cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Desideristu blocâ i cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Schede colassade</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Nus displâs. Al è vignût fûr un probleme cun cheste schede.</string>
+
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Sint un navigadôr privât, no salvìn mai e no podìn ripristinâ cheste schede.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Siere schede</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Invie la segnalazion di colàs a Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Spiis blocadis dal/i %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Contignûts</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Publicitâts</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Statistichis</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Protezion miorade da lis spiis</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Lis protezions a son DISATIVADIS par chest sît</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Lis protezions a son ATIVIS par chest sît</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">La conession e je sigure</string>
+
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">La conession no je sigure</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Spiis e scripts di blocâ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Torne indaûr</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Gjave</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Torne a nomenâ</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Cambie non</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Non de scurte</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Lis imagjins salvadis e condividudis &lt;b&gt;no vignaran&lt;/b&gt; eliminadis cuant che la cronologjie di %1$s e ven scancelade</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Teme</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Clâr</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Scûr</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Stabilît dal sparagn energjetic</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Va daûr dal teme dal dispositîf</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Chest sît nol supuarte HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[Cuant che al è pussibil %1$s al cîr di doprâ une conession HTTPS par vê plui sigurece.
+ <a href="%2$s">Plui informazions</a> <br/><br/>
+ Modifiche cheste impostazion in Impostazions > Riservatece e sigurece > Sigurece.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Conession no sigure</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Al podarès jessi un probleme cu la configurazion dal servidôr o cualchidun che al cîr di sostituîsi al servidôr stes. <br/><br/>
+ Se in passât al è stât pussibil conetisi a chest servidôr cun sucès, l’erôr al podarès sei temporani.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Al podarès jessi che cualchidun al sta cirint di sostituîsi al sît e continuâ al podarès jessi un risi.</label>
+ <br><br>
+ <label>%1$s nol considere atendibil <b>%2$s</b> parcè che l’emitent dal so certificât nol è cognossût, il certificât al è auto-firmât opûr il servidôr nol sta mandant i certificâts intermedis juscj.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Siere schede</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Cjapât!! O vin impedît a chest sît di spiâti. Tocje il scût cuant che tu vûs par viodi ce che o stin blocant. </string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Siere barcon a comparse</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Tu sês protet!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Chestis impostazions predefinidis a ufrissin une buine protezion. Ma al è facile modificâ lis impostazions par lâ incuintri aes tôs specifichis necessitâts.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Siere</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tocje achì par butâ vie dut — cronologjie, cookies, dut — e scomençâ dal principi suntune gnove schede.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Siere</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget di ricercje</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Cronologjie di navigazion netade! 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Scomence la tô session di navigazion privade, intant nô o blocarìn lis spiis e altre brute robate.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Ti lassìn ae tô navigazion privade, ma la prossime volte visiti che tu puedis scomençâ in maniere plui svelte doprant il widget di %1$s te schermade principâl.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Zonte widget ae schermade principâl</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget zontât ae pagjine principâl</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-fy-rNL/strings.xml b/mobile/android/focus-android/app/src/main/res/values-fy-rNL/strings.xml
new file mode 100644
index 0000000000..5bf34bf8fb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-fy-rNL/strings.xml
@@ -0,0 +1,1121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Annulearje</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Bewarje</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Fier sykterm of adres yn</string>
+
+ <string name="teaser">Automatysk privee sneupe.\nSneupe. Wiskje. Werhelje.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Jo sneupskiednis is wiske.</string>
+ <string name="feedback_erase2">Navigaasjeskiednis wiske</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Jo sneupskiednis fan de ljepblêden is wiske.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Sykje nei %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Diele…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Websiteprobleem rapportearje</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Iepenje yn %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Iepenje yn…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Tafoegje oan startskerm</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Oan fluchkeppelingen tafoegje</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Fuortsmite út Fluchkeppelingen</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Ynstellingen</string>
+ <string name="menu_about">Oer</string>
+ <string name="menu_help">Help</string>
+ <string name="menu_rights">Jo rjochten</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Trackers blokkearre</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Dit útskeakelje kin problemen mei websites ferhelpe</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Ynhâldsblokkearring</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Utskeakelje, om problemen mei guon websites te ferhelpen</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Mooglik makke troch %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Diele fia</string>
+
+ <string name="notification_erase_title_android_14">Navigaasjeskiednis wiskje?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tik op dizze notifikaasje of slút him om jo navigaasjeskiednis feilich te wiskje.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tik op dizze notifikaasje of fei der oerhinne om jo navigaasjeskiednis feilich te wiskjen.</string>
+
+ <string name="notification_erase_text">Navigaasjeskiednis wiskje</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Iepenje</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Wiskje en iepenje</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Wiskje</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Navigaasjeskiednis wiskje</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Wiskje &amp; iepenje</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Wiskje en %1$s iepenje</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Sykje yn Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Sykje yn Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Sykje yn Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Sykje yn Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s jout jo de kontrôle.</p>
+<p>Gebrûk as in priveebrowser:
+ <ul>
+ <li>Streekrjocht fan de app út sykje en navigearje</li>
+ <li>Trackers blokkearje (of ynstellingen bywurkje om se ta te stean)</li>
+ <li>Wiskjen smyt sawol cookies as syk- en navigaasjeskiednis fuort</li>
+ </ul>
+</p>
+<p>%1$s wurdt makke troch Mozilla. Us missy is it fersoargjen fan in sûn en iepen ynternet.<br/>
+<a href="%2$s">Mear ynfo</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privacy en befeiliging</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Folgjen, cookies, gegevenskarren</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">As standert ynstelle, auto-oanfolje</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Oer %1$s, help</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Ferbettere beskerming tsjin folgjen</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Webynhâld</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Apps wikselje</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Algemien</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Standertbrowser, taal</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Gegevenssamling en gebrûk</string>
+
+ <string name="preference_category_search">Sykje</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Syksuggesties krije</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s sil wat jo yn de adresbalke yntype nei jo sykmasine stjoere</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Standert</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Sykmasine</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Oan</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Ut</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL’s automatysk oanfolje</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Foar topwebsites</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Skeakelje dit yn om %s automatysk mear as 450 populêre URL’s yn de adresbalke oanfolje te litten.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Foar websites dy’t jo tafoegje</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Skeakelje dit yn om %s automatysk jo favorite URL’s oanfolje te litten.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Websites beheare</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Websites beheare</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Oanpaste URL tafoegje</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Jo list foar automatysk oanfoljen:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL tafoegje</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Oanpaste URL tafoegje</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Oanpaste URL tafoegje</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Keppeling foar automatysk oanfolje tafoegje</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies en websitegegevens</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Gegevensopsjes</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Oanpaste URL’s fuortsmite</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Mear ynfo</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Eigen URL’s foar automatysk oanfoljen tafoegje en beheare.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Ta te foegjen URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Plak of fier URL yn</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Foarbyld: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Foarbyld: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Nije oanpaste URL tafoege.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Fuortsmite</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Fuortsmite</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Kontrolearje de ynfierde URL.</string>
+
+ <string name="preference_language">Taal</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Systeemstandert</string>
+
+ <string name="preference_category_privacy">Privacy</string>
+ <string name="preference_privacy_block_ads">Advertinsjetrackers blokkearje</string>
+ <string name="preference_privacy_block_ads_summary">Guon advertinsjes folgje websitebesiten, sels as jo net op de advertinsjes klikke</string>
+ <string name="preference_privacy_block_analytics">Analysetrackers blokkearje</string>
+ <string name="preference_privacy_block_analytics_summary">Brûkt foar it sammeljen, analysearjen en mjitten fan aktiviteiten lykas tikken en skowen</string>
+ <string name="preference_privacy_block_social">Sosjale trackers blokkearje</string>
+ <string name="preference_privacy_block_social_summary">Ynboud op websites om jo besiken te folgjen en funksjonaliteit as dielknoppen te toanen</string>
+ <string name="preference_privacy_block_content">Oare ynhâldstrackers blokkearje</string>
+ <string name="preference_privacy_block_content_summary2">Ynskeakeljen kin feroarsaakje dat guon siden ûnferwachts wurkje</string>
+ <string name="preference_privacy_category_cookies">Cookies blokkearje</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Nee, tankewol</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Allinnich tracker-cookies fan tredden blokkearje</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Allinnich cookies fan tredden</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Cross-sitecookies blokkearje</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ja, graach</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Fingerôfdruk foar ûntskoatteljen fan app brûke</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Untskoattelje mei fingerôfdruk as jo fluchtoetsen tafoege hawwe of as in website al iepen is yn %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Stealth</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Websiden ferstopje by wikseljen fan apps en meitsjen fan skermôfdrukken blokkearje.</string>
+
+ <string name="preference_category_security">Befeiliging</string>
+
+ <string name="preference_category_performance">Prestaasjes</string>
+ <string name="preference_performance_block_webfonts">Weblettertypen blokkearje</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Kin ta ûntbrekkende piktogrammen of ôfbyldingen liede</string>
+
+ <string name="preference_performance_block_javascript">JavaScript blokkearje</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Siden kinne flugger laden wurde, mar kinne harren ek ûnferwachte hâlde en drage</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s standertbrowser meitsje</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Brûksgegevens ferstjoere</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Mear ynfo</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla stribbet dernei allinnich te sammeljen wat nedich is om %1$s foar elkenien oan te bieden en te ferbetterjen.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Privacyferklearring</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Lisinsje-ynformaasje</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Brûkte biblioteken</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS-biblioteken</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Oer %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Ynstallearre sykmasinen</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Sykmasine kieze</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Standert-sykmasinen opnij ynstelle</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ In oare sykmasine tafoegje</string>
+ <string name="preference_search_remove_title">Sykmasinen fuortsmite</string>
+ <string name="preference_search_remove">Fuortsmite</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Noch in sykmasine tafoegje</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Selektearje jo winske sykmasine:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Sykmasine tafoegje</string>
+
+ <string name="search_add_manually_name_hint">Namme sykmasine</string>
+ <string name="search_add_manually_string">Te brûken sykterm</string>
+ <string name="search_add_manually_save">Bewarje</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Bygelyls: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Nije sykmasine tafoege.</string>
+
+ <string name="search_add_error_empty_name">Fier namme fan sykmasine yn</string>
+ <string name="search_add_error_duplicate_name">Dizze namme wurdt al troch in ynstallearre sykmasine brûkt.</string>
+
+ <string name="search_add_error_empty_search">Fier syksterm yn</string>
+
+ <string name="search_add_error_format">Kontrolearje oft sykterm oan foarbyldnotaasje foldocht</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Ynfier wiskje</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Fuortsmite</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Navigaasjeskiednis wiskje</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Iepen ljepblêden: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Befeilige ferbining</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Lade</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Website laden</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Mear opsjes</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Knop foar mear opsjes</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Foarút blêdzje</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Website opnij lade</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Werom blêdzje</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Laden fan website stopje</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Tebek nei foarige app</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Oantal blokkearre trackers</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Trackers blokkearje</string>
+
+ <string name="your_rights">Jo rjochten</string>
+
+ <string name="external_app_prompt_title">Keppeling yn oare app iepenje</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Jo kinne %1$s ferlitte om dizze keppeling yn %2$s te iepenjen.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Fyn in app dy’t dizze keppeling iepenje kin</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Gjin inkelde app op jo apparaat kin dizze keppeling iepenje. Jo kinne %1$s ferlitte en %2$s iepenje om in geskikte app te finen.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Priveenavigaasje ôfslute?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s is foltôge</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Iepenje</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Tafoege oan fluchkeppelingen!</string>
+
+ <string name="error_hostLookup_title">Server net fûn</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Slute</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Wolkom bij %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Fluch. Privee. Gjin ôflieding.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Begjinne</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s is net lykas oare browsers</string>
+
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">As jo de app slute wiskje wy jo skiednis foar ekstra privacy.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Meitsje %1$s jo standert om jo gegevens te beskermjen mei elke keppeling dy’t jo iepenje.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">As standertbrowser ynstelle</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Oerslaan</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Fergrutsje jo privacy</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Bring priveenavigaasje nei in heger nivo. Blokkearje advertinsjes en oare ynhâld dy’t jo op websites folgje kinne en laadtiden fan siden ferlingje.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Sykje op jo manier</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Op syk nei wat oars? Kies in oare standertsykmasine yn Ynstellingen.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Foegje keppelingen ta oan jo startskerm</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Kear fluch werom nei jo favorite websites yn %1$s. Selektearje gewoanwei ‘Tafoegje oan startskerm’ fan it %1$s-menu út.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Meitsje privacy gewoan</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Stel %1$s yn as jo standertbrowser en ûnderfyn de foardielen fan priveenavigaasje as jo websiden iepenje fan oare apps út.</string>
+
+ <string name="firstrun_close_button">OK, begrepen!</string>
+ <string name="firstrun_skip_button">Oerslaan</string>
+ <string name="firstrun_next_button">Folgjende</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Tafoegje</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">JA</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Annulearje</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NEE</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Fluchkeppeling iepenet mei Ferbettere beskerming tsjin folgjen útskeakele</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Priveenavigaasjesesje</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Mei notifikaasjes kinne jo fia ien tik jo %1$s-sesje wiskje. Jo hoege de app net te iepenjen of te sjen wat der yn jo browser aktyf is.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Navigaasjeskiednis wiskje</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox downloade</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s is fergese en iepenboarnesoftware makke troch Mozilla en oare meiwurkers.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s wurdt beskikber steld ûnder de betingsten fan de <a href="%2$s">Mozilla Public License</a> en oare opensourcelisinsjes.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Der wurde jo gjin rjochten of lisinsjes ferliend op de hannelsmerken fan de Mozilla Foundation of iennige oare partij, mei ynbegryp fan de nammen of logo’s fan Mozilla, Firefox of %1$s. Oanfoljende ynformaasje is <a href="%2$s">hjir</a> te finen.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Oanfoljende boarnekoade foar %1$s is beskikber ûnder ferskate oare frije en opensource-<a href="%2$s">lisinsjes</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s brûkt ek blokkearlisten dy’t troch Disconnect, Inc. levere wurde as ôfsûnderlike en ûnôfhinklike wurken ûnder de <a href="%2$s">GNU General Public License v3</a> en dy <a href="%3$s">hjir</a> beskikber binne.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Brûkersnamme</string>
+ <string name="gv_prompt_password_hint">Wachtwurd</string>
+ <string name="gv_prompt_clear">Wiskje</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Befeilige ferbining</string>
+ <string name="security_popup_insecure_connection">Net-befeilige ferbining</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Ferifiearre troch: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Sidefeilichheid</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL bestiet al</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Sykje op side</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Sykje op side</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d fan %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Folgjende resultaat fine</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Foarige resultaat fine</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Sykje op side slute</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Desktopwebsite opfreegje</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Desktopwebsite</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL kopiearre</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Untwikkelersark</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Keppelingen yn apps iepenje</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avansearre</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Websitemachtigingen</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reduksje fan cookiebanners</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Oan</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Ut</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reduksje fan cookiebanners</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Sjoch minder banners troch, wannear mooglik, cookiefersiken automatysk te wegerjen.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reduksje fan cookiebanners</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">OAN foar dizze website</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Website wurdt op dit stuit net stipe</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">ÚT foar dizze website</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reduksje fan cookiebanners</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">ÚT foar dizze website</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">OAN foar dizze website</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Reduksje fan cookiebanners ynskeakelje foar %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Reduksje fan cookiebanners útskeakelje foar %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s wisket de cookies foar dizze website en fernijt de side. As alle cookies wiske wurde, wurde jo mooglik ôfmeld of wurde winkelweintsjes lege.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s kin probearje om cookiefersiken automatysk te wegerjen.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Dizze website wurdt op it stuit net stipe troch Reduksje fan cookiebanners. Wolle jo ús team freegje om dizze website te beoardielen en yn de takomst stipe ta te foegjen?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Annulearje</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Stipe oanfreegje</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Fersyk om te websitestipe yntsjinne.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Fersyk om te websitestipe yntsjinne.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s probearret cookiefersiken ôf te wizen om ferfelende cookiebanners fuort te heljen.\n\nBehear foarkarren foar cookiebanners yn %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">ynstellingen</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automatysk ôfspylje</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Tastean:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Gean nei Android-ynstellingen</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tik op <b>Machtigingen</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Nei Ynstellingen</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Set <b>%1$s</b> op ‘AAN’]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofoan</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Lokaasje</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Melding</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-behearde ynhâld</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Freegje om tastimming</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blokkearre</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Tastien</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blokkearre troch Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Audio en fideo tastean</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Allinnich audio blokkearje</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Oanrekommandearre</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Audio en fideo blokkearje</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Undersiken</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox kin sa no en dan ûndersiken ynstallearje en útfiere.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Mear ynfo</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">De tapassing wurdt ôfsluten om wizigingen ta te passen</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Fuortsmite</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktyf</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Foltôge</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Remote debugging fia USB/wifi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Untskoattelje</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Befêstigje it gebrûk fan jo fingerôfdruk</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Jo kinne jo fingerôfdruk brûke om mei jo aktuele app-sesje troch te gean.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Keppeling iepenje yn nije sesje</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Fingerôfdrukpiktogram</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Fingerôfdruk net werkend. Probearje it opnij.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Finger te fluch beweegd. Probearje it opnij.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Syksuggestjes toane?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Om suggestjes te krijen, moat %1$s wat jo yn de adresbalke yntype nei de keazen sykmasine stjoere.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Nee</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Ja</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Guon sykmasinen kinne gjin suggestjes toane.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Fuortsmite</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Wurket in website net goed?\n Probearje Beskerming tsjin folgjen út te skeakeljen</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Tagong ta de meastbesochte websites mei ien tik%1$s Menu > Tafoegje oan startskerm]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Alle keppelingen yn %1$s iepenje\n Stel %1$s yn as jo standertbrowser</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">URL’s foar meastbrûkte websites automatysk oanfolje\n Hâld jo finger op in URL yn de adresbalke</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">In keppeling yn in nij ljepblêd iepenje\n Hâld jo finger op in keppeling op in side</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Tips op startscherm útskeakelje</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nij ljepblêd iepene</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Wikselje</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Folslein skerm wurdt iepene</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Wikselje daliks nei keppeling yn nij ljepblêd</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Potinsjeel gefaarlike en misliedende websites blokkearje</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Rapportearre misliedende en oanfals-, malware- en net-winske-software-websites blokkearje.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Allinnich-HTTPS-modus</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Probearret foar in bettere befeiliging automatysk mei it HTTPS-fersiferingsprotokol ferbining te meitsjen mei websites.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Utsûnderingen</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Jo hawwe ynhâldsblokkearring foar dizze websites útskeakele.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Fuortsmite</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Alle websites fuortsmite</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Cookies blokkearje</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Wolle jo cookies blokkearje?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Ljepblêd ferûngelokke</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Sorry, wy hawwe in probleem mei dit ljepblêd.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">As priveebrowser bewarje wy dit ljepblêd net en kinne it net werstelle.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Ljepblêd slute</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Ungelokrapport nei Mozilla ferstjoere</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Trackers blokkearre sûnt %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Ynhâld</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Advertinsjes</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Sosjaal</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analyze</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Ferbettere beskerming tsjin folgjen</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Beskermingen foar dizze website stean ÚT</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Beskermingen foar dizze website stean OAN</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Ferbining is befeilige</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Ferbining is net befeilige</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Te blokkearjen trackers en scripts</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Tebek</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Fuortsmite</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Omneame</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Omneame</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Namme fluchkeppeling</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Bewarre en dielde ôfbyldingen &lt;b&gt;wurde net&lt;/b&gt; fuortsmiten as jo skiednis fan %1$s wiskje</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Ljocht</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Donker</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Ynsteld troch Batterijbesparring</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Apparaattema folgje</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Dizze website stipet gjin HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s probearret wêr mooglik in HTTPS-ferbining te brûken foar mear feilichheid.
+<a href="%2$s">Mear ynfo</a> <br/><br/>
+Wizigje dizze ynstelling yn Ynstellingen > Privacy en befeiliging > Befeiliging.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Ferbining net befeilige</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+Dit kin in probleem wêze mei de konfiguraasje fan de server, of it kin ien wêze dy’t probearret harren foar te dwaan as de server.<br/><br/>
+As jo earder al mei súkses ferbining hân hawwe mei dizze server, kin de flater mooglik tydlik wêze.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Ien kin probearje de website nei te dwaan en trochgean kin risikofol wêze.</label>
+ <br><br>
+ <label>%1$s fertrout <b>%2$s</b> net, omdat de sertifikaatútjouwer ûnbekend is, it sertifikaat selsûndertekene is, of de server net de krekte yntermediêre sertifikaten ferstjoert.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Ljepblêd slute</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Hebbes! Wy hawwe dizze website stoppe om jo te bespionearjen. Tik op elk momint op it skyld om te sjen wat wy blokkearje.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Pop-up slute</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Jo binne beskerme!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Dizze standertynstellingen biede in sterke beskerming. Mar it is ienfâldich om de ynstellingen oan jo spesifike behoeften oan te passen.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Slute</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tik hjir om alles fuort te smiten – skiednis, cookies, alles – en in farske start te meitsjen op in nij ljepblêd.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Slute</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Syk-widget</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Navigaasjeskiednis wiske! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Start jo priveenavigaasjesesje en wy blokkearje trackers en oare minne dingen wylst jo dwaande binne.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Wy litte jo trochgean mei priveenavigaasje, mar krij in folgjende kear in fluggere start mei de %1$s-widget op jo startskerm.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Widget oan startskerm tafoegje</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget oan startskerm tafoege</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ga-rIE/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ga-rIE/strings.xml
new file mode 100644
index 0000000000..a579b81431
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ga-rIE/strings.xml
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <string name="action_cancel">Cealaigh</string>
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Sábháil</string>
+
+ <string name="urlbar_hint">Cuardach nó seoladh Gréasáin</string>
+
+ <string name="teaser">Brabhsáil phríobháideach, go huathoibríoch.\nBrabhsáil. Bánaigh. Arís is arís eile.</string>
+
+ <string name="feedback_erase">Bánaíodh do stair bhrabhsála.</string>
+
+ <string name="search_hint">Cuardaigh %1$s</string>
+
+ <string name="menu_share">Comhroinn…</string>
+
+ <string name="menu_report_site_issue">Tuairiscigh Fadhb leis an Suíomh</string>
+
+ <string name="menu_open_with_default_browser2">Oscail in %1$s</string>
+
+ <string name="menu_open_with_a_browser2">Oscail in…</string>
+
+ <string name="menu_add_to_home_screen">Cuir leis an scáileán Baile</string>
+
+ <string name="menu_settings">Socruithe</string>
+ <string name="menu_about">Maidir leis</string>
+ <string name="menu_help">Cabhair</string>
+ <string name="menu_rights">Cearta an úsáideora</string>
+
+ <string name="menu_trackers_blocked_title">Lorgairí blocáilte</string>
+
+ <string name="menu_custom_tab_branding">Á chumhachtú ag %1$s</string>
+
+ <string name="share_dialog_title">Comhroinn trí</string>
+
+ <string name="notification_erase_text">Glan an stair bhrabhsála</string>
+
+ <string name="notification_action_open">Oscail</string>
+
+ <string name="notification_action_erase_and_open">Scrios agus Oscail</string>
+
+ <string name="shortcut_erase_short_label">Glan</string>
+
+ <string name="shortcut_erase_long_label">Glan an stair bhrabhsála</string>
+
+
+ <string name="preference_privacy_and_security_header">Príobháideachas agus Slándáil</string>
+
+ <string name="preference_privacy_and_security_summary">Lorgaireacht, fianáin, roghanna sonraí</string>
+
+ <string name="preference_search_summary">Réamhshocrú, uathchríochnú</string>
+
+ <string name="preference_mozilla_summary">Maidir le %1$s, cabhair</string>
+
+ <string name="preference_category_web_content">Inneachar Gréasáin</string>
+
+ <string name="preference_category_switching_apps">Athrú Aipeanna</string>
+
+ <string name="preference_category_general">Ginearálta</string>
+
+ <string name="preference_category_data_collection_use">Bailiúchán agus Úsáid Sonraí</string>
+
+ <string name="preference_category_search">Cuardach</string>
+
+ <string name="preference_search_engine_default">Réamhshocrú</string>
+
+ <string name="preference_state_on">Ann</string>
+
+ <string name="preference_state_off">As</string>
+
+ <string name="preference_subitem_autocomplete">Uathchríochnú URL</string>
+
+ <string name="preference_autocomplete_action_add">+ Cuir URL saincheaptha leis</string>
+
+ <string name="preference_autocomplete_title_add">Cuir URL saincheaptha leis</string>
+
+ <string name="custom_autocomplete_quick_add">Cuir URL saincheaptha leis</string>
+
+ <string name="preference_category_cookies">Fianáin agus Sonraí Suímh</string>
+
+ <string name="preference_category_data_choices">Roghanna Sonraí</string>
+
+ <string name="preference_autocomplete_title_remove">Bain URLanna saincheaptha</string>
+
+ <string name="preference_autocomplete_learn_more">Tuilleadh eolais</string>
+
+ <string name="preference_autocomplete_add_title">URL le cur leis</string>
+
+ <string name="preference_autocomplete_add_hint">Greamaigh nó clóscríobh URL</string>
+
+ <string name="preference_autocomplete_add_example2">Sampla: mozilla.org</string>
+
+ <string name="preference_autocomplete_add_example">Sampla: example.com</string>
+
+ <string name="preference_autocomplete_menu_remove">Bain</string>
+
+ <string name="preference_autocomplete_action_remove_content_description">Bain</string>
+
+ <string name="preference_autocomplete_add_error">Deimhnigh an URL a chuir tú isteach arís.</string>
+
+ <string name="preference_language">Teanga</string>
+ <string name="preference_language_systemdefault">Réamhshocrú an chórais</string>
+
+ <string name="preference_category_privacy">Príobháideachas</string>
+ <string name="preference_privacy_block_ads">Cuir cosc ar lorgairí fógraíochta</string>
+ <string name="preference_privacy_block_analytics">Cuir cosc ar lorgairí anailísíochta</string>
+ <string name="preference_privacy_block_social">Cuir cosc ar lorgairí sóisialta</string>
+ <string name="preference_privacy_block_content">Cuir cosc ar lorgairí ábhair eile</string>
+ <string name="preference_privacy_category_cookies">Cuir cosc ar fhianáin</string>
+
+ <string name="preference_privacy_secure_mode">Mód Rúnda</string>
+ <string name="preference_privacy_stealth_summary">Folaigh leathanaigh Ghréasáin agus an aip á hathrú</string>
+
+ <string name="preference_category_performance">Feidhmíocht</string>
+ <string name="preference_performance_block_webfonts">Cuir cosc ar chlónna Gréasáin</string>
+ <string name="preference_performance_block_webfonts_summary">D\'fhéadfadh go mbeadh deilbhíní nó íomhánna ar iarraidh</string>
+
+ <string name="preference_performance_block_javascript">Cuir cosc ar JavaScript</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Seol sonraí úsáide chugainn</string>
+
+ <string name="preference_mozilla_telemetry_summary">Tuilleadh eolais</string>
+
+ <string name="preference_privacy_notice">Fógra Príobháideachais</string>
+
+ <string name="preference_about">Maidir le %1$s</string>
+
+ <string name="preference_search_installed_search_engines">Innill chuardaigh suiteáilte</string>
+
+ <string name="preference_search_restore">Athchóirigh na hinnill chuardaigh réamhshocraithe</string>
+
+ <string name="preference_search_add2">+ Cuir inneall cuardaigh leis</string>
+ <string name="preference_search_remove_title">Bain innill chuardaigh</string>
+ <string name="preference_search_remove">Bain</string>
+
+ <string name="action_option_add_search_engine">Inneall cuardaigh nua</string>
+
+ <string name="search_add_manually_name_hint">Ainm an innill cuardaigh</string>
+ <string name="search_add_manually_string">Teaghrán cuardaigh</string>
+ <string name="search_add_manually_save">Sábháil</string>
+
+ <string name="search_add_manually_example">Sampla: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Cuireadh inneall cuardaigh nua leis.</string>
+
+ <string name="search_add_error_empty_name">Cuir isteach ainm an innill cuardaigh</string>
+
+ <string name="search_add_error_empty_search">Cuir teaghrán cuardaigh isteach</string>
+
+ <string name="content_description_clear_input">Glan an réimse</string>
+
+ <string name="content_description_dismiss_input">Díbir</string>
+
+ <string name="content_description_erase">Glan an stair bhrabhsála</string>
+
+ <string name="content_description_tab_counter">Cluaisíní oscailte: %1$s</string>
+
+ <string name="content_description_lock">Ceangal slán</string>
+
+ <string name="accessibility_announcement_loading">Á lódáil</string>
+
+ <string name="accessibility_announcement_loading_finished">Luchtaíodh an suíomh Gréasáin</string>
+
+ <string name="content_description_menu">Tuilleadh roghanna</string>
+
+ <string name="content_description_forward">Téigh ar aghaidh</string>
+
+ <string name="content_description_reload">Athlódáil an suíomh</string>
+
+ <string name="content_description_back">Téigh ar gcúl</string>
+
+ <string name="content_description_stop">Stop ag lódáil an tsuímh</string>
+
+ <string name="content_description_customtab_exit">Fill ar an aip roimhe seo</string>
+
+ <string name="content_description_blocking_switch">Cuir cosc ar lorgairí</string>
+
+ <string name="your_rights">Cearta an úsáideora</string>
+
+ <string name="external_app_prompt_title">Oscail an nasc in aip eile</string>
+ <string name="external_app_prompt">Is féidir leat %1$s a fhágáil chun an nasc seo a oscailt in %2$s.</string>
+ <string name="external_app_prompt_no_app_title">Aimsigh aip lenar féidir an nasc seo a oscailt</string>
+ <string name="external_app_prompt_no_app">Níl aon aip ar do ghléas atá in ann an nasc seo a oscailt. Is féidir leat %1$s a fhágáil chun aip oiriúnach a lorg in %2$s.</string>
+ <string name="external_multiple_apps_matched_exit">Scoir de Bhrabhsáil Phríobháideach?</string>
+
+ <string name="download_snackbar_finished">%1$s críochnaithe</string>
+
+ <string name="download_snackbar_open">Oscail</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Níor aimsíodh an freastalaí</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <string name="firstrun_defaultbrowser_title">Príobháideachas praiticiúil proifisiúnta</string>
+
+ <string name="firstrun_shortcut_title">Cuir aicearraí leis an leathanach baile</string>
+
+ <string name="firstrun_close_button">OK, tuigim!</string>
+ <string name="firstrun_skip_button">Ná bac leis</string>
+ <string name="firstrun_next_button">Ar Aghaidh</string>
+
+ <string name="content_blocking_disabled">-</string>
+
+ <string name="dialog_addtohomescreen_action_add">Cuir Leis</string>
+
+ <string name="dialog_addtohomescreen_action_cancel">Cealaigh</string>
+
+ <string name="download_firefox">Íoslódáil Firefox</string>
+
+ <string name="gv_prompt_username_hint">Ainm úsáideora</string>
+ <string name="gv_prompt_password_hint">Focal Faire</string>
+ <string name="gv_prompt_clear">Glan</string>
+
+ <string name="security_popup_secure_connection">Ceangal Slán</string>
+ <string name="security_popup_insecure_connection">Ceangal Neamhshlán</string>
+ <string name="security_popup_security_verified">Fíoraithe ag: %1$s</string>
+
+ <string name="site_security_icon_content_description">Slándáil an tSuímh</string>
+ <string name="preference_autocomplete_duplicate_url_error">Tá an URL ann cheana</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-gl/strings.xml b/mobile/android/focus-android/app/src/main/res/values-gl/strings.xml
new file mode 100644
index 0000000000..1008df7889
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-gl/strings.xml
@@ -0,0 +1,1098 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Cancelar</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Aceptar</string>
+
+ <string name="action_save">Gardar</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Buscar ou escribir o enderezo</string>
+
+ <string name="teaser">Navegación privada automática.\nNavega. Borra. Repite.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Borrouse o seu historial de navegación.</string>
+
+ <string name="feedback_erase2">Borrouse o historial de navegación</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Borrouse o historial de navegación da lapela.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Buscar %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Compartir…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Incidencia neste sitio</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Abrir no %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Abrir en…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Engadir á páxina inicial</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Engadir aos atallos</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Retirar dos atallos</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Axustes</string>
+ <string name="menu_about">Sobre</string>
+ <string name="menu_help">Axuda</string>
+ <string name="menu_rights">Os seus dereitos</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Rastrexadores bloqueados</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Desactivar esta opción pode solucionar algúns problemas do sitio</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Bloqueo de contido</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Desactive para corrixir algúns sitios</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Co apoio de %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Compartir por</string>
+
+ <string name="notification_erase_title_android_14">Quere borrar o historial de navegación?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tocar ou borrar esta notificación para borrar de forma segura o seu historial de navegación.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tocar ou deslizar esta notificación para borrar de forma segura o seu historial de navegación.</string>
+
+ <string name="notification_erase_text">Borrar o historial de navegación</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Abrir</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Borrar e abrir</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Borrar</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Borrar o historial de navegación</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Borrar e abrir</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Borrar e abrir %1$s</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Busca en Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Buscar en Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Buscar en Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Buscar en Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s dálle o control.</p>
+<p>Úseo como navegador privado:
+ <ul>
+ <li>Buscar e navegar directamente na aplicación</li>
+ <li>Bloquear rastrexadores (ou actualizar a configuración para permitir rastrexadores)</li>
+ <li>Borrar para eliminar as cookies, así como o historial de busca e navegación</li>
+ </ul>
+</p>
+<p>%1$s é producido por Mozilla. A nosa misión é fomentar unha Internet saudable e aberta.<br/>
+<a href="%2$s">Máis información</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privacidade e seguranza</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Seguimento, cookies, datos recollidos</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Estabelecer como predeterminado, completado automático</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Sobre o %1$s, axuda</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Protección mellorada contra o rastrexo</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Contido web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Cambiar entre aplicativos</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Xeral</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Navegador predeterminado, idioma</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Uso e recollida de datos</string>
+
+ <string name="preference_category_search">Buscar</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Obter suxestións de busca</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s enviará o que escribiu na barra de enderezos ao buscador</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Predeterminado</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Buscador</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Activado</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Desactivado</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Completado automático do URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Para os sitios máis populares</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Actíveo para que %s complete automaticamente máis de 450 URL populares na barra de enderezos.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Para os sitios que engada</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Activar para que %s complete automaticamente os seus URL favoritos.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Xestionar os sitios</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Xestionar os sitios</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Engadir URL personalizado</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">A súa lista para completar automaticamente:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Engadir o URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Engadir URL personalizado</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Engadir URL personalizado</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Engadir a ligazón para completar automaticamente</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies e datos do sitio</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Datos recollidos</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Retirar URL personalizados</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Máis información</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Engadir e xestionar o completado automático personalizado dos URL.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL a engadir</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Pegar ou escribir URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Exemplo: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Exemplo: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Engadiuse o URL personalizado.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Retirar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Retirar</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Revise o URL que escribiu.</string>
+
+ <string name="preference_language">Idioma</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Predeterminado do sistema</string>
+
+ <string name="preference_category_privacy">Privacidade</string>
+ <string name="preference_privacy_block_ads">Bloquear os elementos de seguimento de publicidade</string>
+ <string name="preference_privacy_block_ads_summary">Algún anuncios fan o seguimento das súas visitas as páxinas aínda que que non acceda a eles</string>
+ <string name="preference_privacy_block_analytics">Bloquear os elementos de seguimento analíticos</string>
+ <string name="preference_privacy_block_analytics_summary">&quot;Úsanse para recoller, analizar e medir accións como premer na pantalla ou desprazarse pola páxina &quot;</string>
+ <string name="preference_privacy_block_social">Bloquear os elementos de seguimento social</string>
+ <string name="preference_privacy_block_social_summary">Incrustados nos sitios para facer o seguimento das súas visitas e para amosar algúns elementos como os botóns de compartir</string>
+ <string name="preference_privacy_block_content">Bloquear os outros elementos de seguimento de contido</string>
+ <string name="preference_privacy_block_content_summary2">A activación pode causar que algunhas páxinas se comporten de forma inesperada</string>
+ <string name="preference_privacy_category_cookies">Bloquear as cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Non, grazas</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Bloquear só as cookies de seguimento de terceiras partes</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Só bloquea as cookies de terceiros</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Bloquear as cookies entre sitios</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Si, por favor</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Usar a pegada dixital para desbloquear o aplicativo</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Desbloquee coa pegada dixital se engadiu atallos ou cando xa está aberto un sitio web en %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Invisible</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Agocha as páxinas web cando cambia de aplicativos e evita capturas de pantalla.</string>
+
+ <string name="preference_category_security">Seguranza</string>
+
+ <string name="preference_category_performance">Rendemento</string>
+ <string name="preference_performance_block_webfonts">Bloquear tipos de letra web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Pode facer que non vexan algunhas iconas ou imaxes</string>
+
+ <string name="preference_performance_block_javascript">Bloquear JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">As páxinas poden cargar máis rápido, pero tamén poden comportarse de forma inesperada</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Definir %1$s como navegador predeterminado</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Enviar datos de uso</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Máis información</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla esforzase por recoller só os datos necesarios para fornecer e mellorar %1$s para todos.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Política de privacidade</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Información de licenciamento</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliotecas que empregamos</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Bibliotecas OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Sobre o %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Buscadores instalados</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Escolla un buscador</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Restaurar os buscadores predeterminados</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Engadir outro buscador</string>
+ <string name="preference_search_remove_title">Retirar buscadores</string>
+ <string name="preference_search_remove">Retirar</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Engadir outro buscador</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Seleccione o seu buscador preferido:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Engadir buscador</string>
+
+ <string name="search_add_manually_name_hint">Nome do buscador</string>
+ <string name="search_add_manually_string">Cadea de busca que se usará</string>
+ <string name="search_add_manually_save">Gardar</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Exemplo: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Engadiuse un novo buscador.</string>
+
+ <string name="search_add_error_empty_name">Escriba o nome do buscador</string>
+ <string name="search_add_error_duplicate_name">Xa hai un buscador instalado con ese nome.</string>
+
+ <string name="search_add_error_empty_search">Escriba a cadea de busca</string>
+
+ <string name="search_add_error_format">Comprobe que a cadea de busca coincide co formato do exemplo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Borrar entrada</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Rexeitar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Borrar o historial de navegación</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Lapelas abertas: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Conexión segura</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Cargando</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Cargouse o sitio web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Máis opcións</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Botón de máis opcións</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Avanzar no historial</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Recargar sitio web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Retroceder no historial</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Deter a carga do sitio web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Volver ao aplicativo anterior</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Número de rastrexadores bloqueados</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Bloquear os elementos de seguimento</string>
+
+ <string name="your_rights">Os seus dereitos</string>
+
+ <string name="external_app_prompt_title">Abrir a ligazón noutro aplicativo</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Pode saír do %1$s para abrir esta ligazón co %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Atopa un aplicativo que pode abrir a ligazón</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ningún dos aplicativos no seu dispositivo pode abrir esta ligazón. Pode saír do %1$s para buscar en %2$s un aplicativo compatíbel.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Quere saír da navegación privada?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s rematou</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Abrir</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Engadido aos atallos!</string>
+
+ <string name="error_hostLookup_title">Non se atopou o servidor</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Pechar</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Reciba a benvida a %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rápido. Privado. Sen distraccións.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Comezar</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s non é como outros navegadores</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Borramos o seu historial cando pecha a aplicación para obter máis privacidade.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Establece %1$s como predeterminado para protexer os seus datos con cada ligazón que abra.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Estabelecer como navegador predeterminado</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Saltar</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Potencia a súa privacidade</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">A navegación privada pasa a un nivel superior. Bloquea anuncios e outro contido que pode facerlle un seguimento a través dos sitios e atrasar a carga das páxinas.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">As súas buscas, ao seu modo</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Busca algo diferente? Escolla outra buscador predeterminado nos Axustes.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Engada atallos a súa páxina inicial</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Volva máis rápido aos seus sitios favoritos no %1$s. Seleccione «Engadir á páxina inicial» no menú do %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Converte a privacidade nun hábito</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Estabeleza %1$s como navegador predeterminado e experimente os beneficios da navegación privada ao abrir páxinas web dende outros aplicativos.</string>
+
+ <string name="firstrun_close_button">Entendido!</string>
+ <string name="firstrun_skip_button">Saltar</string>
+ <string name="firstrun_next_button">Seguinte</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Engadir</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">SI</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Cancelar</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NON</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">O atallo abrirase coa protección de seguimento mellorada desactivada</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sesión de navegación privada</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">As notificacións permítenlle borrar a sesión de %1$s cun toque. Non necesita abrir o aplicativo nin ver o que se está executando no navegador.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Borrar o historial de navegación</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Descargar o Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[O %1$s é un programa libre e de código aberto creado por Mozilla e outros colaboradores.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s está dispoñible para vostede baixo os termos da <a href="%2$s">Licenza pública de Mozilla</a> e outras licenzas de código aberto.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Non se lle concede ningún dereito ou licenza sobre as marcas comerciais da Fundación Mozilla ou de ningunha parte, incluídos os nomes ou logotipos de Mozilla, Firefox ou %1$s. Pódese atopar información adicional <a href="%2$s">aquí</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[O código fonte adicional para %1$s está dispoñible baixo outras <a href="%2$s">licenzas</a> gratuítas e de código aberto.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s tamén usa as listas de bloqueo proporcionadas por Disconnect, Inc. como traballos separados e independentes baixo a <a href="%2$s">GNU General Public License v3</a>, e dispoñible <a href="%3$s">aquí</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nome de usuario</string>
+ <string name="gv_prompt_password_hint">Contrasinal</string>
+ <string name="gv_prompt_clear">Borrar</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Conexión segura</string>
+ <string name="security_popup_insecure_connection">Conexión non segura</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verificado por: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Seguranza do sitio</string>
+ <string name="preference_autocomplete_duplicate_url_error">Xa existe o URL</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Atopar na páxina</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Atopar na páxina</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d de %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Atopar o seguinte resultado</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Atopar o resultado anterior</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Pechar a busca</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Solicitar sitio de escritorio</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Sitio de escritorio</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Copiouse o URL</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Ferramentas de desenvolvemento</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Abrir ligazóns con aplicacións</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avanzados</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Permisos do sitio</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Redución do aviso de cookies</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Activado</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Desactivado</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Redución do aviso de cookies</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Vexa menos avisos ao rexeitar automaticamente as solicitudes de cookies, cando sexa posible.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Redución do aviso de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Activado para este sitio</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Sitio actualmente non soportado</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Desactivado para este sitio</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Redución do aviso de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Desactivado para este sitio</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Activado para este sitio</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Quere activar a redución do aviso de cookies para %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Quere desactivar a redución do aviso de cookies para %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s borrará as cookies deste sitio e actualizará a páxina. Ao borrar todas as cookies, é posible que peche a sesión ou baleire os carriños da compra.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s pode tentar rexeitar automaticamente as solicitudes de cookies.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Este sitio actualmente non é compatible coa redución de avisos de cookies. Quere solicitar ao noso equipo que revise este sitio web e que engada asistencia no futuro?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Cancelar</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Pedir soporte</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">A solicitude de soporte enviouse.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">A solicitude de soporte enviouse.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s tenta rexeitar as solicitudes de cookies para rexeitar os molestos avisos de cookies.\n\nXestions as preferencias dos avisos de cookies en %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">configuración</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Reprodución automática</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Para permitilo:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Vaia á Configuración de Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Toque <b>Permisos</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Ir á configuración</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Cambie <b>%1$s</b> a ACTIVADO]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Cámara</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Micrófono</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Localización</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notificación</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Contido controlado por DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Preguntar antes de permitir</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Bloqueado</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Permitido</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Bloqueado por Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Permitir son e vídeo</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Bloquear só o son</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Recomendado</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Bloquear son e vídeo</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Estudos</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox pode instalar e executar estudos de vez en cando.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Máis información</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">A aplicación pecharase para aplicar os cambios</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Retirar</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Activo</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Rematado</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Depuración remota por USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Desbloquear</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Confirmar usando a súa pegada dixital</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Pode usar a túa pegada dixital para continuar coa sesión actual da aplicación.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Abrir a ligazón nunha nova sesión</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Icona da pegada dixital</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Non se recoñece a pegada dixital. Tente de novo.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Moveu demasiado rápido o dedo. Tente de novo.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Amosar suxestións de busca?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> Para obter suxestións, %1$s debe enviar o que escribe na barra de enderezos ao motor de busca.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Non</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Si</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">É posíbel que algúns buscadores non amosen suxestións.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Rexeitar</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">O sitio comportase de forma inesperada?\n Proba a desactivar a protección contra o seguimento</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Obtén acceso aos sitios que máis visita cun solo toque%1$s Menú > Engadir á páxina inicial]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Abra todas as ligazóns no %1$s\n Estableza %1$s como o navegador predeterminado</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Completar automaticamente os URL máis visitados\n Unha pulsación longa en calquera URL na barra de enderezos</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Abrir unha ligazón nunha nova lapela\n Unha pulsación longa en calquera ligazón nunha páxina</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Desactivar os consellos na pantalla de inicio</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Abriuse unha nova lapela</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Trocar</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Entrado no modo de pantalla completa</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Cambiar a unha ligazón nunha nova lapela inmediatamente</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Bloquear sitios potencialmente perigosos e enganosos</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Bloquear sitios notificados como enganosos e de ataque, sitios de software malicioso e sitios de software non desexado.</string>
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Modo só HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Tenta conectarse automaticamente a sitios mediante o protocolo de cifrado HTTPS para aumentar a seguridade.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Excepcións</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Desactivou o bloqueo de contido para estes sitios web.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Retirar</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Retirar todos os sitios web</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Bloquear as cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Quere bloquear as cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">A lapela quebrou</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Sentímolo. Temos un problema con esta lapela.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Como navegador privado, nunca gardamos e non podemos restaurar esta lapela.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Pechar lapela</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Enviar informe de quebra a Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Rastrexadores bloqueados desde %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Contido</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Publicidade</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analítica</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Protección mellorada contra o rastrexo</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">As proteccións están DESACTIVADAS neste sitio</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">As proteccións están ACTIVADAS neste sitio</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">A conexión é segura</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">A conexión non é segura</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Rastrexadores e scripts para bloquear</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Retroceder</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Retirar</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Renomear</string>
+
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Renomear</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nome do atallo</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">As imaxes gardadas e compartidas &lt;b&gt;non se&lt;/b&gt; eliminarán cando borre o historial de %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Claro</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Escuro</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Configurado polo aforro de batería</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Segundo o tema do dispositivo</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Este sitio non admite HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s tenta utilizar unha conexión HTTPS sempre que sexa posible para máis seguridade.
+ <a href="%2$s">Máis información</a> <br/><br/>
+ Cambie esta configuración en Configuración > Privacidade e &amp; Seguridade > Seguridade.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">A conexión non é segura</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Isto pode ser un problema coa configuración do servidor ou pode ser alguén que intente suplantar a identidade do servidor. <br/><br/>
+ Se se conectou a este servidor correctamente no pasado, o erro pode ser temporal.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Alguén podería tentar suplantar a identidade do sitio e continuar pode ser arriscado.</label>
+ <br><br>
+ <label>%1$s non confía en <b>%2$s</b> porque o emisor do seu certificado é descoñecido, o certificado está asinado por si mesmo ou o servidor non está a enviar os certificados intermedios correctos.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Pechar a lapela</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Excelente! Evitamos que este sito web o espiara. Toque o escudo para ver o que estamos a bloquear.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Pecha a ventá emerxente</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Estás protexido!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Esta configuración predeterminada ofrece unha forte protección. Pero é doado axustar a configuración para satisfacer as túas necesidades específicas.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Rexeitar</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Toque aquí para eliminalo todo — historial, cookies, todo — e comezar de novo nunha nova lapela.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Pechar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget de busca</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Borrouse o historial de navegación. 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Comece a súa sesión de navegación privada e bloquearemos os rastrexadores e outras ameazas mentres navega.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Deixarémolo coa súa navegación privada, pero a próxima vez comezará máis rápido co widget %1$s na súa pantalla de inicio.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Engadir widget á pantalla de inicio</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Engadiuse o widget á pantalla de inicio</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-gu-rIN/strings.xml b/mobile/android/focus-android/app/src/main/res/values-gu-rIN/strings.xml
new file mode 100644
index 0000000000..ab21f8c9eb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-gu-rIN/strings.xml
@@ -0,0 +1,403 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <string name="action_cancel">રદ કરો</string>
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">સાચવો</string>
+
+ <string name="urlbar_hint">શોધો અથવા સરનામું દાખલ કરો</string>
+
+ <string name="teaser">આપમેળે ખાનગી બ્રાઉઝિંગ.\nબ્રાઉઝ કરો. કાઢો. પુનરાવર્તન કરો.</string>
+
+ <string name="feedback_erase">તમારો બ્રાઉઝિંગ ઇતિહાસ કાઢી નાખવામાં આવ્યો છે.</string>
+
+ <string name="feedback_erase_custom_tab">ટૅબનો બ્રાઉઝિંગ ઇતિહાસ કાઢી નાખવામાં આવ્યો છે.</string>
+
+ <string name="search_hint">%1$s ની શોધ માં</string>
+
+ <string name="menu_share">વહેંચો…</string>
+
+ <string name="menu_report_site_issue">સાઇટ સમસ્યાનો અહેવાલ આપો</string>
+
+ <string name="menu_open_with_default_browser2">%1$s માં ખોલો</string>
+
+ <string name="menu_open_with_a_browser2">માં ખોલો…</string>
+
+ <string name="menu_add_to_home_screen">મુખ્ય સ્ક્રીન પર ઉમેરો</string>
+
+ <string name="menu_settings">સેટિંગ્સ</string>
+ <string name="menu_about">વિશે</string>
+ <string name="menu_help">મદદ</string>
+ <string name="menu_rights">તમારા અધિકારો</string>
+
+ <string name="menu_trackers_blocked_title">ટ્રેકર્સ અવરોધિત</string>
+
+ <string name="menu_trackers_blocked_subtitle">આને બંધ કરવું એ કેટલીક સાઇટ સમસ્યાઓને ઠીક કરી શકે છે</string>
+
+ <string name="menu_content_blocking">સામગ્રી અવરોધિત</string>
+ <string name="menu_content_blocking_subtitle">કેટલીક સાઇટ્સને ઠીક કરવા બંધ કરો</string>
+
+ <string name="menu_custom_tab_branding">%1$s દ્વારા સંચાલિત</string>
+
+ <string name="share_dialog_title">આની મારફતે વહેંચો</string>
+
+ <string name="notification_erase_text">બ્રાઉઝિંગ ઇતિહાસને કાઢી નાખો</string>
+
+ <string name="notification_action_open">ખોલો</string>
+
+ <string name="notification_action_erase_and_open">કાઢી નાખો અને ખોલો</string>
+
+ <string name="shortcut_erase_short_label">કાઢી નાખો</string>
+
+ <string name="shortcut_erase_long_label">બ્રાઉઝિંગ ઇતિહાસને કાઢી નાખો</string>
+
+
+ <string name="shortcut_erase_and_open_short_label">કાઢી નાખો અને ખોલો</string>
+
+ <string name="shortcut_erase_and_open_long_label">કાઢી નાખો અને %1$s ને ખોલો</string>
+
+ <string name="preference_privacy_and_security_header">ગોપનીયતા અને સુરક્ષા</string>
+
+ <string name="preference_privacy_and_security_summary">ટ્રેકિંગ, કૂકીઝ, માહિતી પસંદગીઓ</string>
+
+ <string name="preference_search_summary">મૂળભૂત સેટ કરો, સ્વતઃપૂર્ણ</string>
+
+ <string name="preference_mozilla_summary">%1$s વિશે, સહાય</string>
+
+ <string name="preference_category_web_content">વેબ સામગ્રી</string>
+
+ <string name="preference_category_switching_apps">એપ્લિકેશન બદલો</string>
+
+ <string name="preference_category_general">સામાન્ય</string>
+
+ <string name="preference_category_data_collection_use">માહિતીનો સંગ્રહ અને ઉપયોગ</string>
+
+ <string name="preference_category_search">શોધો</string>
+
+ <string name="preference_show_search_suggestions">શોધ સૂચનો મેળવો</string>
+ <string name="preference_show_search_suggestions_summary">%1$s તમે જે સરનામા બારમાં લખો છો તે તમારા શોધ એન્જિનમાં મોકલશે</string>
+
+ <string name="preference_search_engine_default">મૂળભૂત</string>
+
+ <string name="preference_search_engine_label">શોધ એન્જિન</string>
+
+ <string name="preference_state_on">ચાલુ</string>
+
+ <string name="preference_state_off">બંધ</string>
+
+ <string name="preference_subitem_autocomplete">URL સ્વતઃપૂર્ણ</string>
+
+ <string name="preference_switch_autocomplete_topsites">ટોચની સાઇટ્સ માટે</string>
+
+ <string name="preference_switch_autocomplete_user_list">તમે ઉમેરો છો તે સાઇટ્સ માટે</string>
+
+ <string name="preference_category_autocomplete_manage_sites">સાઇટ્સની ગોઠવણ કરો</string>
+
+ <string name="preference_autocomplete_subitem_manage_sites">સાઇટ્સની ગોઠવણ કરો</string>
+
+ <string name="preference_autocomplete_action_add">+ પોતાનું URL ઉમેરો</string>
+
+ <string name="preference_autocomplete_title_add">પોતાનું URL ઉમેરો</string>
+
+ <string name="custom_autocomplete_quick_add">પોતાનું URL ઉમેરો</string>
+
+ <string name="add_custom_autocomplete_label">સ્વતઃપૂર્ણ કરવા માટે લિંક ઉમેરો</string>
+
+ <string name="preference_category_cookies">કૂકીઝ અને સાઈટની માહિતી</string>
+
+ <string name="preference_category_data_choices">માહિતી પસંદગીઓ</string>
+
+ <string name="preference_autocomplete_title_remove">પોતાના URLs દૂર કરો</string>
+
+ <string name="preference_autocomplete_learn_more">વધુ શીખો</string>
+
+ <string name="preference_autocomplete_custom_summary">પોતાના સ્વતઃપૂર્ણ URLs ને ઉમેરો અને સંચાલિત કરો.</string>
+
+ <string name="preference_autocomplete_add_title">URL ઉમેરવુ</string>
+
+ <string name="preference_autocomplete_add_hint">પેસ્ટ કરો અથવા URL દાખલ કરો</string>
+
+ <string name="preference_autocomplete_add_example2">ઉદાહરણ: mozilla.org</string>
+
+ <string name="preference_autocomplete_add_example">ઉદાહરણ: example.com</string>
+
+ <string name="preference_autocomplete_add_confirmation">નવું કસ્ટમ URL ઉમેર્યું.</string>
+
+ <string name="preference_autocomplete_menu_remove">દૂર કરો</string>
+
+ <string name="preference_autocomplete_action_remove_content_description">દૂર કરો</string>
+
+ <string name="preference_autocomplete_add_error">તમે દાખલ કરેલ URL ને બે વાર તપાસો.</string>
+
+ <string name="preference_language">ભાષા</string>
+ <string name="preference_language_systemdefault">સિસ્ટમ મૂળભૂત</string>
+
+ <string name="preference_category_privacy">ખાનગીપણું</string>
+ <string name="preference_privacy_block_ads">જાહેરાત ટ્રેકર્સને અવરોધિત કરો</string>
+ <string name="preference_privacy_block_ads_summary">કેટલાક જાહેરાતો સાઇટની મુલાકાત લે છે, પછી ભલે તમે જાહેરાતો પર ક્લિક ન કરો</string>
+ <string name="preference_privacy_block_analytics">વિશ્લેષણાત્મક ટ્રેકર્સને અવરોધિત કરો</string>
+ <string name="preference_privacy_block_analytics_summary">ટેપીંગ અને સ્ક્રોલિંગ જેવી પ્રવૃત્તિઓ એકત્રિત કરવા, પૃથ્થકરણ અને માપવા માટે વપરાય છે</string>
+ <string name="preference_privacy_block_social">સામાજિક ટ્રેકર્સને અવરોધિત કરો</string>
+ <string name="preference_privacy_block_social_summary">સાઇટ્સ પર એમ્બેડ કરેલા તમારી મુલાકાતોને ટ્રૅક કરવા અને શેર કરો બટનો જેવી કાર્યક્ષમતા દર્શાવવા માટે</string>
+ <string name="preference_privacy_block_content">અન્ય સામગ્રી ટ્રેકર્સને અવરોધિત કરો</string>
+ <string name="preference_privacy_block_content_summary2">સક્રિય કરવાથી કેટલાક પૃષ્ઠો અનપેક્ષિત રૂપે વર્તન કરી શકે છે</string>
+ <string name="preference_privacy_category_cookies">કૂકીઝને અવરોધિત કરો</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">માત્ર તૃતીય-પક્ષ ટ્રેકર કૂકીઝને અવરોધિત કરો</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">માત્ર 3-પક્ષ કૂકીઝને અવરોધિત કરો</string>
+
+ <string name="preference_security_biometric">એપ્લિકેશનને અનલૉક કરવા માટે આંગળીના નીશાનનો ઉપયોગ કરો</string>
+
+ <string name="preference_privacy_secure_mode">તરકિબ</string>
+ <string name="preference_privacy_stealth_summary">એપ્લિકેશન્સને બદલતી વખતે વેબપૃષ્ઠો છુપાવો અને સ્ક્રીનશોટ લેવાનું અવરોધિત કરો.</string>
+
+ <string name="preference_category_security">સુરક્ષા</string>
+
+ <string name="preference_category_performance">પ્રદર્શન</string>
+ <string name="preference_performance_block_webfonts">વેબ ફોન્ટ્સને અવરોધિત કરો</string>
+ <string name="preference_performance_block_webfonts_summary">ખૂટે ચિહ્નો અથવા છબીઓમાં પરિણામ હોઈ શકે છે</string>
+
+ <string name="preference_performance_block_javascript">JavaScript અવરોધ</string>
+ <string name="preference_performance_block_javascript_summary">પૃષ્ઠો વધુ ઝડપથી લોડ થઈ શકે છે, પરંતુ અણધારી રૂપે વર્તન પણ કરી શકે છે</string>
+
+ <string name="preference_default_browser2">%1$s મૂળભૂત બ્રાઉઝર બનાવો</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">ઉપયોગ ડેટા મોકલો</string>
+
+ <string name="preference_mozilla_telemetry_summary">વધુ શીખો</string>
+
+ <string name="preference_mozilla_telemetry_summary2">મોઝિલા માત્ર દરેકને માટે %1$s પ્રદાન અને સુધારવાની જરૂર છે તે એકત્રિત કરવાનો પ્રયત્ન કરે છે.</string>
+
+ <string name="preference_privacy_notice">ખાનગી સૂચના</string>
+
+ <string name="preference_about">%1$s વિશે</string>
+
+ <string name="preference_search_installed_search_engines">ઇન્સ્ટોલ કરેલા સર્ચ એન્જિનો</string>
+
+ <string name="preference_search_restore">મૂળભૂત શોધ એંજીન તરીકે પુનઃસંગ્રહો</string>
+
+ <string name="preference_search_add2">+ અન્ય શોધ એન્જિન ઉમેરો</string>
+ <string name="preference_search_remove_title">શોધ એંજીન્સ દૂર કરો</string>
+ <string name="preference_search_remove">દૂર કરો</string>
+
+ <string name="action_option_add_search_engine">શોધ એન્જિન ઉમેરો</string>
+
+ <string name="search_add_manually_name_hint">શોધ એન્જિન નામ</string>
+ <string name="search_add_manually_string">વાપરવા માટે શોધ શબ્દમાળા</string>
+ <string name="search_add_manually_save">સંગ્રહો</string>
+
+ <string name="search_add_manually_example">ઉદાહરણ: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">નવું શોધ એંજિન ઉમેર્યું.</string>
+
+ <string name="search_add_error_empty_name">શોધ એંજીન નામ દાખલ કરો</string>
+ <string name="search_add_error_duplicate_name">એક સ્થાપિત શોધ એંજીન પહેલેથી જ તે નામનો ઉપયોગ કરી રહ્યું છે.</string>
+
+ <string name="search_add_error_empty_search">શબ્દમાળા દાખલ કરો</string>
+
+ <string name="search_add_error_format">તે તપાસણી કરો કે શબ્દમાળા ઉદાહરણ ફોર્મેટ સાથે મેળ ખાય છે</string>
+
+ <string name="content_description_clear_input">સ્પષ્ટ ઇનપુટ</string>
+
+ <string name="content_description_dismiss_input">રદ કરો</string>
+
+ <string name="content_description_erase">બ્રાઉઝિંગ ઇતિહાસને કાઢી નાખો</string>
+
+ <string name="content_description_tab_counter">ટૅબ્સ ખોલો: %1$s</string>
+
+ <string name="content_description_lock">સુરક્ષિત જોડાણ</string>
+
+ <string name="accessibility_announcement_loading">લોડ કરી રહ્યું છે</string>
+
+ <string name="accessibility_announcement_loading_finished">વેબસાઇટ લોડ થાય છે</string>
+
+ <string name="content_description_menu">વધુ વિકલ્પ</string>
+
+ <string name="indicator_content_description_menu">વધુ વિકલ્પો બટન</string>
+
+ <string name="content_description_forward">આગળ નેવિગેટ કરો</string>
+
+ <string name="content_description_reload">વેબસાઇટ ફરીથી લોડ કરો</string>
+
+ <string name="content_description_back">પાછા નેવિગેટ કરો</string>
+
+ <string name="content_description_stop">વેબસાઇટ લોડ કરવાનું રોકો</string>
+
+ <string name="content_description_customtab_exit">પાછલા એપ્લિકેશન પર પાછા ફરો</string>
+
+ <string name="content_description_trackers_blocked">અવરોધિત ટ્રેકર્સની સંખ્યા</string>
+
+ <string name="content_description_blocking_switch">ટ્રેકર્સને અવરોધિત કરો</string>
+
+ <string name="your_rights">તમારા અધિકારો</string>
+
+ <string name="external_app_prompt_title">અન્ય એપ્લિકેશનમાં લિંક ખોલો</string>
+ <string name="external_app_prompt">તમે %2$sમાં આ લિંકને ખોલવા માટે %1$s છોડી શકો છો.</string>
+ <string name="external_app_prompt_no_app_title">એક એપ્લિકેશન શોધો જે લિંક ખોલી શકે છે</string>
+ <string name="external_app_prompt_no_app">તમારા ઉપકરણ પરની કોઈપણ એપ્લિકેશનો આ લિંક ખોલવા માટે સક્ષમ નથી. તમે એપ્લિકેશન માટે %2$s શોધવા માટે %1$s કરી છોડી શકો છો.</string>
+ <string name="external_multiple_apps_matched_exit">ખાનગી બ્રાઉઝિંગ બહાર નીકળીએ?</string>
+
+ <string name="download_snackbar_finished">%1$s સમાપ્ત થઈ</string>
+
+ <string name="download_snackbar_open">ખોલો</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">સર્વર મળ્યું નહિં</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <string name="firstrun_defaultbrowser_title">તમારી ગોપનીયતા વધારો</string>
+ <string name="firstrun_defaultbrowser_text2">ખાનગી બ્રાઉઝિંગ આગલા સ્તર પર લો. જાહેરાતો અને અન્ય સામગ્રીને અવરોધિત કરો કે જે તમને સાઇટ્સ પર ટ્રૅક કરી શકે છે અને પૃષ્ઠ લોડ વખતને નીચે કરી શકે છે.</string>
+
+ <string name="firstrun_search_title">તમારી શોધ, તમારી રીત</string>
+ <string name="firstrun_search_text">કંઈક અલગ શોધી રહ્યાં છો? સેટિંગ્સમાં બીજુ મૂળભૂત શોધ એંજિન પસંદ કરો.</string>
+
+ <string name="firstrun_shortcut_title">તમારી મુખ્ય સ્ક્રીન પર શૉર્ટકટ્સ ઉમેરો</string>
+ <string name="firstrun_shortcut_text">%1$s માં તમારી મનપસંદ સાઇટ્સ પર ઝડપથી પાછા આવો. ફક્ત %1$s મેનૂમાંથી \&quot;મુખ્ય સ્ક્રીન પર ઉમેરો\&quot; પસંદ કરો.</string>
+
+ <string name="firstrun_privacy_title">ગોપનીયતા એક આદત બનાવો</string>
+ <string name="firstrun_privacy_text">તમારા મૂળભૂત બ્રાઉઝર તરીકે %1$s સેટ કરો અને જ્યારે તમે અન્ય એપ્લિકેશનોથી વેબપૃષ્ઠો ખોલશો ત્યારે ખાનગી બ્રાઉઝિંગના લાભો મેળવો.</string>
+
+ <string name="firstrun_close_button">OK, સમજાઇ ગયું!</string>
+ <string name="firstrun_skip_button">છોડો</string>
+ <string name="firstrun_next_button">આગળ</string>
+
+ <string name="content_blocking_disabled">-</string>
+
+ <string name="dialog_addtohomescreen_action_add">ઉમેરો</string>
+
+ <string name="dialog_addtohomescreen_action_cancel">રદ કરો</string>
+
+ <string name="notification_browsing_session_channel_name">ખાનગી બ્રાઉઝિંગ સત્ર</string>
+
+ <string name="notification_browsing_session_channel_description">સૂચનાઓ તમને નળ સાથે તમારા %1$s સત્રને કાઢી નાખવા દે છે. તમારે એપ્લિકેશન ખોલો અથવા તમારા બ્રાઉઝરમાં શું ચાલી રહ્યું છે તે જોવાની જરૂર નથી.</string>
+
+ <string name="tabs_tray_action_erase">બ્રાઉઝિંગ ઇતિહાસને કાઢી નાખો</string>
+
+ <string name="download_firefox">Firefox ડાઉનલોડ કરો</string>
+
+ <string name="your_rights_content1">%1$s મોઝીલા અને અન્ય યોગદાનકર્તાઓ દ્વારા બનાવવામાં આવેલ મફત અને ઓપન સોર્સ સૉફ્ટવેર છે.</string>
+
+
+
+
+ <string name="gv_prompt_username_hint">વપરાશકર્તા નામ</string>
+ <string name="gv_prompt_password_hint">પાસવર્ડ</string>
+ <string name="gv_prompt_clear">સાફ કરો</string>
+
+ <string name="security_popup_secure_connection">સુરક્ષિત જોડાણ</string>
+ <string name="security_popup_insecure_connection">અસુરક્ષિત જોડાણ</string>
+ <string name="security_popup_security_verified">દ્વારા ખાતરી થઈ: %1$s</string>
+
+ <string name="site_security_icon_content_description">સાઇટ સુરક્ષા</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL પહેલાથી અસ્તિત્વમાં</string>
+
+ <string name="find_in_page">પાનાંમાં શોધો</string>
+
+ <string name="find_in_page_input">પાનાંમાં શોધો</string>
+
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <string name="accessibility_find_in_page_result">%2$d માંથી %1$d</string>
+
+ <string name="accessibility_next_result">આગામી પરિણામ શોધો</string>
+ <string name="accessibility_previous_result">અગાઉના પરિણામ શોધો</string>
+ <string name="accessibility_dismiss_find_in_page">પાનાંના શોધો કાઢી નાખો</string>
+
+
+
+ <string name="preference_performance_request_desktop_site">ડેસ્કટૉપ સાઇટની વિનંતી કરો</string>
+
+ <string name="custom_tab_copy_url_action">URL નકલ કરી</string>
+
+ <string name="preference_advanced_summary">વિકાસકર્તા સાધનો</string>
+
+ <string name="preference_category_advanced">અદ્યતન</string>
+
+ <string name="preference_remote_debugging">USB/Wi-Fi દ્વારા દૂરસ્થ ડિબગીંગ</string>
+
+ <string name="biometric_auth_image_description">આંગળીની ચિહ્ન</string>
+
+ <string name="biometric_auth_not_recognized_error">આંગળીના નીશાન માન્ય નથી. ફરીથી પ્રયત્ન કરો.</string>
+
+ <string name="biometric_auth_moved_too_quickly">આંગળી ખૂબ ઝડપી ખસેડવામાં આવી. ફરીથી પ્રયત્ન કરો.</string>
+
+ <string name="enable_search_suggestions_no">ના</string>
+
+ <string name="enable_search_suggestions_yes">હા</string>
+
+ <string name="no_suggestions_message">કેટલાક શોધ એન્જિનો સૂચનો બતાવી શકતા નથી.</string>
+
+ <string name="dismiss_no_suggestions_prompt_button">કાઢી નાંખો</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <string name="tip_disable_tracking_protection">સાઇટ અણધારી રીતે વર્તે છે? \n ટ્રેકિંગ રક્ષણને બંધ કરી જુઅો</string>
+
+ <string name="tip_add_to_homescreen">તમે સૌથી વધુ%1$s ઉપયોગ કરો છો તે સાઇટ્સ પર એક-ટૅપ ઍક્સેસ મેળવો મેનૂ &gt; હોમ સ્ક્રીન પર ઉમેરો</string>
+
+ <string name="tip_set_default_browser">દરેક લિંકને %1$s માં ખોલો\n ડિફૉલ્ટ બ્રાઉઝર તરીકે %1$s ને સેટ કરો</string>
+
+ <string name="tip_autocomplete_url">તમે સૌથી વધુ ઉપયોગ કરો છો તે સાઇટ્સ માટે સ્વતઃપૂર્ણ URLs\n સરનામાં બારમાં કોઈપણ URL ને લાંબા સમય સુધી દબાવો</string>
+
+ <string name="tip_open_in_new_tab">નવી ટેબમાં લિંક ખોલો\n કોઈ પૃષ્ઠ પર કોઈ લિંકને લાંબા સમયથી દબાવો</string>
+
+ <string name="tip_disable_tips2">પ્રારંભ સ્ક્રીન પર ટિપ્પણીઓ બંધ કરો</string>
+
+ <string name="new_tab_opened_snackbar">નવી ટૅબ ખૂલી ગઇ છે</string>
+
+ <string name="open_new_tab_snackbar">બદલો</string>
+
+ <string name="preference_open_new_tab">તરત જ નવી ટૅબમાં લિંક પર જાઓ</string>
+
+ <string name="preference_safe_browsing_title">સંભવિત જોખમી અને ભ્રામક સાઇટ્સને અવરોધિત કરો</string>
+ <string name="preference_safe_browsing_summary">રિપોર્ટ કરાયેલી ભ્રામક અને હુમલો કરવાવાળી સાઇટ્સ, મૉલવેરવાળી સાઇટ્સ અને અનિચ્છનીય સૉફ્ટવેરવાળી સાઇટ્સને અવરોધિત કરો.</string>
+
+ <string name="preference_exceptions">અપવાદો</string>
+ <string name="preference_exceptions_description">તમે આ વેબસાઇટ્સ માટે સામગ્રી અવરોધિત કરવાનું નિષ્ક્રીય કર્યું છે.</string>
+ <string name="preference_exceptions_menu_remove">દૂર કરો</string>
+ <string name="preference_exceptions_remove_all_button_label">બધી વેબસાઇટ્સને દૂર કરો</string>
+
+ <string name="tab_crash_report_title">ટૅબ ક્રેશ થયું</string>
+ <string name="tab_crash_report_headline">માફ કરશો. અમને આ ટૅબમાં સમસ્યા આવી રહી છે.</string>
+ <string name="tab_crash_report_description">ખાનગી બ્રાઉઝર તરીકે, અમે આ ટૅબને ક્યારેય સાચવી શકતા નથી અને પુનઃસ્થાપિત કરી શકતા નથી.</string>
+ <string name="tab_crash_report_close_tab_button_label">ટૅબ બંધ કરો</string>
+
+
+
+
+ <string name="crash_report_send_crash_label">Mozilla પર ક્રેશ રિપોર્ટ મોકલો</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-hi-rIN/strings.xml b/mobile/android/focus-android/app/src/main/res/values-hi-rIN/strings.xml
new file mode 100644
index 0000000000..e8ee4f553b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-hi-rIN/strings.xml
@@ -0,0 +1,749 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">रद्द करें</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ठीक है</string>
+
+ <string name="action_save">सहेजें</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">खोजें या पता दर्ज करें</string>
+
+ <string name="teaser">स्वचलित निजी ब्राउज़िंग।\nब्राउज़ करें। मिटाएँ। दोहराएँ।</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">आपका ब्राउज़िंग इतिहास मिटा दिया गया है।</string>
+ <string name="feedback_erase2">ब्राउज़िंग इतिहास मिटा दिया गया</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">टैब का ब्राउज़िंग इतिहास मिटा दिया गया है।</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s लिए खोजें</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">साझा करें…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">साइट समस्या की रिपोर्ट करें</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s में खोलें</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">इसमें खोलें…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">मुख्य स्क्रीन में जोड़ें</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">शॉर्टकट में जोड़ें</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">शॉर्टकट से हटाएँ</string>
+
+ <string name="menu_settings">सेटिंग</string>
+ <string name="menu_about">परिचय</string>
+ <string name="menu_help">सहायता</string>
+ <string name="menu_rights">आपके अधिकार</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">ट्रैकर्स अवरुद्ध</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">इसे बंद करना शायद साइट की कुछ समस्याओं को ठीक कर दे</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">सामग्री ब्लॉकिंग</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">कुछ साइटों को ठीक करने के लिए बंद करें</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s द्वारा समर्थित</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">इसके माध्यम से साझा करें</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">ब्राउज़िंग इतिहास मिटाएँ</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">खोलें</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">मिटा दें और खोलें</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">मिटाएँ</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">ब्राउज़िंग इतिहास मिटाएँ</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">मिटाएँ एवं खोलें</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">मिटाएँ और %1$s खोलें</string>
+
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">गोपनीयता और सुरक्षा</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">ट्रैकिंग, कुकीज़, डेटा विकल्प</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">तयशुदा बनायें, स्वत: पूर्ण</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s परिचय, सहायता</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">उन्नत ट्रैकिंग सुरक्षा</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">वेब सामग्री</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">ऐप्स बदलना</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">सामान्य</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">तयशुदा ब्राउज़र, भाषा</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">आँकड़ा संग्रह व उपयोग</string>
+
+ <string name="preference_category_search">खोजें</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">खोज सुझाव पायें</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s उन्हें आपके खोज इंजन में भेजेगा जिन्हें आप पता बार में टाइप करेंगे</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">मूलभूत</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">खोज इंजन</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">चालू</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">बंद</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL स्वत: पूर्ण</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">मुख्य साइटों के लिए</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">आपके द्वारा जोड़े साइटों के लिए</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">साइटों को प्रबंधित करें</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">साइटों को प्रबंधित करें</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ अपनी संशोधित URL जोड़ें</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">आपकी स्वतः पूर्ण सूची:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">यूआरएल जोड़ें</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">अपनी संशोधित URL जोड़ें</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">विशिष्ट URL जोड़ें</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">स्वतः पूर्णता के लिए लिंक जोड़ें</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">कुकीज़ और साइट आँकड़ा</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">आँकड़ा विकल्प</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">उपभोक्ता संशोधित URL हटाएँ</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">और जानें</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">उपभोक्ता संशोधित स्वत: पूर्ण URLs जोड़ें और प्रबंधित करें।</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">जोड़ने के लिए URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">URL पेस्ट करें या दर्ज करें</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">उदाहरण: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">उदाहरण: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">नया उपभोक्ता संशोधित URL जोड़ा गया।</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">हटाएँ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">हटाएँ</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">आपके द्वारा दर्ज URL की दोहरी जाँच करें।</string>
+
+ <string name="preference_language">भाषा</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">सिस्टम डिफ़ॉल्ट</string>
+
+ <string name="preference_category_privacy">गोपनीयता</string>
+ <string name="preference_privacy_block_ads">विज्ञापन ट्रैकर्स को अवरुद्ध करें</string>
+ <string name="preference_privacy_block_ads_summary">कुछ विज्ञापन साइट पर जाने को ट्रैक करते हैं, भले ही आप उन्हें क्लिक न करें</string>
+ <string name="preference_privacy_block_analytics">विश्लेषणात्मक ट्रैकर्स को अवरुद्ध करें</string>
+ <string name="preference_privacy_block_analytics_summary">टैपिंग और स्क्रॉलिंग जैसी गतिविधियाँ एकत्र, विश्लेषण और मापने के लिए उपयोग</string>
+ <string name="preference_privacy_block_social">सामाजिक ट्रैकर्स को अवरुद्ध करें</string>
+ <string name="preference_privacy_block_social_summary">साइटों पर आपके आने जाने पर निगाह रखने और साझा बटन जैसी कार्यक्षमता प्रदर्शित करने के लिए अंत:स्थापित</string>
+ <string name="preference_privacy_block_content">अन्य सामग्री ट्रैकर्स को अवरुद्ध करें</string>
+ <string name="preference_privacy_block_content_summary2">सक्षम करने पर कुछ पृष्ठ अनपेक्षित व्यवहार कर सकते हैं</string>
+ <string name="preference_privacy_category_cookies">कुकीज़ बाधित करें</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">नहीं धन्यवाद</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">केवल तृतीय-पक्ष ट्रैकर कूकीज़ ब्लॉक करें</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">केवल तीसरे पक्ष की कुकीज़ बाधित करें</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">क्रॉस-साइट कुकीज़ को प्रतिबंधित करें</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">हाँ अवश्य</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">ऐप्प को अनलॉक करने के लिए फिंगरप्रिंट का इस्तेमाल करें</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">गुप्तता</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">एक ऐप्प से दुसरे ऐप्प पर जाते समय वेबपृष्ठों को छिपाएं तथा स्क्रीनशॉट लेना ब्लॉक करें।</string>
+
+ <string name="preference_category_security">सुरक्षा</string>
+
+ <string name="preference_category_performance">प्रदर्शन</string>
+ <string name="preference_performance_block_webfonts">वेब लिपियों को अवरुद्ध करें</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">अनुपस्थित प्रतीकों या छवियों के रूप में परिणाम हो सकता है</string>
+
+ <string name="preference_performance_block_javascript">JavaScript प्रतिबंधित करें</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">पृष्ठ तेजी से लोड हो सकते हैं, लेकिन अप्रत्याशित रूप से भी व्यवहार कर सकते हैं</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s को डिफ़ॉल्ट ब्राउज़र बनाएँ</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">उपयोगित डेटा भेजें</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">और अधिक जानें</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla मात्र वही एकत्र करने का प्रयास करता है जिसकी हमें %1$s को बेहतर बनाने और सबको उपलब्ध कराने के लिए आवश्यकता है।</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">गोपनीयता सूचना</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s परिचय</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">संस्थापित खोज इंजन</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">सर्च इंजन चुनें</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">तयशुदा खोज इंजिन पुनर्बहाल करें</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ अन्य खोज इंजन जोड़ें</string>
+ <string name="preference_search_remove_title">खोज इंजन हटाएँ</string>
+ <string name="preference_search_remove">हटाएँ</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">अन्य सर्च इंजन जोड़ें</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">अपना पसंदीदा इंजन चुनें:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">खोज इंजन जोड़ें</string>
+
+ <string name="search_add_manually_name_hint">खोज इंजन का नाम</string>
+ <string name="search_add_manually_string">उपयोग के लिए खोज स्ट्रिंग</string>
+ <string name="search_add_manually_save">सहेजें</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">उदाहरण: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">नया खोज इंजन संकलित।</string>
+
+ <string name="search_add_error_empty_name">खोज इंजन का नाम दर्ज करें</string>
+ <string name="search_add_error_duplicate_name">एक मौजूदा खोज इंजन पहले से उस नाम का उपयोग कर रहा है।</string>
+
+ <string name="search_add_error_empty_search">खोज स्ट्रिंग दर्ज करें</string>
+
+ <string name="search_add_error_format">जाँचें कि खोज स्ट्रिंग उदाहरण संरूप से मेल खाती है</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">इनपुट मिटाएँ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">निरस्त करें</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">ब्राउज़िंग इतिहास मिटाएँ</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">खुले टैब: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">सुरक्षित संपर्क</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">लोड हो रहा है</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">वेबसाइट लोड हो गया</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">अधिक विकल्प</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">अन्य विकल्प का बटन</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">आगे मार्गनिर्देशित करें</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">वेबसाइट फिर से लोड करें</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">पीछे मार्गनिर्देशित करें</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">वेबसाइट लोड करना रोकें</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">पिछले ऐप पर वापस जाएँ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">अवरुद्ध किये गये ट्रैकर्स की संख्या</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">ट्रैकर्स को अवरुद्ध करें</string>
+
+ <string name="your_rights">आपके अधिकार</string>
+
+ <string name="external_app_prompt_title">किसी अन्य अनुप्रयोग में लिंक खोलें</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">आप इस लिंक को %2$s में खोलने के लिए %1$s को छोड़ सकते हैं।</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">एक ऐप ढूंढें जो लिंक खोल सकता है</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">आपके डिवाइस पर मौजूद कोई ऐप इस लिंक को खोलने में सक्षम नहीं है। आप एक एप के लिए %2$s की खोज हेतु %1$s को छोड़ सकते हैं जो कर सकता है।</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">निजी ब्राउज़िंग से बाहर निकलें?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s खत्म हुआ</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">खोले</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">सर्वर नहीं मिला</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">अपनी गोपनीयता को बढ़ाएँ</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">निजी ब्राउज़िंग को अगले स्तर तक ले जाएँ। विज्ञापन और अन्य सामग्री को ब्लॉक करें जो आपको सभी साइट पर ट्रैक कर सकता है और पृष्ट लोड समय को बढ़ा देता है।</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">आपका खोज, आपका रास्ता</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">कुछ अलग खोज रहे हैं? सेटिंग्स में दूसरा डिफ़ॉल्ट खोज इंजन चुने।</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">अपने मुख्य स्क्रीन पर शॉर्टकट जोड़ें</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">%1$s में अपनी पसंदीदा साइटों को तेज़ी से वापस जाएँ। बस %1$s मेनू से \&quot;मुख्य स्क्रीन पर जोड़ें\&quot; का चयन करें।</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">गोपनीयता एक आदत बनाये</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">%1$s को अपने तयशुदा ब्राउज़र के रूप में सेट करें और जब आप अन्य ऐप्स से वेबपृष्ठ खोलते हैं तब निजी ब्राउज़िंग के फायदे प्राप्त करें।</string>
+
+ <string name="firstrun_close_button">ठीक है, समझ गया!</string>
+ <string name="firstrun_skip_button">छोड़ें</string>
+ <string name="firstrun_next_button">अगला</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">जोड़ें</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">हाँ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">रद्द करें</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">नहीं</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">निजी ब्राउज़िंग सत्र</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">अधिसूचनाएँ आपको आपका %1$s सत्र एक टैप के साथ मिटाने देती हैं। आपको ऐप खोलने या ब्राउज़र में क्या चल रहा है, देखने की ज़रूरत नहीं है।</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">ब्राउज़िंग इतिहास मिटाएँ</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox डाउनलोड करें</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s Mozilla और अन्य योगदानकर्ताओं द्वारा बनाया गया स्वतंत्र और मुक्त स्रोत सॉफ्टवेयर है।]]></string>
+
+
+
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">उपयोगकर्ता नाम</string>
+ <string name="gv_prompt_password_hint">पासवर्ड</string>
+ <string name="gv_prompt_clear">साफ करें</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">सुरक्षित संपर्क</string>
+ <string name="security_popup_insecure_connection">असुरक्षित संपर्क</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">इसके द्वारा जाँचा गया: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">साइट सुरक्षा</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL पहले से मौजूद है</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">पृष्ठ में ढूँढें</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">पृष्ठ में ढूँढें</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%2$d में से %1$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">अगला परिणाम पाएँ</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">पिछला परिणाम पाएँ</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">पृष्ठ में ढूंढें ख़ारिज करें</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">डेस्कटॉप साइट के लिए आग्रह करें</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">डेस्कटॉप साइट</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL की नकल की गई</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">डेवलेपर औज़ार</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">ऐप्स में लिंक खोलें</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">विस्तृत</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">अध्ययन</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox संस्थापन और समय-समय पर अध्ययन कर सकता है.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">और अधिक जानें</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">परिवर्तन लागू हेतु एप्लीकेशन बंद हो जाएगा</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">हटाएँ</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">सक्रिय</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">पूर्ण</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">यूएसबी/वाई-फाई से दूरस्थ दोषसुधार</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">लिंक नए सत्र में खोलें</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">फिंगरप्रिंट चिन्ह</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">फिंगरप्रिंट अमान्य। पुनः प्रयास करें।</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">ऊँगली काफी जल्दी हटा ली गयी। पुनः प्रयास करें।</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">खोज सुझाव दिखाएँ?</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">नहीं</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">हाँ</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">कुछ खोज इंजन सुझाव नहीं दिखा सकते हैं।</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">निरस्त करें</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">साइट अनपेक्षित ढंग से पेश आ रहा है?\n ट्रैकिंग सुरक्षा बंद कर के देखें</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[आपके द्वारा अधिक इस्तेमाल किये साइटों तक एक टैप में पहुँचें %1$s मेन्यु > होम स्क्रीन में जोड़ें]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">प्रत्येक लिंक %1$s में खोलें\n %1$s को डिफ़ॉल्ट ब्राउज़र बनायें</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">स्वतः पूर्ण URLs उन साइटों के लिए जिन्हें आप अधिक इस्तेमाल करते हैं\n पता बार में किसी URL पर कुछ देर दबा कर रखें</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">कोई लिंक एक नये टैब में खोलें\n पृष्ठ पर किसी लिंक पर कुछ देर दबा कर रखें</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">प्रारंभ स्क्रीन पर सलाह बंद करें</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">नया टैब खोल दिया गया</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">बदलें</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">तुरंत नए टैब में लिंक पर जाएँ</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">ख़तरनाक और संदेहास्पद साइटों को ब्लॉक करें</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">रिपोर्ट किये हुए भ्रामक तथा अटैक करने वाली साइटें, मैलवेयर वाली साइटें, तथा अवांछित सॉफ्टवेयर वाली साइटों को ब्लॉक करें।</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">अपवाद</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">आपने इन वेबसाइटों के लिए सामग्री ब्लॉकिंग अक्षम कर दिया है।</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">हटाएँ</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">सभी वेबसाइटों को हटाएँ</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">कुकीज़ बाधित करें</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">क्या आप कुकीज़ को बाधित करना चाहेंगे?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">टैब क्रैश हो गया</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">क्षमा करें। हमें इस टैब के साथ कोई समस्या आ रही है।</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">एक निजी ब्राउज़र के तौर पर, हम इस टैब को कभी भी सहेज तथा दुबारा प्राप्त नहीं कर सकते हैं।</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">टैब बंद करें</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Mozilla को क्रैश रिपोर्ट भेजें</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">%s से ट्रैकर अवरूद्ध</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">सामग्री</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">विज्ञापन</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">सामाजिक</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">विश्लेषण</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">उन्नत ट्रैकिंग सुरक्षा</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">इस साइट के लिए सुरक्षा बंद हैं</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">इस साइट के लिए सुरक्षा चालू हैं</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">संपर्क सुरक्षित है</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">संपर्क सुरक्षित नहीं है</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">वापस जाएँ</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">हटाएँ</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">थीम</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">हल्का</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">गहरा</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">बैटरी सेवर द्वारा सेट करें</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">उपकरण थीम को फॉलो करें</string>
+
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-hr/strings.xml b/mobile/android/focus-android/app/src/main/res/values-hr/strings.xml
new file mode 100644
index 0000000000..d78d25298d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-hr/strings.xml
@@ -0,0 +1,1035 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Otkaži</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">U redu</string>
+
+ <string name="action_save">Spremi</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Pretraži ili upiši adresu</string>
+
+ <string name="teaser">Automatsko privatno pretraživanje.\nPretražuj. Obriši. Ponovi.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Povijest pregledavanja je obrisana.</string>
+ <string name="feedback_erase2">Povijest pregledavanja očišćena</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Povijest pretraživanja kartice je obrisana.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Pretraži %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Dijeli…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Prijavi problem sa stranicom</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Otvori u %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Otvori u…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Dodaj na početni zaslon</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Dodaj u prečace</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Ukloni iz prečaca</string>
+
+ <string name="menu_settings">Postavke</string>
+ <string name="menu_about">Informacije</string>
+ <string name="menu_help">Pomoć</string>
+ <string name="menu_rights">Vaša prava</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Blokirani programi za praćenje</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Isključivanje ovoga može riješiti probleme na nekim stranicama</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blokiranje sadržaja</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Isključi za ispravljanje nekih stranica</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Omogućuje %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Dijeli putem</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Obriši povijest pretraživanja</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Otvori</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Obriši i otvori</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Obriši</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Obriši povijest pretraživanja</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Obriši i otvori</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Obriši i otvori %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Pretraži u Focusu</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Pretraži u Klaru</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Pretraži u Focusu Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Pretraži u Focusu Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s daje ti kontrolu.</p>
+<p>Koristi ga kao privatni pretraživač:
+ <ul>
+ <li>traži i pretražuj direktno u aplikaciji</li>
+ <li>blokiraj programe za praćenje (ili ih omogući u postavkama)</li>
+ <li>izbriši sve kolačiće kao i povijest pretraživanja i pregledavanja</li>
+ </ul>
+</p>
+<p>%1$s je kreirala Mozilla. Naša misija je njegovanje zdravog i otvorenog interneta.<br/>
+<a href="%2$s">Saznaj više</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privatnost i sigurnost</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Praćenje, kolačići, izbori podataka</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Postavi zadanu tražilicu, automatsko ispunjavanje</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">O %1$su, pomoć</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Poboljšana zaštita od praćenja</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Web-sadržaj</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Prebacivanje između aplikacija</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Općenito</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Zadani preglednik, jezik</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Prikupljanje i uporaba podataka</string>
+
+ <string name="preference_category_search">Traži</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Prikaži prijedloge pretraživanja</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s slat će što pišeš u adresnoj traci tvojoj tražilici</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Zadano</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Tražilica</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Uključeno</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Isključeno</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Automatsko popunjavanje URL-a</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Za omiljene stranice</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Omogući da %s automatski dovršava više od 450 popularnih URL-ova u adresnoj traci.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Za stranice koje dodaš</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Omogući da %s automatski dovršava tvoje omiljene URL-ove.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Upravlja stranicama</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Upravlja stranicama</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Dodaj prilagođeni URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Tvoj popis za automatsko ispunjavanje:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Dodaj URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Dodaj prilagođeni URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Dodaj prilagođeni URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Dodaj poveznicu u automatsko ispunjavanje</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Kolačići i podatci stranica</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Izbori podataka</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Ukloni prilagođene URL-ove</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Saznaj više</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Dodaj i upravljaj prilagođenim automatski popunjenim URL-ovima.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL za dodati</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Zalijepi ili unesi URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Primjer: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Primjer: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Novi prilagođeni URL dodan.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Ukloni</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Ukloni</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Provjeri URL koji je upisan.</string>
+
+ <string name="preference_language">Jezik</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Zadano sustavom</string>
+
+ <string name="preference_category_privacy">Privatnost</string>
+ <string name="preference_privacy_block_ads">Blokiraj praćenje oglasa</string>
+
+ <string name="preference_privacy_block_ads_summary">Neki oglasi prate posjete stranicama, čak i kada ne klikneš na njih</string>
+ <string name="preference_privacy_block_analytics">Blokiraj analitičke programe za praćenje</string>
+ <string name="preference_privacy_block_analytics_summary">Koristi se za prikupljanje, analizu i mjerenje aktivnosti poput dodirivanja i pomicanja</string>
+ <string name="preference_privacy_block_social">Blokiraj društvene programe za praćenje</string>
+ <string name="preference_privacy_block_social_summary">Ugrađeno na web-stranice za praćenje tvojih posjeta i prikaz značajki kao što su gumbi za dijeljenje</string>
+ <string name="preference_privacy_block_content">Blokiraj druge programe za praćenje</string>
+ <string name="preference_privacy_block_content_summary2">Omogućavanje ove postavke može uzrokovati neočekivano ponašanje nekih stranica</string>
+ <string name="preference_privacy_category_cookies">Blokiraj kolačiće</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ne, hvala</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Samo blokiraj kolačiće za praćenje trećih strana</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Samo blokiraj kolačiće trećih strana</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blokiraj međustranične kolačiće</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Da, molim</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Koristi otisak prsta za otključavanje aplikacije</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Tajni način</string>
+
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Sakrij web-stranice kod prebacivanja između aplikacija i blokiraj snimanje zaslona.</string>
+
+ <string name="preference_category_security">Sigurnost</string>
+
+ <string name="preference_category_performance">Performansa</string>
+ <string name="preference_performance_block_webfonts">Blokiraj web fontove</string>
+
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Može prouzrokovati nestajanje ikona ili slika</string>
+
+ <string name="preference_performance_block_javascript">Blokiraj JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Stranice će se brže učitavati, ali možda će se i ponašati neočekivano</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Učini %1$s zadanim preglednikom</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Šalji podatke o korištenju</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Saznaj više</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla nastoji sakupljati samo onoliko koliko nam treba da osiguramo i poboljšamo %1$s za sve.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Politika privatnosti</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Informacije o licenciranju</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Biblioteke koje koristimo</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS biblioteke</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">O %1$su</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Instalirani pretraživači</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Odaberi tražilicu</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Vrati zadane pretraživače</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Dodaj pretraživač</string>
+ <string name="preference_search_remove_title">Ukloni pretraživače</string>
+ <string name="preference_search_remove">Ukloni</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Dodaj drugu tražilicu</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Odaberi omiljenu tražilicu:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Dodaj pretraživač</string>
+
+ <string name="search_add_manually_name_hint">Ime pretraživača</string>
+ <string name="search_add_manually_string">Tekst pretraživanja za korištenje</string>
+ <string name="search_add_manually_save">Spremi</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Primjer: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Novi pretraživač je dodan.</string>
+
+ <string name="search_add_error_empty_name">Unesi naziv tražilice</string>
+ <string name="search_add_error_duplicate_name">Instalirani pretraživač već koristi to ime.</string>
+
+ <string name="search_add_error_empty_search">Unesi tekst za pretraživanje</string>
+
+ <string name="search_add_error_format">Provjeri odgovara li tekst za pretraživanje primjeru</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Obriši unos</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Odbaci</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Obriši povijest pretraživanja</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Otvorenih kartica: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Sigurna veza</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Učitavanje</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Stranica učitana</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Više mogućnosti</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Gumb za više opcija</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Idi naprijed</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Osvježi web stranicu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Idi natrag</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Zaustavi učitavanje stranice</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Povratak na prethodnu aplikaciju</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Broj blokiranih programa za praćenje</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blokiraj programe za praćenje</string>
+
+ <string name="your_rights">Vaša prava</string>
+
+ <string name="external_app_prompt_title">Otvori poveznicu u drugoj aplikaciji</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Možeš ostaviti %1$s otvoren da bi poveznica bila otvorena u aplikaciji %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Pronađi aplikaciju koja može otvoriti poveznicu</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Nijedna aplikacija na tvojem uređaju ne može otvoriti ovu poveznicu. Možeš napustiti %1$s za pronalaženje aplikacije u %2$s.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Izaći iz privatnog pretraživanja?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s dovršen</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Otvori</string>
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Dodano u prečace!</string>
+
+ <string name="error_hostLookup_title">Poslužitelj nije pronađen</string>
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Zatvori</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Dobro došao, dobro došla u %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Brzo. Privatno. Bez ometanja.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Započni</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s nije poput drugih preglednika</string>
+
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Brišemo tvoju povijest kad zatvoriš program za dodatnu privatnost.</string>
+
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Postavi %1$s kao standardni progam za štićenje tvojih podataka sa svakom poveznicom koju otvoriš.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Postavi kao standardni preglednik</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Preskoči</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Osnaži svoju privatnost</string>
+
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Podigni privatno pregledavanje na novu razinu. Blokiraj oglase i drugi sadržaj koji te može pratiti među stranicama i usporiti njihovo učitavanje.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Tvoja pretraga na tvoj način</string>
+
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Tražiš nešto drugačije? Izaberi drugu zadanu tražilicu u postavkama.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Dodaj prečice na svoj početni zaslon</string>
+
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Brzo se vrati na svoje omiljene stranice u %1$su. Samo odaberi \&quot;Dodaj na početni zaslon\&quot; u %1$sovom izborniku.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Učini privatnost navikom</string>
+
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Postavi %1$s kao zadani preglednik i iskoristi prednosti privatnog pretraživanja kada otvaraš web-stranice iz drugih aplikacija.</string>
+
+ <string name="firstrun_close_button">U redu, razumijem!</string>
+ <string name="firstrun_skip_button">Preskoči</string>
+ <string name="firstrun_next_button">Dalje</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Dodaj</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">DA</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Otkaži</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NE</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Prečac će biti otvoren s onemogućenom poboljšanom zaštitom od praćenja</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sesija privatnog pretraživanja</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Obavijesti ti omogućuju brisanje sesije u %1$su jednim dodirom. Ne moraš otvoriti aplikaciju ili vidjeti što je otvoreno u tvom pregledniku.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Obriši povijest pretraživanja</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Preuzmi Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s je besplatan softver i otvorenog kôda, kojeg je stvorila Mozilla i njeni doprinositelji.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s ti je omogućen pod uvjetima licencije <a href="%2$s">Mozilla Public License</a> i drugih licencija otvorenog kôda.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Nemaš prava ni licencije za zaštitne znakove Zaklade Mozilla i drugih strana, uključujući nazive i logotipove Mozille, Firefoxa i %1$sa. Dodatne informacije mogu se pronaći <a href="%2$s">ovdje</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Dodatni izvorni kôd za %1$s dostupan je pod različitim besplatnim i otvorenim <a href="%2$s">licencijama</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s koristi i popise za blokiranje koje pruža Disconnect Inc. kao odvojene i nezavisne radove pod licencijom <a href="%2$s">GNU General Public License v3</a> i dostupnima <a href="%3$s">ovdje</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Korisničko ime</string>
+ <string name="gv_prompt_password_hint">Lozinka</string>
+ <string name="gv_prompt_clear">Očisti</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Sigurna veza</string>
+ <string name="security_popup_insecure_connection">Nesigurna veza</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Potvrdio: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Sigurnost stranice</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL već postoji</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Pronađi na stranici</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Pronađi na stranici</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d od %2$d</string>
+
+
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Pronađi sljedeći rezultat</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Pronađi prethodni rezultat</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Odbaci pretraživanje stranice</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Zatraži klasičnu stranicu</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Klasična stranica</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL je kopiran</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Alati za razvijatelje</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Otvori poveznice u aplikacijama</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Napredno</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Dozvole web-stranice</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Smanjivanje pojavljivanja dijaloga kolačića</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Uključeno</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Isključeno</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Smanjivanje pojavljivanja dijaloga kolačića</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Smanjivanje pojavljivanja dijaloga kolačića</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Uključeno za ovu stranicu</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Stranica trenutno nije podržana</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Isključeno za ovu stranicu</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Smanjivanje pojavljivanja dijaloga kolačića</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Isključeno za ovu stranicu</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Uključeno za ovu stranicu</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Odustani</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Zatraži podršku</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automatska reprodukcija</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Dozvoli na sljedeći način:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Idi na Android postavke</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Dodirni <b>Dozvole</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Idi na postavke</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Promijeni <b>%1$s</b> na UKLJUČENO]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Lokacija</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Obavijest</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Sadržaj kontroliran DRM-om</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Zatraži dozvolu</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blokirano</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Dozvoljeno</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blokirano od Androida</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Dozvoli zvuk i video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blokiraj samo zvuk</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Preporučeno</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blokiraj zvuk i video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studije</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox može s vremena na vrijeme instalirati i pokretati studije.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Saznaj više</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Aplikacija će se zatvoriti da bi se primijenile promjene</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Ukloni</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktivno</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Završeno</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Udaljeno otklanjanje grešaka putem USB-a/WiFi-ja</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Otključaj</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Potvrdi otiskom prsta</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Za nastavljanje trenutačne sesije programa možeš koristiti svoj otisak prsta.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Otvori poveznicu u novoj sesiji</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Ikona otiska prsta</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Otisak prsta nije prepoznat. Pokušaj ponovno.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Prst je prebrzo maknut. Pokušaj ponovno.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Prikazati prijedloge pretraživanja?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Za primanje prijedloga, %1$s mora slati tražilici ono što upisuješ u adresnu traku.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ne</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Da</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Neke tražili ne mogu prikazivati prijedloge.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Odbaci</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Stranica se ponaša neočekivano?\n
+ Pokušaj isključiti zaštitu od praćenja</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Omogući pristup često korištenim stranicama jednim dodirom%1$s Izbornik > Dodaj na početni zaslon]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Otvori svaku poveznicu u %1$su\n
+ Postavi %1$s kao zadani preglednik
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Automatski ispuni URL-ove često korištenih stranica\n
+ Dugo pritisni bilo koji URL u adresnoj traci
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Otvori poveznicu u novoj kartici\n
+ Dugo pritisni bilo koju poveznicu na stranici
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Isključi savjete na početnom zaslonu</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Otvorena nova kartica</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Prebaci</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Odmah prebaci na poveznicu u novoj kartici</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Blokiraj potencijalno opasne i zavaravajuće stranice</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blokiraj prijavljene zavaravajuće i napadačke stranice, stranice zaražene zlonamjernim softverom i stranice neželjenog softvera.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Način rada &quot;Samo HTTPS&quot;</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Automatski se pokušava povezati s web stranicama koristeći HTTPS šifriranje za povećanu sigurnost.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Iznimke</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Onemogućeno je blokiranje sadržaja za ove stranice.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Ukloni</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Ukloni sve stranice</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blokiraj kolačiće</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Želiš li blokirati kolačiće?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Kartica se srušila</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Oprosti. Imamo problem s ovom karticom.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Kao privatni preglednik, nikad ne spremamo povijest i ne možemo vratiti ovu karticu.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Zatvori karticu</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Pošalji Mozilli izvještaj o rušenju</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Programa za praćenje blokirano od %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Sadržaj</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Oglašavanje</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Društveno</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analitika</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Poboljšana zaštita od praćenja</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Za ovu web-stranicu, zaštite su ISKLJUČENE</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Za ovu web-stranicu, zaštite su UKLJUČENE</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Veza je sigurna</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Veza nije sigurna</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Programi za praćenje i skripte koje će se blokirati</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Idi natrag</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Ukloni</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Preimenuj</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Preimenuj</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Ime prečaca</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Spremljene i podijeljene slike &lt;b&gt;neće biti&lt;/b&gt; izbrisane kada izbrišeš %1$su povijest</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Svijetla</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Tamna</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Postavljeno u postavkama za štednju baterije</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Slijedi temu uređaja</string>
+
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Veza nije sigurna</string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Zatvori karticu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Zatvori skočni prozor</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Zaštićen/a si!</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Odbaci</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Dodirni ovdje za bacanje u smeće – povijest, kolačiće, sve – i počni ispočetka na novoj kartici.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Zatvori</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Programčić za pretraživanje</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Povijest pregledavanja je izbrisana! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Dodaj programčić na početni ekran</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Programčić je dodan na početni ekran</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-hsb/strings.xml b/mobile/android/focus-android/app/src/main/res/values-hsb/strings.xml
new file mode 100644
index 0000000000..89cb23f53a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-hsb/strings.xml
@@ -0,0 +1,1119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Přetorhnyć</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">W porjadku</string>
+
+ <string name="action_save">Składować</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Adresu pytać abo zapodać</string>
+
+ <string name="teaser">Awtomatiski priwatny modus.\nPřehladować. Zhašeć. Wospjetować.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Waša přehladowanska historija je so zhašała.</string>
+ <string name="feedback_erase2">Přehladowanska historija je so zhašała</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Přehladowanska historija rajtark je so zhašała.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Pytanje za %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Dźělić…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Sydłowy problem zdźělić</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">W %1$s wočinić</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Wočinić w…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Startowej wobrazowce přidać</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Zwjazanjam přidać</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Ze zwjazanjow wotstronić</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Nastajenja</string>
+ <string name="menu_about">Wo</string>
+ <string name="menu_help">Pomoc</string>
+ <string name="menu_rights">Waše prawa</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Přesćěhowaki zablokowane</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Hdyž to znjemóžnjeće, so někotre sydłowe problemy rozrisaja</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blokowanje wobsaha</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Znjemóžnić, zo byšće někotre sydła porjedźił</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Spěchowany wot %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Dźělić přez</string>
+
+ <string name="notification_erase_title_android_14">Přehladowansku historiju zhašeć?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Podótkńće so tuteje zdźělenki abo zhašejće ju, zo byšće swoju přehladowansku historiju wěsće zhašał.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Podótkńće so tuteje zdźělenki abo zjědźće přez ju, zo byšće swoju přehladowansku historiju wěsće zhašał.</string>
+
+ <string name="notification_erase_text">Přehladowansku historiju zhašeć</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Wočinić</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Zhašeć a wočinić</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Zhašeć</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Přehladowansku historiju zhašeć</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Zhašeć a wočinić</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">%1$s zhašeć a wočinić</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">W Focus pytać</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">W Klar pytać</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">W Focus Beta pytać</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">W Focus Nightly pytać</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s da was kontrolu wobchować.</p>
+<p>Wužiwajće jón jako priwatny wobhladowak:
+ <ul>
+ <li>Pytajće a přehladujće direktnje w nałoženju</li>
+ <li>Blokujće přesćěhowaki (abo aktualizujće nastajenja, zo byšće přesćěhowaki dowolił)</li>
+ <li>Zhašejće placki a pytansku a přehladowansku historiju</li>
+ </ul>
+</p>
+<p>%1$s so wot Mozilla wuwiwa. Naša misija je spěchowanje stroweho, wotewrjeneho interneta.<br/>
+<a href="%2$s">Dalše informacije</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Priwatnosć a wěstota</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Slědowanje, placki, datowe wuběry</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Standard nastajić, awtomatiske wudospołnjenje</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Wo %1$s, pomoc</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Polěpšeny slědowanski škit</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Webwobsah</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Přešaltowanje nałoženjow</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Powšitkowne</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Standardny wobhladowak, rěč</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Zběranje a wužiwanje datow</string>
+
+ <string name="preference_category_search">Pytać</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Pytanske namjety wobstarać</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s so na wašu pytawu pósćele, štož w adresowym polu zapodaće</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Standard</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Pytawa</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Zapinjeny</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Wupinjeny</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Awtomatiske wudospołnjenje URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Za najlubše sydła</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Zmóžnić, zo by %s wjace hač 450 woblubowanych adresow w adresowym polu wudospołnił.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Za sydła, kotrež přidawaće</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Zmóžnić, zo %s waše najlubše URL awtomatisce wudospołnja.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Sydła rjadować</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Sydła rjadować</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Swójsku adresu přidać</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Waša lisćina awtowudospołnjenjow:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL přidać</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Swójsku adresu přidać</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Swójski URL přidać</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Wotkaz za awtowudospołnjenje přidać</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Placki a sydłowe daty</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Datowy wuběr</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Swójske adresy wotstronić</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Dalše informacije</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Swójske adresy za wudospołnjenje přidać a rjadowác.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Adresa, kotraž ma so přidać</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Adresu zasadźić abo zapodać</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Přikład: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Přikład: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Nowa swójska adresa přidata.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Wotstronić</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Wotstronić</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Přepruwujće zapodatu adresu.</string>
+
+ <string name="preference_language">Rěč</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Systemowy standard</string>
+
+ <string name="preference_category_privacy">Priwatnosć</string>
+ <string name="preference_privacy_block_ads">Wabjenske přesćěhowaki blokować</string>
+ <string name="preference_privacy_block_ads_summary">Někotre wbajenje sydłowe wopyty slěduje, samo hdyž na wabjenje njekliknjeće</string>
+ <string name="preference_privacy_block_analytics">Analyzowe přesćěhowaki blokować</string>
+ <string name="preference_privacy_block_analytics_summary">Z tym so aktiwity kaž dótkanje a kulenje přez strony hromadźa, analyzuja a měrja</string>
+ <string name="preference_privacy_block_social">Socialne přesćěhowaki blokować</string>
+ <string name="preference_privacy_block_social_summary">Na sydłach zasadźene, zo bychu waše wopyty slědowali a funkcije kaž tłóčatka za dźělenje zwobraznili</string>
+ <string name="preference_privacy_block_content">Druhe wobsahowe přesćěhowaki blokować</string>
+ <string name="preference_privacy_block_content_summary2">To móže wjesć k tomu, zo so někotre strony njewšědnje zadźerža</string>
+ <string name="preference_privacy_category_cookies">Placki blokować</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ně, dźakuju so</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Jenož slědowace placki třećich poskićowarjow blokować</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Jenož placki třećich poskićowarjow</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Placki wjacorych sydłow blokować</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Haj, prošu</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Wužiwajće porstowy wotćišć, zo byšće nałoženje wotewrěł</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Wotewriće z pomocu porstoweho wotćišća, jeli sće zwjazanja přidał abo hdyž websydło je hižo w %s wočinjene.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Tarnowanje</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Webstrony schować, hdyž so nałoženja přepinaja a fotam wobrazowki zadźěwać.</string>
+
+ <string name="preference_category_security">Wěstota</string>
+
+ <string name="preference_category_performance">Wukon</string>
+ <string name="preference_performance_block_webfonts">Webpisma blokować</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Móže k tomu wjesć, zo symbole abo wobrazy faluja</string>
+
+ <string name="preference_performance_block_javascript">JavaScript blokować</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Strony so spěšnišo začitaja, móhli so wšak tež na njewočakowane wašnje zadźeržeć</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s jako standardny wobhladowak nastajić</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Wužiwanske daty pósłać</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Dalše informacije</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla so prócuje, jenož informacije hromadźić, z kotrymiž móžemy %1$s za kóždeho poskićić a polěpšić.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Zdźělenka priwatnosće</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Licencne informacije</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Biblioteki, kotrež wužiwamy</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS-biblioteki</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Wo %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Instalowane pytawy</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Pytawu wubrać</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Standardne pytawy wobnowić</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Dalšu pytawu přidać</string>
+ <string name="preference_search_remove_title">Pytawy wotstronić</string>
+ <string name="preference_search_remove">Wotstronić</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Dalšu pytawu přidać</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Wubjerće swoju preferowanu pytawu:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Pytawu přidać</string>
+
+ <string name="search_add_manually_name_hint">Mjeno pytawy</string>
+ <string name="search_add_manually_string">Pytanski wuraz, kotryž ma so wužiwać</string>
+ <string name="search_add_manually_save">Składować</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Přikład: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Nowa pytawa je so přidała.</string>
+
+ <string name="search_add_error_empty_name">Mjeno pytawy zapodać</string>
+ <string name="search_add_error_duplicate_name">Je hižo pytawa instalowana, kotraž tute mjeno wužiwa.</string>
+
+ <string name="search_add_error_empty_search">Pytanski wuraz zapodać</string>
+
+ <string name="search_add_error_format">Přepruwujće, hač pytanski wuraz přikładowemu formatej wotpowěduje</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Zapodaće wuprózdnić</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Zaćisnyć</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Přehladowansku historiju zhašeć</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Wočinjene rajtarki: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Wěsty zwisk</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Začitanje</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Websydło je so začitało</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Dalše nastajenja</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Tłóčatko dalšich nastajenjow</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Doprědka</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Websydło znowa začitać</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Wróćo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Čitanje websydła zastajić</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Wróćo k předchadnemu nałoženju</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Ličba zablokowanych přesćěhowakow</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Přesćěhowaki blokować</string>
+
+ <string name="your_rights">Waše prawa</string>
+
+ <string name="external_app_prompt_title">Wotkaz w druhim nałoženju wočinić</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Móžeće %1$s wopušćić, zo byšće tutón wotkaz w %2$s wočinił.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Nałoženje pytać, kotrež móže wotkaz wočinić</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Žane z nałoženjow na wašim graće njemóže tutón wotkaz wočinić. Móžeće %1$s wopušćić, zo byšće %2$s za nałoženjom přepytował.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Priwatny modus wopušćić?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s dokónčeny</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Wočinić</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Zwjazanjam přidate!</string>
+
+ <string name="error_hostLookup_title">Serwer namakany njeje</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Začinić</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Witajće k %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Spěšny. Priwatny. Žane wotwjedźenja.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Prěnje kroki</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s kaž druhe wobhladowaki njeje</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Zhašamy wašu historiju, hdyž nałoženje za přidatnu priwatnosć začinjeće.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Čińće %1$s k swojemu standardnemu wobhladowakej, zo byšće swoje dat z kóždym wotkaz, kotryž wočinjeće, škitał.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Jako standardny wobhladowak nastajić</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Přeskočić</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Zesylńće swoju priwatnosć</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Zběhńće priwatne přehladowanje na přichodnu wyšu runinu. Blokujće wabjenje a hinaši wobsah, kotryž móžeće přez sydła slědować a začitanske časy stronow podlěšić.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Waše pytanje kaž wy jo chceće</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Pytaće za něčim druhim? Wubjerće druhu stndardnu pytawu w nastajenjach.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Přidajće swojej startowej wobrazowce tastowe skrótšenki</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Wróćće so spěšnje k swojim najlubšim sydłam w %1$s. Wubjerće prosće „Startowej wobrazowce přidać“ z menija %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Přiwučće sej priwatnosć</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Nastajće %1$s jako swój standardny wobhladowak a zwužitkujće priwatne přehladowanje, hdyž webstrony z druhich nałoženjow wočinjeće.</string>
+
+ <string name="firstrun_close_button">W porjadku, sym zrozumił!</string>
+ <string name="firstrun_skip_button">Přeskočić</string>
+ <string name="firstrun_next_button">Dale</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Přidać</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">HAJ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Přetorhnyć</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NĚ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Zwjazanje so ze znjemóžnjenym polěpšenym šlědowanskim škitom wočini</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Priwatne posedźenje</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Zdźělenki wam zmóžnjeja, waše posedźenje %1$s z podótkom zhašeć. Njetrjebaće nałoženje wočinić abo hladać, štož we wašim wobhladowaku běži.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Přehladowansku historiju zhašeć</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox sćahnyć</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s je darmotna softwara wotewrjeneho žórła wot Mozilla a druhich sobuskutkowarjow.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s so pod wuměnjenjemi licency <a href="%2$s">Mozilla Public License</a> a druhimi licencami wotewrjeneho žórła k dispoziciji staja.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Njegarantuja wam žane prawa abo licency na wikowanskich znamjenjach załožby Mozilla Foundation abo někajkeje druheje strony, inkluziwnje mjena abo loga Mozilla, Firefox abo %1$s. Přidatne informacije namakaće <a href="%2$s">tu</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Přidatny žórłowy kod za %1$s je pod wšelakich druhich swobodnych <a href="%2$s">licencach</a> wotewrjeneho žórła k dispoziciji.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s tež blokowanske lisćiny poskićene wot Disconnect, Inc. jako separatne a njewotwisne dźěła pod licencu <a href="%2$s">General Public Licence v3</a> wužiwa, kotrež su <a href="%3$s">tu</a> k dispoziciji.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Wužiwarske mjeno</string>
+ <string name="gv_prompt_password_hint">Hesło</string>
+ <string name="gv_prompt_clear">Zhašeć</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Wěsty zwisk</string>
+ <string name="security_popup_insecure_connection">Njewěsty zwisk</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Přepruwowany wot: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Sydłowa wěstota</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL hižo eksistuje</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Na stronje pytać</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Na stronje pytać</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d z %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Přichodny wuslědk namakać</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Předchadny wuslědk namakać</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Na stronje pytać znjemóžnić</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Desktopowe sydło požadać</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Desktopowe sydło</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL kopěrowany</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Wuwiwarske nastroje</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Wotkazy w nałoženjach wočinić</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Rozšěrjene</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Sydłowe prawa</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Redukowanje plackowych chorhojow</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Zmóžnjeny</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Znjemóžnjeny</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Redukowanje plackowych chorhojow</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Wotpokazajće plackowe naprašowanja, zo byšće mjenje chorhojow widźał, jeli móžno.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Redukowanje plackowych chorhojow</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Za tute sydło ZMÓŽNJENY</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Sydło so tuchwilu njepodpěruje</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Za tute sydło ZNJEMÓŽNJENY</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Redukowanje plackowych chorhojow</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Za tute sydło ZNJEMÓŽNJENY</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Za tute sydło ZMÓŽNJENY</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Redukowanje plackowych chorhojow za %1$s zmóžnić?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Redukowanje plackowych chorhojow za %1$s znjemóžnić?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s placki sydła zhaša a budźe stronu aktualizować. Zhašenje wšěch plackow móže was přizjewić abo nakupowanske wozyčki wuprózdnić.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s móže plackowe naprašowanja awtomatisce wotpokazać.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Tute sydło so tuchwilu přez redukciju plackowych chorhojow. Chceće naš team prosyć, tute websydło přepruwować a pomoc w přichodźe přidać?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Přetorhnyć</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Pomoc požadać</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Naprašowanje na sydło pomocy je so wotpósłało.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Naprašowanje na sydło pomocy je so wotpósłało.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s pospytuje plackowe naprašowanja wotpokazować, zo by njepřihódne plackowe chorhoje zaćisnył.\n\nRjadujće nastajenja plackowych chorhojow w %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">nastajenja</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Awtomatiske wothraće</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Zo byšće to dowolił:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Dźiće k nastajenjam Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Podótkńće so zapiska <b>Berechtigungen</b> (Prawa)]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">K nastajenjam</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Zapinajće <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Městno</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Zdźělenka</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Wobsah wodźeny přez DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Wo dowolnosć so prašeć</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Zablokowany</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Dowoleny</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Přez Android zablokowane</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Awdio a widejo dowolić</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Jenož awdio blokować</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Doporučene</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Awdio a widejo blokować</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studije</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox móže hdys a hdys studije instalować a přewjesć.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Dalše informacije</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Nałoženje so skónči, zo bychu so změny wuskutkowali</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Wotstronić</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktiwny</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Dokónčene</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Zdalene pytanje zmylkow přez USB/WLAN</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Wotewrěć</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Wobkrućće z pomocu swojeho porstoweho wotćišća</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Móžeće swój porstowy wotćišć, zo byšće z aktualnym posedźenjom swojeho nałoženja pokročował.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Wotkaz w nowym posedźenju wočinić</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Symbol porstoweho wotćišća</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Porstowy wotćišće njeje so spóznał. Spytajće hišće raz.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Porst je so přespěšnje pohibnył. Spytajće hišće raz.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Pytanske namjety pokazać?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Zo byšće namjety dóstał, dyrbi %1$s wobsah, kotryž sće do adresoweho pola zapodał, na pytawu słać.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ně</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Haj</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Někotre pytawy njemóža namjety pokazać.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Zaćisnyć</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Sydło so na njewočakowane wašnje zadźerži?\nSpytajće slědowanski škit znjemóžnić</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Přistup k sydłam, kotrež najhusćišo wopytujeće, z jednym podótkom%1$s Meni > Startowej wobrazowce přidać]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Kóždy wotkaz w %1$s wočinić\n%1$s jako standardny wobhladowak nastajić</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">URL za sydła, kotrež najhusćišo wopytujeće, awtomatisce wudospołnić\nTłóčće dołho na URL w adresowym polu</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Wotkaz w nowym rajtarku wočinić\nTłóčće dołho na wotkaz na stronje</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Pokiwy na starrtowej wobrazowce znjemóžnić</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nowy rajtark je so wočinił</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Přepinać</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Połna wobrazowka so pokazuje</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Hnydom k wotkazej w nowym rajtarku přeńć</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Potencielnje strašne a wobšudne sydła blokować</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blokujće zdźělene wobšudne a nadpadowe sydła, škódne sydła a sydła z njewitanej softwaru.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Modus Jenož-HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Pospytuje z pomocu zaklučowanskeho protokola HTTPS za powyšenu wěstotu awtomatisce ze sydłami zwjazać.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Wuwzaća</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Sće blokowanje wobsaha za tute sydła znjemóžnił.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Wotstronić</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Wšě sydła wotstronić</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Placki blokować</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Chceće placki blokować?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Rajtark je spadnył</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Bohužel mamy problem z tutym rajtarkom.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Jako priwatny wobhladowak njeskładujemy ženje a njemóžemy tutón rajtark wobnowić.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Rajtark začinić</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Mozilla spadowu rozprawu pósłać</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Přesćěhowaki su zablokowane wot %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Wobsah</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Wabjenje</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Socialne syće</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analytika</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Polěpšeny slědowanski škit</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Škit je znjemóžnjeny za tute sydło</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Škit je zmóžnjeny za tute sydło</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Zwisk je wěsty</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Zwisk wěsty njeje</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Přesćěhowaki a skripty, kotrež so maja blokować</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Wróćo hić</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Wotstronić</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Přemjenować</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Přemjenować</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Mjeno zwjazanja</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Składowane a dźělene wobrazy &lt;b&gt;so nje&lt;/b&gt;zhašeja, hdyž historiju %1$s zhašeće.</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Drasta</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Swětły</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Ćmowy</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Po zalutowanskich nastajenjach baterije</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Na gratowu drastu dźiwać</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Tute sydło HTTPS njepodpěruje</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s pospytuje HTTPS-zwisk wužiwać, hdyžkuli je móžno za wěstotu.
+ <a href="%2$s">Dalše informacije</a> <br/><br/>
+ Změńće tute nastajenje w Nastajenja > Priwatnosć a wěstota > Wěstota.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Zwisk njewěsty</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ To móhło problem z konfiguraciju serwera być, abo něchtó pospytuje, serwer imitować. <br/><br/>
+
+ Jeli sće w zańdźenosći ze serwerom wuspěšnje zwjazany był, móže zmylk nachwilny być.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Něchtó móhł spytać, sydło za swoje wudać a pokročowanje móhło riskantne być.</label>
+ <br><br>
+ <label>%1$s <b>%2$s</b> njedowěrja, dokelž jeho certifikatowy wudawar je njeznaty, certifkat je samsignowany abo serwer korektne mjezycertifikaty njesćele.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Rajtark začinić</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Lepjene! Smy sydło při tym haćili was wuskušować. Podótkńće so kóždy čas tarča, zo byšće widźał, štož my blokujemy.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Wuskakowace wokno začinić</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Sće škitany!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Tute standardne nastajenja mócny škit poskićeja. Ale je lochko, nastajenja wašim specifiskim potrjebam přměrić.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Zaćisnyć</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Podótkńće so tu, zo byšće wšitko do papjernika přesunył – historiju, placki, wšitko – a startujće znowa na nowym rajtarku.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Začinić</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Pytanski asistent</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Přehladowanska historija je so zhašała! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Započńće swoje priwatne přehladowanske posedźenje a my budźemy přesćěhowaki a druhe škódne elementy při tutej składnosći blokować.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Přewostajamy wašemu priwatnemu modusej, ale startujće přichodny spěšnišo z asistentom %1$s na swojej startowej wobrazowce.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Asistent startowej wobrazowce přidać</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Asistent je so startowej wobrazowce přidał</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-hu/strings.xml b/mobile/android/focus-android/app/src/main/res/values-hu/strings.xml
new file mode 100644
index 0000000000..220f06b576
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-hu/strings.xml
@@ -0,0 +1,1121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Mégse</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Mentés</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Keressen, vagy adjon meg címet</string>
+
+ <string name="teaser">Automatikus privát böngészés.\nBöngészés. Törlés. Ismétlés.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">A böngészési előzmények törölve.</string>
+ <string name="feedback_erase2">Böngészési előzmények törölve</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">A lap böngészési előzményei törölve lettek.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Keresés erre: %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Megosztás…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Hibás webhely bejelentése</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Megnyitás ezzel: %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Megnyitás a következővel…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Kezdőképernyőhöz adás</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Hozzáadás a kezdőképernyőhöz</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Eltávolítás a kezdőképernyőről</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Beállítások</string>
+ <string name="menu_about">Névjegy</string>
+ <string name="menu_help">Súgó</string>
+ <string name="menu_rights">Az Ön jogai</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Blokkolt követők</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Ennek a kikapcsolása megoldhatja egyes webhelyek problémáit</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Tartalomblokkolás</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Kikapcsolás egyes webhelyek kijavításához</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">A motorháztető alatt: %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Megosztás ezzel</string>
+
+ <string name="notification_erase_title_android_14">Törli a böngészési előzményeket?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Koppintson vagy törölje ezt az értesítést a böngészési előzmények biztonságos törléséhez.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Koppintson vagy csúsztassa oldalra ezt az értesítést a böngészési előzmények biztonságos törléséhez.</string>
+
+ <string name="notification_erase_text">Előzmények törlése</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Megnyitás</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Törlés és megnyitás</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Törlés</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Böngészési előzmények törlése</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Törlés és megnyitás</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Törlés és a %1$s megnyitása</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Keresés a Focusban</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Keresés a Klarban</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Keresés a Focus Bétában</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Keresés a Focus Nightlyban</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>A %1$s az Ön kezébe adja az irányítást.</p>
+<p>Használja privát böngészőként:
+ <ul>
+ <li>Keressen és böngésszen közvetlenül az appban</li>
+ <li>Blokkolja a követőket (vagy frissítse a beállításokat az engedélyezéshez)</li>
+ <li>Törölje a sütiket és a böngészési előzményeket is</li>
+ </ul>
+</p>
+<p>A %1$s a Mozilla terméke. Küldetésünk az egészséges, nyílt Internet támogatása.<br/>
+<a href="%2$s">Tudjon meg többet</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Adatvédelem és biztonság</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Követés, sütik, adatküldések</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Beállítás alapértelmezettként, automatikus kiegészítés</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">A %1$s névjegye, súgó</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Fokozott követés elleni védelem</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Webtartalom</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Appok közti váltás</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Általános</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Alapértelmezett böngésző, nyelv</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Adatgyűjtés és -felhasználás</string>
+
+ <string name="preference_category_search">Keresés</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Keresési javaslatok kérése</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">A %1$s elküldi a címsávba írt szöveget a keresőszolgáltatásának</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Alapértelmezett</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Keresőszolgáltatás</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Be</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Ki</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Automatikus URL kiegészítés</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Leggyakrabban felkeresett oldalak esetén</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Engedélyezés, hogy a %s 450 népszerű URL-t automatikusan kiegészítsen a címsávban.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Hozzáadott oldalak esetén</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Engedélyezés, hogy a %s kiegészítse a kedvenc URL-jeit.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Oldalak kezelése</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Oldalak kezelése</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Egyéni URL hozzáadása</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Az automatikus kiegészítései:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL hozzáadása</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Egyéni URL hozzáadása</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Egyéni URL hozzáadása</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Hivatkozás hozzáadása az automatikus kiegészítéshez</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Sütik és oldaladatok</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Adatküldések</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Egyéni URL-ek eltávolítása</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">További tudnivalók</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Automatikusan kiegészített URL-ek hozzáadása és kezelése.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Hozzáadandó URL-ek</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Illessze be, vagy adja meg az URL-t</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Példa: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Példa: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Új egyéni URL hozzáadva.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Eltávolítás</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Eltávolítás</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Ellenőrizze a megadott URL-t.</string>
+
+ <string name="preference_language">Nyelv</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Rendszer alapbeállítása</string>
+
+ <string name="preference_category_privacy">Adatvédelem</string>
+ <string name="preference_privacy_block_ads">Hirdetéskövetők blokkolása</string>
+ <string name="preference_privacy_block_ads_summary">Néhány hirdetés követi az oldallátogatásokat, még akkor is, ha nem kattint a hirdetésekre</string>
+ <string name="preference_privacy_block_analytics">Analitikai követők blokkolása</string>
+ <string name="preference_privacy_block_analytics_summary">Arra használatosak, hogy begyűjtsék, elemezzék és mérjék az olyan tevékenységeket, mint az érintés vagy a görgetés</string>
+ <string name="preference_privacy_block_social">Közösségi oldalak követőinek blokkolása</string>
+ <string name="preference_privacy_block_social_summary">Az oldalakba vannak ágyazva, hogy kövessék a látogatásait, és megosztás gombokat jelenítsenek meg</string>
+ <string name="preference_privacy_block_content">Más tartalomkövetők blokkolása</string>
+ <string name="preference_privacy_block_content_summary2">Az engedélyezés néhány oldalon váratlan működést okozhat</string>
+ <string name="preference_privacy_category_cookies">Sütik blokkolása</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Köszönöm, nem</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Csak a harmadik féltől származó követők sütijeinek blokkolása</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Csak a harmadik féltől származó sütik törlése</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Webhelyek közötti sütik blokkolása</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Igen, kérem</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Ujjlenyomat használata az alkalmazás feloldásához</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Oldja fel a zárolást ujjlenyomattal, ha adott hozzá parancsikonokat, vagy ha egy webhely már meg van nyitva a %sban.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Rejtőzködés</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Weboldalak elrejtése alkalmazásváltáskor, és a képernyőkép készítés letiltása.</string>
+
+ <string name="preference_category_security">Biztonság</string>
+
+ <string name="preference_category_performance">Teljesítmény</string>
+ <string name="preference_performance_block_webfonts">Webes betűkészletek blokkolása</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Hiányzó ikonokat és képeket eredményezhet</string>
+
+ <string name="preference_performance_block_javascript">JavaScript blokkolása</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Az oldalak gyorsabban tölthetnek be, de nem várt módon is viselkedhetnek</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">A %1$s legyen az alapértelmezett böngésző</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Használati adatok elküldése</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Tudjon meg többet</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">A Mozilla arra törekszik, hogy csak azt gyűjtse, ami a %1$s fejlesztéséhez és támogatásához szükséges.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Adatvédelmi nyilatkozat</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Licencinformációk</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Az általunk használt programkönyvtárak</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Nyílt forráskódú programkönyvtárak</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">A %1$s névjegye</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Telepített keresőszolgáltatások</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Válasszon keresőszolgáltatást</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Alapértelmezett keresőszolgáltatások visszaállítása</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ További keresőszolgáltatás felvétele</string>
+ <string name="preference_search_remove_title">Keresőszolgáltatások eltávolítása</string>
+ <string name="preference_search_remove">Eltávolítás</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">További keresőszolgáltatás felvétele</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Válassza ki az előnyben részesített keresőszolgáltatását:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Keresőszolgáltatás hozzáadása</string>
+
+ <string name="search_add_manually_name_hint">Keresőszolgáltatás neve</string>
+ <string name="search_add_manually_string">Használandó keresőkifejezés</string>
+ <string name="search_add_manually_save">Mentés</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Példa: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Új keresőszolgáltatás hozzáadása.</string>
+
+ <string name="search_add_error_empty_name">Adja meg a keresőszolgáltatás nevét</string>
+ <string name="search_add_error_duplicate_name">Egy telepített keresőszolgáltatás már használja ezt a nevet.</string>
+
+ <string name="search_add_error_empty_search">Adja meg a keresési szöveget</string>
+
+ <string name="search_add_error_format">Ellenőrizze, hogy a keresési szöveg egyezik-e a példa formátumával</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Bemenet törlése</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Elutasítás</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Böngészési előzmények törlése</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Nyitott lapok: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Biztonságos kapcsolat</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Betöltés</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Weboldal betöltve</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">További beállítások</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">További beállítások gomb</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Navigálás előre</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Webhely újratöltése</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Navigálás visszafelé</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Webhely betöltésének leállítása</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Vissza az előző apphoz</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Blokkolt követők száma</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Követők blokkolása</string>
+
+ <string name="your_rights">Az Ön jogai</string>
+
+ <string name="external_app_prompt_title">Hivatkozás megnyitása egy másik appban</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Elhagyhatja a %1$st, hogy itt nyissa meg ezt a hivatkozást: %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Keressen egy appot, amely meg tudja nyitni a hivatkozást</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Az eszközön lévő appok egyike sem tudja megnyitni ezt a hivatkozást. Kiléphet a %1$sból, és kereshet egy megfelelőt itt: %2$s.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Kilép a privát böngészésből?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s kész</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Megnyitás</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Hozzáadva az indítóikonokhoz.</string>
+
+ <string name="error_hostLookup_title">A kiszolgáló nem található</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Bezárás</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Üdvözli a %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Gyors. Privát. Zavaró tényezők nélkül.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Kezdő lépések</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">A %1$s nem olyan, mint a többi böngésző</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">A fokozott adatvédelem érdekében töröljük az előzményeket, amikor bezárja az alkalmazást.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Legyen a %1$s az alapértelmezett, hogy minden megnyitott hivatkozásnál megvédje az adatait.</string>
+
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Beállítás alapértelmezett böngészőként</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Kihagyás</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Tuningolja fel az adatvédelmét</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Emelje a privát böngészést a következő szintre. Blokkolja a hirdetéseket, és más tartalmakat, amelyek követhetik az oldalak között, és lelassíthatják a betöltési sebességet.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Az Ön keresése, az Ön útja</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Valami mást keres? Válasszon másik alapértelmezett keresőszolgáltatást a Beállításokban.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Parancsikonok hozzáadása a kezdőképernyőhöz</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Térjen vissza gyorsan a kedvenc oldalaihoz a %1$sban. Csak válassza a „Hozzáadás a kezdőképernyőre” lehetőséget a %1$s menüből.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Váljon szokásává az adatvédelem</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Állítsa be a %1$st alapértelmezett böngészőként, és kapja meg a privát böngészés előnyeit, amikor weboldalakat nyit meg a többi appból.</string>
+
+ <string name="firstrun_close_button">Rendben, értem!</string>
+ <string name="firstrun_skip_button">Kihagyás</string>
+ <string name="firstrun_next_button">Következő</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">–</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Hozzáadás</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">IGEN</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Mégse</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NEM</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Az ikon fokozott követés elleni védelem nélkül fogja megnyitni az alkalmazást</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Privát böngészés</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Az értesítésekkel egy érintéssel törölheti a %1$s munkamenetét. Nem kell megnyitnia az alkalmazást, sem megnéznie, hogy mi fut benne.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Böngészési előzmények törlése</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox letöltése</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[A %1$s szabad és nyílt forráskódú szoftver, amelyet a Mozilla és más közreműködők készítenek.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[A %1$s a <a href="%2$s">Mozilla Public License</a> és más nyílt forráskódú licencek feltételei szerint érhető el.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Nem kap semmiféle jogot vagy licencet a Mozilla Alapítvány vagy bármely más fél védjegyeihez, köztük a Mozilla, Firefox vagy %1$s nevekhez vagy logókhoz. További információkat <a href="%2$s">itt</a> találhat.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[További %1$s forráskódok érhetők el különféle szabad szoftver vagy nyílt forráskódú <a href="%2$s">licencek</a> alatt.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[A %1$s a Disconnect, Inc. által biztosított blokkolási listákat használ, különálló munkaként, <a href="%2$s">GNU General Public Licence v3</a> alatt, ez <a href="%3$s">itt</a> érhető el.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Felhasználónév</string>
+ <string name="gv_prompt_password_hint">Jelszó</string>
+ <string name="gv_prompt_clear">Törlés</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Biztonságos kapcsolat</string>
+ <string name="security_popup_insecure_connection">Nem biztonságos kapcsolat</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Ellenőrizte: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Webhely biztonsága</string>
+ <string name="preference_autocomplete_duplicate_url_error">Az URL már létezik</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Keresés az oldalon</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Keresés az oldalon</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d ennyiből: %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Következő találat</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Előző találat</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Kereső elrejtése</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Asztali oldal kérése</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Asztali oldal</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL másolva</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Fejlesztői eszközök</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Hivatkozások megnyitása alkalmazásokban</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Speciális</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Oldalengedélyek</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Sütibannerek számának csökkentése</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Be</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Ki</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Sütibannerek számának csökkentése</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Lásson kevesebb bannert a sütikérések automatikus elutasításával, ha az lehetséges.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Sütibannerek számának csökkentése</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">BE ezen az oldalon</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">A webhely jelenleg nem támogatott</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">KI ezen az oldalon</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Sütibannerek számának csökkentése</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">KI ezen az oldalon</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">BE ezen az oldalon</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Bekapcsolja a sütibanner-csökkentést a következőnél: %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Kikapcsolja a sütibanner-csökkentést a következőnél: %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">A %1$s törli a webhely sütijeit, és frissíti az oldalt. Az összes süti törlésével kijelentkezhet, vagy kiürítheti a kosarait.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">A %1$s megpróbálhatja automatikusan elutasítani a sütikéréseket.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Ez az oldalt jelenleg nem támogatja a Sütibannerek számának csökkentését. Szeretné kérni, hogy csapatunk vizsgálja felül ezt a webhelyet, és támogassa a jövőben?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Mégse</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Támogatás kérése</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">A kérelem elküldve a támogatási webhelynek.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">A kérelem elküldve a támogatási webhelynek.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">A %1$s megpróbálja elutasítani a sütikéréseket, hogy eltüntesse a bosszantó sütibannereket.\n\nA sütibannerek beállításait a %2$s kezelheti.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">beállításokban</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automatikus lejátszás</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Az engedélyezés módja:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Ugorjon az Android beállításokhoz</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Koppintson az <b>Engedélyek</b> lehetőségre]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Ugrás a beállításokhoz</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Kapcsolja BE a következőt: <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Hely</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Értesítés</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-vezérelt tartalom</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Kérdezzen rá</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blokkolva</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Engedélyezve</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Az Android blokkolta</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Hang és videó engedélyezése</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Csak a hang blokkolása</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Ajánlott</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Hang és videó blokkolása</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Tanulmányok</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">A Firefox időről időre tanulmányokat telepíthet és futtathat.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">További tudnivalók</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Az alkalmazás kilép a módosítások alkalmazásához</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Eltávolítás</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktív</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Kész</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Távoli hibakeresés USB-n/Wi-Fi-n</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Feloldás</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Erősítse meg az ujjlenyomatával</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Ujjlenyomatával folytathatja az alkalmazás jelenlegi munkamenetét.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Hivatkozás megnyitása új munkamenetben</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Ujjlenyomat ikon</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Az ujjlenyomat nem ismerhető fel. Próbálja újra.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Az ujja túl gyorsan mozgott. Próbálja újra.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Keresési javaslatok megjelenítése?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> A javaslatok kéréséhez a %1$snak el kell küldenie a címsorba írt üzenetet a keresőszolgáltatásnak.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Nem</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Igen</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Néhány keresőszolgáltatás nem tud javaslatokat megjeleníteni.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Eltüntetés</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Az oldal váratlanul viselkedik?\nPróbálja kikapcsolni a követésvédelmet</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Érje el a leggyakrabban használt oldalakat egy koppintással%1$s Menü > Hozzáadás a kezdőképernyőhöz]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Nyisson meg minden hivatkozást a %1$sban\nÁllítsa be a %1$st alapértelmezett böngészőnek</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">URL-ek automatikus kiegészítése a leggyakrabban használt oldalaknál\nNyomja meg hosszan az URL-t a címsorban</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Nyissa meg a hivatkozást új lapon\nNyomja meg hosszan bármelyik hivatkozást az oldalon</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">A tippek kikapcsolása a kezdőképernyőn</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Új lap megnyitva</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Átváltás</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Belépés a teljes képernyős módba</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Azonnali átváltás az új fülre</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">A potenciálisan veszélyes és megtévesztő oldalak blokkolása</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">A bejelentett megtévesztő, támadó szándékú, rosszindulatú és kéretlen szoftvereket terjesztő oldalak blokkolása.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Csak HTTPS mód</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Automatikusan HTTPS titkosítási protokoll használatával próbál meg csatlakozni a webhelyekhez a fokozott biztonság érdekében.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Kivételek</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Letiltotta a tartalomblokkolást ezeken az oldalakon.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Eltávolítás</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Összes webhely eltávolítása</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Sütik blokkolása</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Szeretné blokkolni a sütiket?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">A lap összeomlott</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Sajnálom. Probléma van ezzel a lapon.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Privát böngészőként sosem mentjük el, és visszaállítani sem tudjuk ezt a lapot.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Lap bezárása</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Összeomlási jelentése elküldése a Mozillának</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Blokkolt nyomkövetők %s óta</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Tartalom</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Hirdetések</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Közösségi média</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analitika</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Fokozott követés elleni védelem</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">A védelem KI van kapcsolva ezen a webhelyen</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">A védelem BE van kapcsolva ezen a webhelyen</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">A kapcsolat biztonságos</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">A kapcsolat nem biztonságos</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Blokkolandó követők és parancsfájlok</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Ugrás vissza</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Eltávolítás</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Átnevezés</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Átnevezés</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Parancsikon neve</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">A mentett és megosztott képek &lt;b&gt;nem kerülnek&lt;/b&gt; törlésre, ha törli a %1$s előzményeit.</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Téma</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Világos</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Sötét</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Energiagazdálkodás által beállítva</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Az eszköz témájának követése</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Ez a webhely nem támogatja a HTTPS-t</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[A %1$s a nagyobb biztonság érdekében megpróbál HTTPS kapcsolatot használni, amikor az lehetséges.
+ <a href="%2$s">További tudnivalók</a> <br/><br/>
+ Ezt a beállítást itt módosíthatja: Beállítások > Adatvédelem és biztonság > Biztonság.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">A kapcsolat nem biztonságos</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Ezt okozhatja a kiszolgáló nem megfelelő beállítása, de az is lehet, hogy valaki megpróbál a kiszolgáló nevében fellépni.<br/><br/>
+ Ha korábban már sikeresen kapcsolódott ehhez a kiszolgálóhoz, akkor lehet, hogy a hiba csak ideiglenes.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Lehet, hogy valaki megpróbálja megszemélyesíteni az oldalt, és a folytatás kockázatos lehet.</label>
+ <br><br>
+ <label>A %1$s nem bízik a(z) <b>%2$s</b> oldalban, mert a tanúsítvány kibocsátója ismeretlen, a tanúsítvány önaláírt, vagy a kiszolgáló nem küldi el a helyes közbülső tanúsítványokat.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Lap bezárása</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Megvannak! Megakadályoztuk, hogy ez a webhely kémkedjen Ön után. Koppintson a pajzsra, hogy megtudja mit blokkoltunk.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Felugró ablak bezárása</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Védve van!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Ezek az alapértelmezett beállítások erős védelmet nyújtanak. De könnyű a beállításokat az Ön egyedi igényei szerint módosítani.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Eltüntetés</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Koppintson ide, hogy mindent töröljön – az előzményeket, a sütiket, mindent –, és tiszta lappal induljon.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Bezárás</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Keresési modul</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">A böngészési előzmények törölve! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Indítsa el a privát böngészési munkamenetet, és menet közben blokkoljuk a nyomkövetőket és az egyéb rossz dolgokat.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Hagyjuk, hogy elkezdje a privát böngészést, de legközelebb gyorsabban nekiláthat a kezdőképernyőn található %1$s modullal.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Modul hozzáadása a kezdőképernyőhöz</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Modul hozzáadva a kezdőképernyőhöz</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-hus/strings.xml b/mobile/android/focus-android/app/src/main/res/values-hus/strings.xml
new file mode 100644
index 0000000000..c06004d46f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-hus/strings.xml
@@ -0,0 +1,361 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <string name="action_cancel">Ka kuba\'</string>
+ <string name="action_ok">Ka bats\'uw</string>
+
+ <string name="action_save">Ka dheya\'</string>
+
+ <string name="urlbar_hint">Ka dhucha\' axi a le\' ka aliy</string>
+
+ <string name="teaser">Eyendhanél abal kit almáts tsinat. \nKit almáts. Ka pakuw. Ka tsab t\'aja\'.</string>
+
+ <string name="feedback_erase">Pakuwatits an dhuchlab xi in olnál jant\'oj a aliyamal.</string>
+
+ <string name="feedback_erase_custom_tab">Pakuwatits an dhuchlab xi in olnál jant\'oj a aliyamal.</string>
+
+ <string name="search_hint">Ka aliy %1$s</string>
+
+ <string name="menu_share">Ka buk\'uw…</string>
+
+ <string name="menu_report_site_issue">Ka olna\' max wa\'ats jún i odheltaláb al an xeklek</string>
+
+ <string name="menu_open_with_default_browser2">Ka japiy ti %1$s</string>
+
+ <string name="menu_open_with_a_browser2">Ka japiy ti…</string>
+
+ <string name="menu_add_to_home_screen">Ka punuw al an ok\'ox xeklek</string>
+
+ <string name="menu_settings">Ka t\'ojojoy</string>
+ <string name="menu_about">Tin kwenta an</string>
+ <string name="menu_help">Tolmixtaláb</string>
+ <string name="menu_rights">A awiltal</string>
+
+ <string name="menu_trackers_blocked_title">Ka mapchij in belil an alim</string>
+
+ <string name="menu_custom_tab_branding">Tolmidh k\'al %1$s</string>
+
+ <string name="share_dialog_title">Ka buk\'uw ti</string>
+
+ <string name="notification_erase_text">Ka pakuw an dhuchlab xi in olnál jant\'oj a aliyamal</string>
+
+ <string name="notification_action_open">Ka japiy</string>
+
+ <string name="notification_action_erase_and_open">Ka pakuw ani ka japiy</string>
+
+ <string name="shortcut_erase_short_label">Ka pakuw</string>
+
+ <string name="shortcut_erase_long_label">Ka pakuw an dhuchlab xi in olnál jant\'oj a aliyamal</string>
+
+
+ <string name="shortcut_erase_and_open_long_label">Ka pakuw ani ka japiy %1$s</string>
+
+ <string name="preference_privacy_and_security_header">Tsinataláb ani belkadhtaláb</string>
+
+ <string name="preference_privacy_and_security_summary">Alim, cookies, a k\'al</string>
+
+ <string name="preference_search_summary">An eyendhanél axi a takuyamal, kwetem kidhbax</string>
+
+ <string name="preference_mozilla_summary">Tin kwentaj %1$s, tolmixtaláb</string>
+
+ <string name="preference_category_web_content">Xi in kwa\'al an xeklek</string>
+
+ <string name="preference_category_switching_apps">Jalk\'unal an eyendhanél</string>
+
+ <string name="preference_category_general">Tin patál</string>
+
+ <string name="preference_category_data_collection_use">Axi in penál a k\'al ani jant\'ini\' tu eynal</string>
+
+ <string name="preference_category_search">Ka aliy</string>
+
+ <string name="preference_show_search_suggestions">Ti ucha\' jant\'oj axi a le\' ka aliy</string>
+ <string name="preference_show_search_suggestions_summary">%1$s ne\'ets kin abna\' patal axi a dhuchál ti al an alimtaláb</string>
+
+ <string name="preference_search_engine_default">Axi punudh ok\'ox</string>
+
+ <string name="preference_state_on">Ka lek\'wtsiy</string>
+
+ <string name="preference_state_off">Ka tepdha\'</string>
+
+ <string name="preference_subitem_autocomplete">Ka kwetém kidhban an URL</string>
+
+ <string name="preference_autocomplete_action_add">+ Ka punuw an URL axi tsab bijidh</string>
+
+ <string name="preference_autocomplete_title_add">Ka punuw an URL axi tsab bijidh</string>
+
+ <string name="custom_autocomplete_quick_add">Ka punuw an URL axi tsab bijidh</string>
+
+ <string name="preference_category_cookies">Cookies ani xi dhuchadh ti xeklek</string>
+
+ <string name="preference_category_data_choices">Eyendhanel tin kwentaj an xeklek</string>
+
+ <string name="preference_autocomplete_title_remove">Ka pakuw an URL axi tsa bijidh</string>
+
+ <string name="preference_autocomplete_learn_more">Ka exla\' más</string>
+
+ <string name="preference_autocomplete_custom_summary">Ka punuw ani ka t\'ojojoy an kwetém kidhbax URL.</string>
+
+ <string name="preference_autocomplete_add_title">URL axi ne\'ets ka punuw</string>
+
+ <string name="preference_autocomplete_add_hint">Ka ts\'ata\' o ka dhucha\' an URL</string>
+
+ <string name="preference_autocomplete_add_example2">Ejtil: mozilla.org</string>
+
+ <string name="preference_autocomplete_add_example">Ejtil: example.com</string>
+
+ <string name="preference_autocomplete_add_confirmation">It URL axi it bijidh, punudh.</string>
+
+ <string name="preference_autocomplete_menu_remove">Ka pakuw</string>
+
+ <string name="preference_autocomplete_action_remove_content_description">Ka pakuw</string>
+
+ <string name="preference_autocomplete_add_error">Ka dhucha\' juníl an URL axi a dhucha\'its ok\'ox.</string>
+
+ <string name="preference_language">Káwintaláb</string>
+ <string name="preference_language_systemdefault">Jant\'ini\' ok\'ox punudh an sistema</string>
+
+ <string name="preference_category_privacy">Tsinataláb</string>
+ <string name="preference_privacy_block_ads">Yab ka jila\' kit olchin axi nujuwáb</string>
+ <string name="preference_privacy_block_ads_summary">Wa\'ats axi in olnál an nujnél, ani in tsu\'tal jant\'oj a met\'al al an xeklek axi a tsa\'biyal, aba\' ij ka ni\'a\' eblim al an olchixtaláb</string>
+ <string name="preference_privacy_block_analytics">Ka kuba\' an alim axi u tsalpax</string>
+ <string name="preference_privacy_block_analytics_summary">Eynal abal kin tamkuy, kin met\'a\' ani kin lejbay an t\'ajbiláb, ejtil ka ni\'a\' ani ka tadhiy</string>
+ <string name="preference_privacy_block_social">Ka kuba\' an alim in k\'al an buk\'ul káwchik</string>
+ <string name="preference_privacy_block_social_summary">Punudh al an xeklek abal ka exláj jawa\' a tsa\'biyamal ani in tejwa\'medhal ejtil an ni\'omtaláb ka buk\'uw</string>
+ <string name="preference_privacy_block_content">Ka kuba\' an alim xi in aliyal jant\'o in kwa\'al an xeklek</string>
+ <string name="preference_privacy_block_content_summary2">Max ka lek\'wtsiy, wa\'ats i xeklek axi yab ne\'ets ka alwa\' tejwa\'mej</string>
+ <string name="preference_privacy_category_cookies">Ka kuba\' an cookies</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Ka kuba\' an cookies xi in k\'al pil jita\'</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Ka kuba\' an cookies xi in k\'al pil jita\'</string>
+
+ <string name="preference_security_biometric">Ka eyendha\' in t\'iplabil a ch\'uchub abal ka japiy a eyextal</string>
+
+ <string name="preference_privacy_secure_mode">Yab tejwa\'</string>
+ <string name="preference_privacy_stealth_summary">Ka tsina\' an xeklek tam k\'wajat a jalk\'uyal an eyendhanél.</string>
+
+ <string name="preference_category_security">k\'anidhtaláb</string>
+
+ <string name="preference_category_performance">Alwa\'taláb</string>
+ <string name="preference_performance_block_webfonts">Ka kuba\' an fuentes xi ti xeklek</string>
+ <string name="preference_performance_block_webfonts_summary">U awil ka k\'ibej anwalekláb ani an k\'ot\'biláb</string>
+
+ <string name="preference_performance_block_javascript">Ka kuba\' an JavaScript</string>
+ <string name="preference_performance_block_javascript_summary">An xeklek u awil ka dhubath tejwa\'mej, poj u awil yab ka tejwa\'mej alwa\'</string>
+
+ <string name="preference_default_browser2">Ka t\'aja\' %1$s ta eyendhanelil</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Ka ebna\' jay i eyendhanél a eyendhamal</string>
+
+ <string name="preference_mozilla_telemetry_summary">Ka exla\' más</string>
+
+ <string name="preference_mozilla_telemetry_summary2">Mozilla in t\'ajál abal kin pena\' expidh xi in yejenchal ani kin alwa\'medha\' %1$s abal patal.</string>
+
+ <string name="preference_privacy_notice">Tin kwentaj an tsinaxtaláb</string>
+
+ <string name="preference_about">Tin kwentaj an %1$s</string>
+
+ <string name="preference_search_installed_search_engines">An alimchik punudhits ta k\'al</string>
+
+ <string name="preference_search_restore">Ka punuw juníl an alimchik axi talakits ok\'chidh</string>
+
+ <string name="preference_search_add2">+ Ka punuw pil i alim</string>
+ <string name="preference_search_remove_title">Ka pakuw an alimchik</string>
+ <string name="preference_search_remove">Ka pakuw</string>
+
+ <string name="action_option_add_search_engine">Ka punuw an alim</string>
+
+ <string name="search_add_manually_name_hint">In bij an alim</string>
+ <string name="search_add_manually_string">Ka aliy an kawchik axi eynal</string>
+ <string name="search_add_manually_save">Dheya\'</string>
+
+ <string name="search_add_manually_example">Ejtil: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Punuwat jun i it alim</string>
+
+ <string name="search_add_error_empty_name">Ka dhucha\' in bij an it alim</string>
+ <string name="search_add_error_duplicate_name">Jun i alim in kwa\'alits jayetsej nix\'e\' xi bijláb</string>
+
+ <string name="search_add_error_empty_search">Ka punuw axi ne\'ets ka aliy</string>
+
+ <string name="search_add_error_format">Ka t\'aja\' ti kwentaj max axi a le\' ka dhucha\' ejtil an t\'iplab</string>
+
+ <string name="content_description_clear_input">Ka pakuw axi a dhuchamal</string>
+
+ <string name="content_description_dismiss_input">Yab ka t\'aja\' ti kwentaj</string>
+
+ <string name="content_description_erase">Ka pakuw an dhuchlab xi in olnál jant\'oj a aliyamal</string>
+
+ <string name="content_description_tab_counter">Xeklekchik xi japidh: %1$s</string>
+
+ <string name="content_description_lock">Paladh alwa\' ani k\'anidh</string>
+
+ <string name="accessibility_announcement_loading">K\'wajat ti t\'uchel</string>
+
+ <string name="accessibility_announcement_loading_finished">Tejwa\'its patal an xeklek</string>
+
+ <string name="content_description_menu">Eyendhanélchik</string>
+
+ <string name="content_description_forward">Kit k\'alej abal ok\'ox</string>
+
+ <string name="content_description_reload">Ka tsab pa\'baj an xeklek</string>
+
+ <string name="content_description_back">Kit wichiy ju\'taj a tsa\'biyamalits</string>
+
+ <string name="content_description_stop">Ka jila\' ka pa\'iy an xeklek</string>
+
+ <string name="content_description_customtab_exit">Kit wichiy al xi jún an eyendhanél</string>
+
+ <string name="content_description_trackers_blocked">&quot;Jáy i alim kubadh &quot;</string>
+
+ <string name="content_description_blocking_switch">Ka kuba\' an alimchik</string>
+
+ <string name="your_rights">A awiltal</string>
+
+ <string name="external_app_prompt_title">Ka japiy al pil i eyendhanél</string>
+ <string name="external_app_prompt">U awil kit kalej ti %1$s abal ka japiy ti %2$s.</string>
+ <string name="external_app_prompt_no_app_title">Ka aliy jun i eyendhanel axi kin ejtow kin japiy</string>
+ <string name="external_app_prompt_no_app">Ma ni jun i eyendhanél axi in kwa\'al a pat\'alil in jetowal kin japiy. U awil kit kalej ti %1$s abal ka aliy pil i eyendhanél abal %2$s.</string>
+ <string name="external_multiple_apps_matched_exit">¿A le\' kit kalej ti tsinat tsa\'bixtaláb?</string>
+
+ <string name="download_snackbar_finished">%1$s talbedhamej</string>
+
+ <string name="download_snackbar_open">Ka japiy</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Yab elan an pat\'ál ju\'taj dheyach an xeklek</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <string name="firstrun_defaultbrowser_title">Ka k\'adhbanchij in tsapik an tsinataláb</string>
+ <string name="firstrun_defaultbrowser_text2">Ka ne\'dha\' ebál an tsinat tsa\'bixtaláb. Ka kuba\' an olnom ani pilchik i tejwa\'medhomtaláb axi u awil ti tsinat met\'a\' al an xeklek, ani kin t\'aja\' abal an xeklekchik yab ka dhubat tejwa\'mej.</string>
+
+ <string name="firstrun_search_title">A alimtal jant\'in tat a le\'</string>
+ <string name="firstrun_search_text">¿A aliyal jant\'oj pil? Ka t\'ojojoy pil i alim.</string>
+
+ <string name="firstrun_shortcut_title">Ka punuw tin ok\'ox wal a pat\'alil, an bél xi kin taja\' kit ulits dhubat</string>
+ <string name="firstrun_shortcut_text">Kit wichiy dhubat al an xeklek xi a kulbetnál ti %1$s. Ka takuy \&quot;Ka punuw ti ok\'ox xeklek\&quot; o ti %1$s.</string>
+
+ <string name="firstrun_privacy_title">Kit xe\'tsin k\'al an tsinataláb</string>
+ <string name="firstrun_privacy_text">Ka t\'aja\' abal %1$s ka wenk\'on ta alimtal ani ka ko\'oy an alwa\'taláb abal kit tsa\'bixin tsinat tam ka japiy jun i xeklek al pil i eyendhanél.</string>
+
+ <string name="firstrun_close_button">¡U ejtiyal!</string>
+ <string name="firstrun_skip_button">Yab ka t\'aja\' ti kwentaj</string>
+ <string name="firstrun_next_button">Xi tal</string>
+
+ <string name="content_blocking_disabled">-</string>
+
+ <string name="dialog_addtohomescreen_action_add">Ka punuw</string>
+
+ <string name="dialog_addtohomescreen_action_cancel">Ka kuba\'</string>
+
+ <string name="notification_browsing_session_channel_name">Axe\' an tsa\'bixtaláb tsinat</string>
+
+ <string name="notification_browsing_session_channel_description">An tejwa\'medhomtaláb in jilál ka pakuw an t\'ojláb xi %1$s k\'al jún i takixtaláb. Yab in yejendhal ka japiy an eyendhanél o ka met\'a\' max k\'waja ti t\'ojnal al an tsa\'bixtaláb.</string>
+
+ <string name="tabs_tray_action_erase">Ka pakuw an dhuchlab xi in olnál jant\'oj a aliyamal</string>
+
+ <string name="download_firefox">Ka pa\'ba\' Firefox</string>
+
+ <string name="your_rights_content1">%1$s pel jún i eyendhanél japidh, ts\'ejkadh k\'al Mozilla ani k\'al pilchik i junkudh t\'ojnal.</string>
+
+
+
+
+ <string name="gv_prompt_username_hint">In bij an eyendhom</string>
+ <string name="gv_prompt_password_hint">Tsinat japixtal</string>
+ <string name="gv_prompt_clear">Ka k\'wit\'iy</string>
+
+ <string name="security_popup_secure_connection">Palat beletnadh</string>
+ <string name="security_popup_insecure_connection">Palat po yab beletnadh</string>
+ <string name="security_popup_security_verified">Met\'adh k\'al: %1$s</string>
+
+ <string name="site_security_icon_content_description">In k\'anix an xeklekchik</string>
+ <string name="preference_autocomplete_duplicate_url_error">An URL wa\'tits</string>
+
+ <string name="find_in_page">Ka aliy al an xeklek</string>
+
+ <string name="find_in_page_input">Ka aliy al an xeklek</string>
+
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <string name="accessibility_find_in_page_result">%1$d in k\'al %2$d</string>
+
+ <string name="accessibility_next_result">Ka met\'a\' axi ne\'ets ka tejwa\'mej talbél</string>
+ <string name="accessibility_previous_result">Ka met\'a\' axoi kalej ok\'ox</string>
+ <string name="accessibility_dismiss_find_in_page">Ka mapuy an alim</string>
+
+
+
+ <string name="preference_performance_request_desktop_site">Ka konoy abal ka eyendha\' ta mexajil</string>
+
+ <string name="custom_tab_copy_url_action">URL k\'ot\'bidh</string>
+
+ <string name="preference_advanced_summary">Eyendhanél abal an ts\'ejkom</string>
+
+ <string name="preference_category_advanced">Axi lej ebál in tsap</string>
+
+ <string name="preference_remote_debugging">An kw\'it\'ixtaláb ma ti USB/Wi-Fi</string>
+
+ <string name="biometric_auth_image_description">T\'ipodhtaláb in k\'al a ch\'uchub</string>
+
+ <string name="biometric_auth_not_recognized_error">In t\'iplabil a ch\'uchub yab exláj. Ka exa\' juníl</string>
+
+ <string name="biometric_auth_moved_too_quickly">A ch\'uchub ejláts tekedh adhik. Ka exa\' juníl.</string>
+
+ <string name="enable_search_suggestions_no">Ibaj</string>
+
+ <string name="enable_search_suggestions_yes">Aníts</string>
+
+ <string name="no_suggestions_message">Wa\'ats i alimtaláb axi yab in olnál jant\'oj u awil ka aliy.</string>
+
+ <string name="dismiss_no_suggestions_prompt_button">Yab ka t\'aja\' ti kwentaj</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <string name="tip_disable_tracking_protection">An xeklek yab u alwa\' t\'ojnal \n Ka exa\' ka kuba\' an k\'anix abal yab kit kedhmayat</string>
+
+ <string name="tip_add_to_homescreen">Ka ela\' k\'al jun i takaxtaláb an xeklek axi a lej eyendhál%1$s Takuxtaláb&gt; Ka punuw ti ok\'ox xeklek</string>
+
+ <string name="tip_set_default_browser">Ka japiy patal an ne\'dhom %1$s Ka t\'aja\' %1$s ta ok\'ox eyendhom</string>
+
+ <string name="tip_autocomplete_url">&quot;Ka eyendha\' an kweten putundhach URLs abal an xeklek axi a eyendal\n Ka ni\'a\' jawakits tum URLs ti alimtaláb\n &quot;</string>
+
+ <string name="tip_open_in_new_tab">Ka japiy jun i ne\'dhach al jun i it xeklek\n Ka jila\' ni\'adh jawakitsk\'ij tum ne\'dhach al jun i xeklek</string>
+
+ <string name="tip_disable_tips2">Ka tepdha\' an kawchix axi ti olchal ti ok\'ox xeklek</string>
+
+ <string name="preference_open_new_tab">Ka japiy al jún i it xeklek</string>
+
+ <string name="preference_exceptions_menu_remove">Ka pakuw</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-hy-rAM/strings.xml b/mobile/android/focus-android/app/src/main/res/values-hy-rAM/strings.xml
new file mode 100644
index 0000000000..180b0c57ce
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-hy-rAM/strings.xml
@@ -0,0 +1,634 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Չեղարկել</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Լավ</string>
+
+ <string name="action_save">Պահպանել</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Որոնեք կամ մուտքագրեք հասցե</string>
+
+ <string name="teaser">Ինքնաշխատ գաղտնի դիտարկում: \nԴիտարկել: Ջնջել: Կրկնել:</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Դիտարկումների պատմությունը ջնջվել է:</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Որոնել %1$s-ի համար</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Համօգտագործել</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Հաղորդել կայքի խնդրի մասին</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Բացել %1$s-ում</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Բացել հետևյալում՝</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Ավելացնել Տուն էկրանին</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Հավելել դյուրանցումներին</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Հանել դյուրանցումներից</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Կարգավորումներ</string>
+ <string name="menu_about">Մասին</string>
+ <string name="menu_help">Օգնություն</string>
+ <string name="menu_rights">Ձեր իրավունքները</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Արգել. հետագծումներ</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Սա անջատելով կարող են լուծվել կայքի որոշ խնդիրներ</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s-ի կողմից</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Համօգտագործել՝</string>
+
+ <string name="notification_erase_text">Ջնջել դիտարկումների պատմությունը</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Բացել</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Ջնջել ու Բացել</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Ջնջել</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Ջնջել դիտարկման պատմությունը</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Որոնել Focus-ում</string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Գաղտնիություն և անվտանգություն</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Վեբ բովանդակություն</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Հավելվածների փոխարկում</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Հիմնական</string>
+
+ <string name="preference_category_search">Որոնում</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Լռելյայն</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Որոնիչ</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Միաց.</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Անջ.</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL ինքնալրացում</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Ձեր ավելացրած կայքերի համար</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Կառավարել կայքերը</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Կառավարել կայքերը</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Հավելել հարմարեցված URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Ձեր ինքնալրացման ցուցակը.</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Ավելացնել URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Հավելել հարմարեցված URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Ավելացնել հարմարեցված URL</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">ՀԵռացնել հարմարեցված URL-ները</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Իմանալ ավելին</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Ավելացնել և կառավարել հարմարեցված ինքնալրացվող URL-ները:</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL՝ ավելացնելու համար</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Փակցրեք կամ մուտքագրեք URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Օրինակ՝ mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Օրինակ՝ example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Նոր հարմարեցված URL է ավելացվել:</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Հեռացնել</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Հեռացնել</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Ստուգեք մուտքագրված URL-ն:</string>
+
+ <string name="preference_language">Լեզուն</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Համակարգայինը</string>
+
+ <string name="preference_category_privacy">Գաղտնիություն</string>
+ <string name="preference_privacy_block_ads">Արգելափակել գովազդային հետագծումները</string>
+ <string name="preference_privacy_block_ads_summary">Որոշ գովազդներ հետևում են կայքի այցելուներին, եթե անգամ չեք սեղմում գովազդին</string>
+ <string name="preference_privacy_block_analytics">Արգելափակել վերլուծական հետագծումները</string>
+ <string name="preference_privacy_block_analytics_summary">Օգտագործվում է հավաքելու, վերլուծելու և ակտիվությունը չափելու համար, ինչպես օրինակ՝ հպումը և գլորումը:</string>
+ <string name="preference_privacy_block_social">Արգելափակել սոցիալական հետագծումները</string>
+ <string name="preference_privacy_block_social_summary">Ներկառուցված կայքերում՝ հետևելուհ ամար ձեր այցելուներին և ցուցադրելու համար գործառությունը, ինչպես օրինակ՝ կոճակների համօգտագործում</string>
+ <string name="preference_privacy_block_content">Արգելափակել այլ բովանդակության հետագծումները</string>
+ <string name="preference_privacy_block_content_summary2">Միացնելու դեպքում որոշ էջեր կարող են անսպասելի վարք ցուցադրել</string>
+ <string name="preference_privacy_category_cookies">&quot;Արգելափակել cookie-ները &quot;</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ոչ, շնորհակալ եմ</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Արգելափակել 3-րդ կողմի cookie-ները հիմա</string>
+
+ <string name="preference_privacy_should_block_cookies_yes_option2">Այո, խնդրում եմ</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Թաքնված</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Թաքցնել վեբ էջերը հավելվածները փոխանջատելիս</string>
+
+ <string name="preference_category_security">Անվտանգություն</string>
+
+ <string name="preference_category_performance">Արդյունավետություն</string>
+ <string name="preference_performance_block_webfonts">Արգելափակել վեբ տառատեսակները</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Կարող է հանգեցնել պատկերակների և պատկերների բացակայության</string>
+
+ <string name="preference_performance_block_javascript">Արգելափակել JavaScript-ը</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Էջերը կարող են ավելի արագ բեռնվել, բայց նաև կարող են իրենց անսպասելի պահել:</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Դարձնել %1$s-ը հիմնական դիտարկիչ</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Ուղարկել օգտագործման տվյալները</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Իմանալ ավելին</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla-ն ձգտում է հավաքել միայն այն, ինչ պետք է՝ %1$s-ը լավարկելու համար:</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Գաղտնիության ծանուցում</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Արտոնագրի տեղեկություն</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s-ի մասին</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Տեղադրված որոնիչներ</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Վերականգնել լռելյայն որոնիչները</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Ավելացնել այլ որոնիչ</string>
+ <string name="preference_search_remove_title">Հեռացնել որոնիչները</string>
+ <string name="preference_search_remove">Հեռացնել</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Ավելացնել այլ որոնիչ</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Ավելացնել որոնիչ</string>
+
+ <string name="search_add_manually_name_hint">Որոնել որոնիչ</string>
+ <string name="search_add_manually_string">Որոնել տողը՝ օգտագործելու համար</string>
+ <string name="search_add_manually_save">Պահպանել</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Օրինակ՝ example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Նոր որոնիչը ավելացվել է:</string>
+
+ <string name="search_add_error_empty_name">Մուտքագրեք որոնիչի անունը</string>
+ <string name="search_add_error_duplicate_name">Տեղադրված որոնիչը արդեն օգտագործում է այդ անունը:</string>
+
+ <string name="search_add_error_empty_search">Մուտքագրել որոնման տողը</string>
+
+ <string name="search_add_error_format">Ստուգեք, որոնման տողը համապատասխանում է օրինակի ձևաչափին</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Մաքրել ներածումը</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Բաց թողնել</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Ջնջել դիտարկման պատմությունը</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Բաց ներդիրներ. %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Անվտանգ կապակցում</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Բեռնում</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Կայքը բեռնվել է</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Լր. ընտրանքներ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Ուղղորդել առաջ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Կրկին բեռնել կայքը</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Ուղղորդել հետ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Կանգնեցնել էջի բեռնումը</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Վերադառնալ նախորդ հավելվածին</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Արգելափակել հետագծումները</string>
+
+ <string name="your_rights">Ձեր իրավունքները</string>
+
+ <string name="external_app_prompt_title">Բացել հղումը այլ հավելվածով</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Կարող եք բաց պահել %1$s-ը և բացել այս հղումը %2$s-ում:</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Գտեք հավելված, որը կարող է բացել հղումը</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ձեր սարքի ոչ մի հավելված չի կարողանում բացել այս հղումը: Դուք կարող եք թողնել %1$s-ը՝ որոնելու համար %2$s-ում այն հավելվածը, որը կարող է այն բացել:</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Փակե՞լ Գաղտնի դիտարկումը</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s ավարտվել է</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Բացել</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Սպասարկիչը չի գտնվել</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Փակել</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Բաց թողնել</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Հզորացրեք ձեր գաղտնիությունը</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Տարեք գաղտնի դիտարկումը հաջորդ մակարդակ: Արգելափակեք գովազդները և այլ բովանդակություն, որը կարող է հետագծել ձեզ կայքերում և արագացրեք էջի բեռնումը:</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Ձեր որոնումը, ձեր ընտրությունը</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Այլ բա՞ն եք փնտրում: Ընտրեք այլ որոնիչ Կարգավորումներում:</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Հավելել դյուրանցումները տուն էկրանին:</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Արագորեն վերադարձեք ձեր ընտրյալ կայքերին %1$s-ում: Պարզապես ընտեք\&quot;Հավելել Տուն էկրանին\&quot; %1$s ցանկից:</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Գայղտնիությունը դարձրեք սովորույթ</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Կայեք %1$s-ը որպես հիմնական դիտարկիչ և ստացեք գաղտնի դիտարկման բոլոր առավելությունները՝ այլ հավելվածներից վեբ էջեր բացելիս:</string>
+
+ <string name="firstrun_close_button">Լավ, հասկացա:</string>
+ <string name="firstrun_skip_button">Բաց թողնել</string>
+ <string name="firstrun_next_button">Հաջորդը</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Ավելացնել</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ԱՅՈ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Չեղարկել</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">ՈՉ</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Գանղտնի դիտարկման աշխատաշրջան</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Ծանուցումները հնարավորություն են տալիս ջնջել ձեր %1$s աշխատարջանը մեկ հպումով: Կարիք չկա բացել հավելվածը կամ տեսնել, թե ինչ է աշխատեցվում դիտարկիչում:</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Ջնջել դիտարկման պատմությունը</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Ներբեռնել Firefox-ը</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s-ը անվճար և բաց կոդով ծրագիր է Mozilla-ի և այլ մասնակիցների կողմից:]]></string>
+
+
+
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Օգտվողի անուն</string>
+ <string name="gv_prompt_password_hint">Գաղտնաբառ</string>
+ <string name="gv_prompt_clear">Մաքրել</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Անվտանգ կապակցում</string>
+ <string name="security_popup_insecure_connection">Ոչ անվտանգ կապակցում</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Ստուգված է՝ %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Կայքի անվտանգությունը</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL-ն արդեն գոյություն ունի</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Գտնել էջում</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Գտնել էջում</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Գտնել հաջորդ արդյունքը</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Գտնել նախորդ արդյունքը</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Պահանջել աշխատասեղանային կայքը</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Աշխատասեղանի տարբերակ</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL-ն պատճենվեց</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Մշակողի գործիքներ</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Բացել հղումները հավելվածներում</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Ընդլայնված</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Կայքի թույլտվություններ</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Միաց.</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Անջ.</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Չեղարկել</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">կարգավորումներ</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Ինքնանվագարկում</string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Անցնել կարգավորումներին</string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Տեսախցիկ</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Խոսափող</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Գտնվելու վայր</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Ծանուցումներ</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-ով կառավարվող բովանդակություն</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Խնդրել թույլտվություն</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Արգելափակված</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Թույլատրված</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Արգելափակված Android-ի կողմից</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Թույլատրել ձայնանյութը և տեսանյութը</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Արգելափակել միայն ձայնանյութը</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Խորհուրդ է տրվում</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Արգելափակել ձայնանյութը և տեսանյութը</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Իմանալ ավելին</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Հեռացնել</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Բացել հղումը նոր աշխատաշրջանում</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Նոր ներդիրը բացվեց</string>
+
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Հեռացնել</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Հեռացնել բոլոր վեբ-կայքերը</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Բովանդակություն</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Գովազդ</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Հեռացնել</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Վերանվանել</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Վերանվանել</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Ոճ</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Լուսավոր</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Մուգ</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Հետևել սարքի ոճին</string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Փակել ներդիրը</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Փակել ելնող պատուհանը</string>
+
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Բաց թողնել</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Փակել</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Ավելացրեք վիջեթ հիմնական էկրանին</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Վիջեթն ավելացվել է հիմնական էկրանին</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ia/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ia/strings.xml
new file mode 100644
index 0000000000..a5b2feab06
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ia/strings.xml
@@ -0,0 +1,1123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Cancellar</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Salvar</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Insere un adresse o face un recerca</string>
+
+ <string name="teaser">Navigation private automatic.\nNaviga. Elimina. Repete.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Tu chronologia de navigation ha essite eliminate.</string>
+ <string name="feedback_erase2">Chronologia de navigation clarate</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Le chronologia de navigation del scheda ha essite eliminate.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Cercar %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Compartir…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Reportar problema del sito</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Aperir in %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Aperir in…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Adder al pagina initial</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Adder al vias breve</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Remover del vias breve</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Parametros</string>
+ <string name="menu_about">A proposito</string>
+ <string name="menu_help">Adjuta</string>
+ <string name="menu_rights">Tu derectos</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Traciatores blocate</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Disactivar isto pote remediar alicun problemas del sito</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blocage de contentos</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Clauder pro remediar alcun sitos</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Potentiate per %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Compartir con</string>
+
+ <string name="notification_erase_title_android_14">Eliminar le chronologia de navigation?</string>
+
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tocca o clara iste aviso pro cancellar con securitate tu chronologia de navigation.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tocca o glissa iste aviso pro cancellar con securitate tu chronologia de navigation.</string>
+
+ <string name="notification_erase_text">Eliminar le chronologia de navigation</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Aperir</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Eliminar e aperir</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Eliminar</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Eliminar le chronologia de navigation</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Eliminar e aperir</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Eliminar e aperir %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Cercar in Focus</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Cercar in Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Cercar in Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Cercar in Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s te pone al commando.</p>
+<p>Usa lo como un navigator private:
+ <ul>
+ <li>Cerca e naviga directemente in le app</li>
+ <li>Bloca le traciatores (o actualisa le parametros pro permitter traciatores)</li>
+ <li>Eliminar pro deler le cookies e tamben le chronologia de recercas e de navigation</li>
+ </ul>
+</p>
+<p>%1$s es producite per Mozilla. Nostre mission es promover un Internet san e aperte.<br/>
+<a href="%2$s">Pro saper plus</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Confidentialitate &amp; securitate</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Traciamento, cookies, electiones de datos</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Definir option base, autocompletion</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">A proposito de %1$s, adjuta</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Protection antitraciamento reinfortiate</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Contento de web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Navigation trans le applicationes</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">General</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Navigator, lingua predefinite</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Colligimento e uso de datos</string>
+
+ <string name="preference_category_search">Cercar</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Obtener suggestiones de recerca</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s inviara a tu motor de recerca lo que tu scribe in le barra de adresse</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Predefinite</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Motor de recerca</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Activar</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Inactive</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Auto-completamento del URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Pro le sitos le plus visitate</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Activa pro consentir a %s de auto-completar plus de 450 URLs popular in le barra de adresses.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Pro le sitos que tu adde</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Activar pro que %s completa automaticamente tu URLs favorite.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Gerer le sitos</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Gerer le sitos</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Adder URL personalisate</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Tu lista auto-completate:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Adder URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Adder URL personalisate</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Adder URL personalisate</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Adde ligamine pro autocompletar</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies e datos de sitos</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Selectiones de datos</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Remover URLs personalisate</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Saper plus</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Adde e gere le complementamento personalisate del URLs.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL a adder</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Colla o insere le URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Exemplo: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Exemplo: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Nove URL personalisate addite.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Remover</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Remover</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Clicca duple le URL que tu insereva.</string>
+
+ <string name="preference_language">Lingua</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Valor predefinite per le systema</string>
+
+ <string name="preference_category_privacy">Confidentialitate</string>
+ <string name="preference_privacy_block_ads">Blocar le traciatores de publicitate</string>
+ <string name="preference_privacy_block_ads_summary">Alcun publicitates tracia le visitas al sitos, anque si tu non los clicca</string>
+ <string name="preference_privacy_block_analytics">Blocar le traciatores analytic</string>
+ <string name="preference_privacy_block_analytics_summary">Usate pro colliger, analysar e mensurar activitates como toccar e rolar</string>
+ <string name="preference_privacy_block_social">Blocar le traciatores social</string>
+ <string name="preference_privacy_block_social_summary">Integrate al sitos pro traciar tu visitas e monstrar functionalitates como buttones de compartir</string>
+ <string name="preference_privacy_block_content">Blocar le altere traciatores de contento</string>
+ <string name="preference_privacy_block_content_summary2">Activar isto pote facer le paginas se comportar de maniera inexpectate</string>
+ <string name="preference_privacy_category_cookies">Blocar le cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">No gratias</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Blocar solo le cookies traciator de tertie partes</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Bloca solo le cookies de tertie partes</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blocar le cookies inter sitos</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Si per favor</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Usa le impression digital pro disblocar le application</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Disbloca per le dactylogramma si tu addeva le vias breve o quando un sito web jam es aperte in %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Modo furtive</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Celar le paginas web quando on cambia de applicationes e blocar le prisa de instantaneos.</string>
+
+ <string name="preference_category_security">Securitate</string>
+
+ <string name="preference_category_performance">Rendimento</string>
+ <string name="preference_performance_block_webfonts">Blocar le typos de character de web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Pote resultar in icones o imagines mancante</string>
+
+ <string name="preference_performance_block_javascript">Blocar JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Le paginas pote cargar se plus rapidemente, mais pute alsi comportar se in maniera inattendite</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Facer de %1$s tu navigator predefinite</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Inviar datos de uso</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Saper plus</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla se effortia a colliger solmente le informationes necessari pro fornir e meliorar %1$s pro totes.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Notification de confidentialitate</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Informationes de licentias</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliothecas que nos usa</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Bibliothecas OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">A proposito de %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Motores de recerca installate</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Elige motor de recerca</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Restaurar le motores de recerca predefinite</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Adder un altere motor de recerca</string>
+ <string name="preference_search_remove_title">Remover le motores de recerca</string>
+ <string name="preference_search_remove">Remover</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Adde un altere motor de recerca</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Elige tu motor preferite:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Adder le motor de recerca</string>
+
+ <string name="search_add_manually_name_hint">Nomine del motor de recerca</string>
+ <string name="search_add_manually_string">Catena de recerca a usar</string>
+ <string name="search_add_manually_save">Salvar</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Exemplo: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Nove motor de recerca addite.</string>
+
+ <string name="search_add_error_empty_name">Insere le nomine del fila de recerca</string>
+ <string name="search_add_error_duplicate_name">Un motor de recerca installate usa jam ille nomine.</string>
+
+ <string name="search_add_error_empty_search">Insere un fila de characteres pro le recerca</string>
+
+ <string name="search_add_error_format">Verifica que le fila de recerca concorda con le formato de exemplo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Vacuar le texto inserite</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Dimitter</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Elimina le chronologia de navigation</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Schedas aperite: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Connexion secur</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Cargante</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Sito web cargate</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Altere optiones</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Button altere optiones</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Naviga in avante</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Recarga le sito web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Naviga a retro</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Cessa le cargamento del sito web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Retorna al application previe</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Numero de traciatores blocate</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Bloca le traciatores</string>
+
+ <string name="your_rights">Tu derectos</string>
+
+ <string name="external_app_prompt_title">Aperir le ligamine in un altere application</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Tu pote exir de %1$s e aperir le ligamine in %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Cercar un application capace de aperir le ligamine</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Nulle application de tu apparato es capace de aperir iste ligamine. Tu pote exir de %1$s pro cercar in %2$s un application capace de facer lo.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Exir del navigation private?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s finite</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Aperir</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Addite a vias breve!</string>
+
+ <string name="error_hostLookup_title">Servitor non trovate</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Clauder</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Benvenite a %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rapide. Private. Nulle distractiones.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Comenciar</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s non es como altere navigatores</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Nos clara tu chronologia quando tu claude le app, pro un confidentialitate extra.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Rende %1$s tu predefinite pro proteger tu datos con cata ligamine tu aperi.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Eliger como navigator predefinite</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Saltar</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Reinfortia tu confidentialitate</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Porta le navigation private al nivello superior. Bloca publicitates e altere contentos que pote traciar te per le sitos e relentar le tempore de carga del paginas.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Le recerca a tu gusto</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Cerca tu qualcosa differente? Elige un altere motor de recerca in le parametros.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Adde accessos directe a tu schermo initial</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Retorna a tu sitos favorite in %1$s rapidemente. Selige simplemente \&quot;Adder a tu schermo initial\&quot; ab le menu %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Transforma le confidentialitate in un habito</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Defini %1$s como tu navigator predefinite e obtene le avantages del navigation private quando tu aperi le paginas web ab altere applicationes.</string>
+
+ <string name="firstrun_close_button">Certo, io comprende!</string>
+ <string name="firstrun_skip_button">Ignorar</string>
+ <string name="firstrun_next_button">Avante</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Adder</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">SI</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Cancellar</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NO</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Le via breve se aperira con le Protection antitraciamento reinfortiate disactivate</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Session de navigation private</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Le notificationes te permitte eliminar tu session %1$s con un tocco. Il non es necessari aperir le application o vider lo que es executate in tu navigator.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Eliminar le chronologia de navigation</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Discargar Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s es libere, de codice aperite e facite per Mozilla e altere contributores.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s es distribuite a te sub le terminos del <a href="%2$s">Mozilla Public License</a> e altere licentias de codice aperte.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Il non te es concedite ulle derectos o licentias al marcas registrate de Mozilla Foundation o ulle partes, includente le nomines e logos Mozilla, Firefox o %1$s. Altere informationes pote esser trovate <a href="%2$s">ci</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Codice fonte additional pro %1$s es disponibile sub varie altere <a href="%2$s">licentias</a> libere e de codice aperte.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s usa tamben listas de blocage fornite per Disconnect, Inc. como labores separate e independente sub le <a href="%2$s">Licentia Public GNU v3</a>, e es disponibile <a href="%3$s">ci</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nomine del usator</string>
+ <string name="gv_prompt_password_hint">Contrasigno</string>
+ <string name="gv_prompt_clear">Vacuar</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Connexion secur</string>
+ <string name="security_popup_insecure_connection">Connexion non secur</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verificate per: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Securitate del sito</string>
+ <string name="preference_autocomplete_duplicate_url_error">Le URL existe ja</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Cercar in le pagina</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Cercar in le pagina</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d de %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Trovar le resultato successive</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Trovar le resultato previe</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Dimitter le recerca in le pagina</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Requestar sito de scriptorio</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Sito de scriptorio</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL copiate</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Instrumentos de developpator</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Aperir ligamines in apps</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avantiate</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Permissiones del sito</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reduction de banner pro le cookie</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Active</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Inactive</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reduction de banner pro le cookie</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Vider minus banners per automaticamente rejectar requestas de cookies, quando possibile. </string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reduction de banner pro le cookie</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Activar pro iste sito</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Sito actualmente non supportate</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Disactivar pro iste sito</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reduction de banner pro le cookie</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Disactivar pro iste sito</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Activar pro iste sito</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Activar le reduction de banner pro cookie pro %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Disactivar le reduction de banner pro cookie pro %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s clarara le cookies de iste sito e actualisara le pagina. Clarar tote le cookies pote clauder tu connexion o vacuar tu carrettos de compras.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s pote tentar de rejectar automaticamente le requestas de cookies.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Iste sito non es actualmente supportate per le Reduction del bandieras pro cookies. Amarea vos requirer a vostre equipa de revider iste sito web e adder le supporto in le futuro?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Cancellar</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Requesta supporto</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Requesta supporto sito inviate.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Requesta supporto sito inviate.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s proba a rejectar requestas de cookies pro dimitter enoiose bandieras pro cookies.\n\nGere le preferentias de bandieras pro cookies in %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">parametros</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Autoreproduction</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Pro permitter lo:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Va a Parametros de Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tocca <b>Permissiones</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Ir al parametros</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Commuta <b>%1$s</b> a Active]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Camera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Microphono</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Position</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notification</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Contento protegite per DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Demandar pro permitter</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blocate</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Permittite</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blocate per Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Permitter audio e video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blocar solo audio</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Recommendate</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blocar audio e video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studios</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox pote installar e conducer studios de tempore in tempore.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Pro saper plus</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Le application quitara pro applicar cambiamentos</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Remover</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Active</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Completate</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Correction de errores remote per USB/wifi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Disblocar</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Confirma per tu dactylogramma</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Tu pote usar tu dactylogramma pro continuar tu actual session del app.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Aperir le ligamine in un nove session</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Icone del impression digital</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Impression digital non recognoscite. Prova de novo.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Digito movite troppo rapide. Prova de novo.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Monstrar suggestiones de recerca?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Pro obtener suggestiones, %1$s debe inviar lo que tu scribe in le barra de adresses al motor de recerca.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">No</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Si</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Alcun motores de recerca non pote monstrar suggestiones.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Dimitter</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Se comporta le sito inexpectatemente?\n Prova a disactivar le Protection de traciamento</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Installa le accesso a un tocco pro le sitos que tu usa plus %1$s Menu > Adder al Pagina initial]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Aperir cata ligamine in %1$s\n Pone %1$s como navigator predefinite</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Auto-completar URLs pro le sitos que tu usa plus\n Retene pulsate longemente ulle URL in le barra de adresse</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Aperi le ligamine in un nove scheda\n Retene pulsate longemente ulle ligamine sur un pagina</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Disactivar le suggestiones sur le pagina initial</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nove scheda aperite</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Commutar</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Entrante in modo plen schermo</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Commutar a ligamine in nove scheda immediatemente</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Blocar le sitos potentialmente periculose e fraudulente</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blocar le sitos reportate como fraudulente e que attacca, le sitos de malware e illos de software non desirate.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Modo solo HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Automaticamente tenta de connecter se al sitos per le protocollo de cryptation HTTPS pro major securitate.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Exceptiones</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Tu ha disactivate le blocage de contentos pro iste sitos.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Remover</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Remover tote le sitos web</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blocar le cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Vole tu blocar le cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Scheda collabite</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Nos regretta. Nos ha un problema con iste scheda.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Como navigator private, nos non salva jammais iste scheda e es impossibile restaurar lo.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Clauder le scheda</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Inviar reporto de crash a Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Traciatores blocate desde %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Contento</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Publicitate</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analyse datos</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Protection antitraciamento reinfortiate</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Protectiones es INACTIVE pro iste sito</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Le protectiones es ACTIVE pro iste sito</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Connexion secur</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Le connexion non es secur</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Traciatores e scripts a blocar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Retornar</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Remover</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Renominar</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Renominar</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nomine via-breve</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Le imagines salvate e compartite &lt;b&gt;non essera&lt;/b&gt; delite quando tu eliminara le chronologia de %1$s.</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Thema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Clar</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Obscur</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Predefinite per sparniator de batteria</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Sequer le thema del apparato</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Iste sito non supporta HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s tenta usar quandocunque possibile un connexion HTTPS pro major securitate.
+ <a href="%2$s">Pro saper plus</a> <br/><br/>
+ Cambia iste parametro in Parametros > Confidentialitate e securitate > Securitate.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Connexion non secur</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Isto pote esser un problema con le configuration del servitor, o pote esser que un persona tenta de usurpar le identitate del servitor. <br/><br/>
+ Si tu te ha connectite a iste servitor con successo in le passato, le error pote esser temporari.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Il es possibile que alcuno tenta usurpar le identitate del sito e pote esser riscose continuar.</label>
+ <br><br>
+ <label>%1$s non considera digne de fide <b>%2$s</b> perque su emissor de certificatos es incognite, le certificato es auto-signate, o le servitor non invia le correcte certificatos intermedie.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Clauder scheda</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Sasite! Nos stoppava iste sito de spiar te. Quandocunque tocca le scuto pro vider lo que es blocate.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Clauder message emergente</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Tu es protegite!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Iste parametros predefinite offere forte protection. Ma il es facile adjustar le parametros pro satisfacer tu specific besonios.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Ignorar</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tocca ci pro eliminar tote le datos, chronologia, cookies, toto, e recomenciar con un scheda tote nove.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Clauder</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Cercar widget</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Chronologia de navigation clarate! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Initia tu session de navigation private, nos blocara traciatores e altere menacias in tu route.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Nos te lassa a tu navigation private, ma memora le proxime vice que facilemente potera initiar con le widget %1$s sur tu Pagina initial.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Adder widget al pagina initial</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget addite al pagina initial</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-in/strings.xml b/mobile/android/focus-android/app/src/main/res/values-in/strings.xml
new file mode 100644
index 0000000000..cab78af002
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-in/strings.xml
@@ -0,0 +1,1108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Batal</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Oke</string>
+
+ <string name="action_save">Simpan</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Cari atau masukkan alamat</string>
+
+ <string name="teaser">Penjelajahan pribadi otomatis.\nJelajahi. Hapus. Ulangi.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Riwayat penjelajahan Anda sudah dihapus.</string>
+ <string name="feedback_erase2">Riwayat penjelajahan dihapus</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Riwayat penjelajahan tab telah dihapus.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Cari %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Bagikan…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Laporkan Masalah Situs</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Buka di %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Buka di…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Tambahkan ke Beranda</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Tambahkan ke Pintasan</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Hapuskan dari Pintasan</string>
+
+ <string name="menu_settings">Pengaturan</string>
+ <string name="menu_about">Tentang</string>
+ <string name="menu_help">Bantuan</string>
+ <string name="menu_rights">Hak Anda</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Pelacak terblokir</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Menonaktifkan ini mungkin membantu memecahkan masalah beberapa situs</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Pemblokiran Konten</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Nonaktifkan untuk memecahkan masalah beberapa situs</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Diberdayakan oleh %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Bagikan via</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Hapus riwayat penjelajahan</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Buka</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Hapus dan Buka</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Hapus</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Hapus riwayat penjelajahan</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Hapus &amp; buka</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Hapus dan buka %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Cari di Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Cari di Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Cari di Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Cari di Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s menempatkan Anda dalam kendali.</p>
+<p>Gunakan sebagai peramban privat:
+ <ul>
+ <li>Cari dan jelajah langsung di dalam aplikasi</li>
+ <li>Blokir pelacak (atau ubah pengaturan untuk izinkan pelacak)</li>
+ <li>Hapus kuki termasuk juga pencarian dan riwayat penjelajahan</li>
+ </ul>
+ </p>
+<p>%1$s diproduksi oleh Mozilla. Misi kami adalah untuk memelihara Internet yang sehat dan terbuka.<br/>
+<a href="%2$s">Pelajari lebih lanjut</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privasi &amp; Keamanan</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Pelacakan, kuki, pilihan data</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Atur baku, lengkapi otomatis</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Tentang %1$s, bantuan</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Perlindungan Pelacakan Dipertingkat</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Konten Web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Mengganti Aplikasi</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Umum</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Peramban, tab, dan bahasa baku</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Pengumpulan Data &amp; Penggunaan</string>
+
+ <string name="preference_category_search">Cari</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Dapatkan saran pencarian</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s akan mengirim apa yang Anda ketik di bilah alamat ke mesin pencari Anda</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Baku</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Mesin pencari</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Aktif</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Nonaktif</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Lengkapi-otomatis URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Untuk Situs teratas</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Aktifkan agar %s melengkapi otomatis lebih dari 450 URL populer di bilah alamat.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Untuk Situs yang Anda Tambahkan</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Aktifkan %s melengkapi otomatis URL favorit Anda.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Kelola situs</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Kelola situs</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Tambah URL ubahsuai</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Daftar lengkapi-otomatis Anda:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Tambahkan URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Tambah URL ubahsuai</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Tambahkan URL kustom</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Tambahkan tautan untuk dilengkapi secara otomatis</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Kuki dan Data Situs</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Pilihan Data</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Hapus URLs ubahsuai</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Pelajari lebih lanjut</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Tambahkan dan kelola lengkapi-otomatis URL ubahsuai.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL untuk ditambahkan</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Tempel atau masukkan URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Contoh: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Contoh: contoh.id</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">URL ubahsuai baru ditambahkan.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Hapus</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Hapus</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Periksa ulang URL yang Anda masukkan.</string>
+
+ <string name="preference_language">Bahasa</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Bawaan sistem</string>
+
+ <string name="preference_category_privacy">Privasi</string>
+ <string name="preference_privacy_block_ads">Blokir pelacak iklan</string>
+ <string name="preference_privacy_block_ads_summary">Beberapa iklan melacak kunjungan situs, meski Anda tidak mengklik iklan</string>
+ <string name="preference_privacy_block_analytics">Blokir pelacak analitik</string>
+ <string name="preference_privacy_block_analytics_summary">Digunakan untuk mengumpulkan, menganalisis, dan mengukur kegiatan seperti mengetuk dan menggulir</string>
+ <string name="preference_privacy_block_social">Blokir pelacak sosial</string>
+ <string name="preference_privacy_block_social_summary">Disematkan pada situs untuk melacak kunjungan Anda dan menampilkan fungsi seperti tombol berbagi</string>
+ <string name="preference_privacy_block_content">Blokir pelacak konten lainnya</string>
+ <string name="preference_privacy_block_content_summary2">Mengaktifkan fitur ini mungkin menyebabkan beberapa laman bertindak tidak terduga</string>
+ <string name="preference_privacy_category_cookies">Blokir kuki</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Tidak, terima kasih</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Hanya blokir kuki pelacak pihak ke-3</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Hanya blokir kuki pihak ke-3</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blokir kuki lintas situs</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ya</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Gunakan sidik jari untuk membuka aplikasi</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Buka kunci dengan sidik jari jika Anda telah menambahkan Pintasan atau saat situs web sudah dibuka di %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Mode Siluman</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Sembunyikan laman web saat berpindah aplikasi dan blokir tangkapan layar.</string>
+
+ <string name="preference_category_security">Keamanan</string>
+
+ <string name="preference_category_performance">Kinerja</string>
+ <string name="preference_performance_block_webfonts">Blokir web fonts</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Dapat menyebabkan hilangnya ikon atau gambar</string>
+
+ <string name="preference_performance_block_javascript">Blokir JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Laman dapat dimuat lebih cepat, namun bisa juga bertindak tanpa diduga-duga</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Jadikan %1$s peramban baku</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Kirim data penggunaan</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Pelajari lebih lanjut</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla berusaha untuk mengumpulkan hanya apa yang kami perlu untuk sediakan dan meningkatkan %1$s untuk setiap orang.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Kebijakan Privasi</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Informasi lisensi</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Pustaka yang kami gunakan</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Pustaka OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Tentang %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Mesin pencari terpasang</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Pilih mesin pencari</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Pulihkan mesin pencari baku</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Tambahkan mesin pencari lainnya</string>
+ <string name="preference_search_remove_title">Hapus mesin pencari</string>
+ <string name="preference_search_remove">Hapus</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Tambahkan mesin pencari lainnya</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Pilih mesin pilihan Anda:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Tambah mesin pencari</string>
+
+ <string name="search_add_manually_name_hint">Nama mesin pencari</string>
+ <string name="search_add_manually_string">String pencarian untuk digunakan</string>
+ <string name="search_add_manually_save">Simpan</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Contoh: contoh.id/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Mesin pencari baru ditambahkan.</string>
+
+ <string name="search_add_error_empty_name">Masukkan nama mesin pencari</string>
+ <string name="search_add_error_duplicate_name">Mesin pencari yang terpasang telah menggunakan nama tersebut.</string>
+
+ <string name="search_add_error_empty_search">Masukkan string pencarian</string>
+
+ <string name="search_add_error_format">Periksa apakah string pencarian cocok dengan format Contoh</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Bersihkan masukan</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Tutup</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Hapus riwayat penjelajahan</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Tab terbuka: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Sambungan aman</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Memuat</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Situs web dimuat</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Opsi lainnya</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Tombol opsi lainnya</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Navigasi ke selanjutnya</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Muat ulang situs web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Arahkan kembali</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Berhenti memuat situs web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Kembali ke aplikasi sebelumnya</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Jumlah pelacak terblokir</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blokir pelacak</string>
+
+ <string name="your_rights">Hak Anda</string>
+
+ <string name="external_app_prompt_title">Buka tautan di aplikasi lainnya</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Anda dapat meninggalkan %1$s untuk membuka tautan ini di %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Temukan aplikasi yang dapat membuka tautan</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Tak ada satu pun aplikasi di perangkat Anda dapat membuka tautan ini. Anda dapat meninggalkan %1$s untuk mencari di %2$s untuk mendapatkan aplikasi yang mampu.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Keluar dari Penjelajahan Pribadi?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s selesai</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Buka</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Ditambahkan ke pintasan!</string>
+
+ <string name="error_hostLookup_title">Peladen tidak ditemukan</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Tutup</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Selamat datang di %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Cepat. Pribadi. Tanpa gangguan.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Memulai</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s tidak seperti peramban lain</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Kami menghapus riwayat Anda saat menutup aplikasi untuk privasi tambahan.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Jadikan %1$s sebagai perlindungan baku data Anda dengan setiap tautan yang Anda buka.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Setel sebagai peramban baku</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Lewati</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Perkuat privasi Anda</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Bawa penjelajahan pribadi ke tingkat berikutnya. Blokir iklan dan konten lainnya yang dapat melacak Anda di seluruh situs dan memperlambat waktu buka halaman.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Pencarian Anda, cara Anda</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Mencari sesuatu yang berbeda? Pilih mesin pencari baku lainnya di Pengaturan.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Tambahkan pintasan ke layar Beranda</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Kembali ke situs favorit Anda di %1$s dengan cepat. Cukup pilih \&quot;Tambahkan ke layar Beranda\&quot; dari menu %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Jadikan privasi menjadi kebiasaan</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Atur %1$s sebagai peramban utama Anda dan dapatkan keuntungan penjelajahan pribadi ketika Anda membuka laman web dari aplikasi lainnya.</string>
+
+ <string name="firstrun_close_button">Oke, beres!</string>
+ <string name="firstrun_skip_button">Lewati</string>
+ <string name="firstrun_next_button">Lanjutkan</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Tambah</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">YA</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Batal</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">TIDAK</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Pintasan akan terbuka dengan Perlindungan Pelacakan Dipertingkat dinonaktifkan</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sesi penjelajahan pribadi</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Notifikasi memungkinkan Anda menghapus sesi %1$s Anda dengan sekali sentuh. Anda tak perlu membuka aplikasi atau melihat apa yang berjalan di peramban Anda.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Hapus riwayat penjelajahan</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Unduh Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s adalah perangkat lunak bebas dan sumber terbuka yang dibuat oleh Mozilla dan kontributor lainnya.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s tersedia untuk Anda di bawah persyaratan <a href="%2$s">Lisensi Publik Mozilla</a> dan lisensi sumber terbuka lainnya.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Anda tidak diberi izin atau lisensi apa pun atas merek dagang Mozilla Foundation atau pihak mana pun, termasuk nama atau logo Mozilla, Firefox, atau %1$s. Informasi lebih lanjut bisa ditemukan <a href="%2$s">di sini</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Kode sumber tambahan untuk %1$s tersedia dengan berbagai <a href="%2$s">lisensi</a> bebas dan sumber terbuka lainnya.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s juga menggunakan daftar blokir yang disediakan oleh Disconnect, Inc. sebagai pekerjaan terpisah dan independen di bawah <a href="%2$s">GNU General Public License v3</a>, dan tersedia <a href="%3$s">di sini</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nama pengguna</string>
+ <string name="gv_prompt_password_hint">Sandi</string>
+ <string name="gv_prompt_clear">Bersihkan</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Sambungan Aman</string>
+ <string name="security_popup_insecure_connection">Sambungan Tidak Aman</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Diverifikasi oleh: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Keamanan Situs</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL sudah tersedia</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Temukan di Laman</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Temukan di laman</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d dari %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Temukan hasil selanjutnya</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Temukan hasil sebelumnya</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Tutup temukan di laman</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Minta situs desktop</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Situs desktop</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL tersalin</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Alat pengembang</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Buka tautan di aplikasi</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Lanjutan</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Izin situs</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Pengurangan Spanduk Kuki</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Aktif</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Mati</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Pengurangan Spanduk Kuki</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Lihat lebih sedikit spanduk dengan menolak permintaan kuki secara otomatis, jika memungkinkan.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Pengurangan Spanduk Kuki</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">AKTIF untuk situs ini</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Saat ini, situs tidak didukung</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">NONAKTIF untuk situs ini</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Pengurangan Spanduk Kuki</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">NONAKTIF untuk situs ini</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">AKTIF untuk situs ini</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Aktifkan Pengurangan Spanduk Kuki untuk %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Nonaktifkan Pengurangan Spanduk Kuki untuk %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s akan menghapus kuki situs ini dan menyegarkan laman ini. Membersihkan semua kuki dapat membuat Anda keluar dari suatu situs atau mengosongkan keranjang belanja.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s dapat mencoba menolak permintaan kuki secara otomatis.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Situs ini saat ini tidak didukung oleh Fitur Pengurangan Spanduk Kuki. Ingin meminta tim kami meninjau situs ini dan menambahkan dukungan di masa mendatang?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Batal</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Minta dukungan</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Permintaan bantuan situs telah diajukan.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Permintaan bantuan situs telah diajukan.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s mencoba menolak permintaan kuki untuk menghentikan spanduk kuki yang menjengkelkan.\n\nKelola preferensi spanduk kuki di %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">pengaturan</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Putar Otomatis</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Untuk mengizinkannya:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Buka Pengaturan Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Ketuk <b>Perizinan</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Buka Pengaturan</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Aktifkan/Nonaktifkan <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Lokasi</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Pemberitahuan</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Konten yang diatur DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Meminta izin</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Diblokir</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Diizinkan</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Diblokir oleh Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Izinkan suara dan video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blokir suara saja</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Disarankan</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blokir suara dan video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Kajian</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox dapat memasang dan menjalankan kajian dari waktu ke waktu.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Pelajari lebih lanjut</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Aplikasi akan berhenti untuk menerapkan perubahan</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Hapus</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktif</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Selesai</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Pengawakutuan jarak jauh melalui USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Buka</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Konfirmasi Menggunakan Sidik Jari Anda</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Anda dapat menggunakan sidik jari untuk melanjutkan sesi aplikasi Anda saat ini.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Buka Tautan di Sesi Baru</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Ikon sidik jari</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Sidik jari tidak dikenali. Coba lagi.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Jari bergerak terlalu cepat. Coba lagi.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Tampilkan saran pencarian?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Untuk mendapatkan saran, %1$s perlu mengirim apa yang Anda ketikkan di bilah alamat ke mesin pencari.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Tidak</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Ya</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Beberapa mesin pencari tidak dapat menampilkan saran pencarian.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Tutup</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Situs bertindak tidak terduga?\n Matikan Perlindungan Pelacakan</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Akses satu ketukan ke situs yang sering digunakan%1$s Menu > Tambahkan ke Beranda]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Buka setiap tautan di %1$s\n Atur %1$s sebagai peramban baku</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Lengkapi otomatis URL untuk situs yang sering dikunjungi\n Ketuk lama URL di bilah alamat</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Buka tautan di tab baru\n Tekan lama tautan di laman</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Nonaktifkan tips ini pada layar mulai</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Tab baru dibuka</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Tukar</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Memasuki mode layar penuh</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Alihkan tautan langsung ke tab baru</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Blokir situs yang mungkin berbahaya serta penipuan</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blokir situs penipuan dan penyerangan yang dilaporkan, situs malware, dan situs perangkat lunak yang tidak diinginkan.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Mode Hanya HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Secara otomatis mencoba terhubung ke situs menggunakan protokol enkripsi HTTPS untuk meningkatkan keamanan.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Pengecualian</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Anda telah menonaktifkan Pemblokiran Konten untuk situs ini.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Hapus</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Hapus semua situs web</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blokir Kuki</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Apakah Anda ingin memblokir kuki?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Tab Mogok</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Maaf. Kami mengalami masalah dengan tab ini.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Sebagai peramban pribadi, kami tidak pernah menyimpan dan tidak dapat mengembalikan tab ini.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Tutup Tab</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Kirim laporan kerusakan ke Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Pelacak diblokir sejak %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Konten</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Periklanan</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Sosial</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analitis</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Perlindungan Pelacakan Dipertingkat</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Perlindungan DINONAKTIFKAN untuk situs ini</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Perlindungan DIAKTIFKAN untuk situs ini</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Sambungan aman</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Sambungan tidak aman</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Pelacak dan Skrip untuk Diblokir</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Kembali</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Hapus</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Ubah Nama</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Ubah Nama</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nama pintasan</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Gambar yang disimpan dan dibagikan &lt;b&gt;tidak akan dihapus&lt;/b&gt; ketika Anda menghapus riwayat %1$s.</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Terang</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Gelap</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Diatur oleh Penghemat Baterai</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Ikuti tema peranti</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Laman ini tidak mendukung HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s mencoba menggunakan koneksi HTTPS jika memungkinkan untuk keandalan keamanan.
+ <a href="%2$s">Pelajari lebih lanjut</a> <br/><br/>
+ Ubah setelan ini di Setelan > Privasi &amp; Keamanan > Keamanan.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Sambungan tidak aman</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[Hal ini mungkin terjadi karena masalah pada konfigurasi peladen, atau pihak tertentu mencoba menyamar menjadi peladen yang Anda tuju. <br/><br/>Jika Anda sebelumnya pernah tersambung dengan peladen ini, kesalahan ini mungkin hanya sementara.]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[<label>Seseorang mungkin berusaha menyamar menyamar laman ini dan sebaiknya Anda tidak melanjutkan.</label>
+ <br><br>
+ <label> %1$s tidak mempercayai <b>%2$s</b> karena penerbit sertifikat tidak diketahui, sertifikat ditandatangani sendiri, atau peladen tidak mengirimkan sertifikat perantara yang benar.</label>]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Tutup tab</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Dapat! Kami menghentikan situs ini untuk memata-mataimu. Ketuk perisai kapan saja untuk melihat apa yang kami blokir.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Tutup popup</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Anda terlindungi!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Pengaturan bawaan ini menawarkan perlindungan yang kuat. Tetapi mudah untuk mengubah pengaturan untuk memenuhi kebutuhan spesifik Anda.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Tutup</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Ketuk di sini untuk membuang semuanya — riwayat, kuki, semuanya — dan memulai dari tab baru.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Tutup</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Cari widget</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Riwayat penjelajahan dihapus! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Mulai sesi penjelajahan pribadi Anda, dan kami akan memblokir pelacak dan hal buruk lainnya saat Anda menjelajah.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Kami akan meninggalkan Anda untuk menjelajah pribadi, tapi dapatkan awal yang lebih cepat lain kali dengan widget %1$s di layar Beranda Anda.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Tambahkan widget ke layar beranda</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget ditambahkan ke layar beranda</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-is/strings.xml b/mobile/android/focus-android/app/src/main/res/values-is/strings.xml
new file mode 100644
index 0000000000..e6965d61ba
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-is/strings.xml
@@ -0,0 +1,1091 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Hætta við</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Í lagi</string>
+
+ <string name="action_save">Vista</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Leitaðu eða settu inn vistfang</string>
+
+ <string name="teaser">Sjálfvirkt huliðsvafur.\nVafrað. Eytt. Endurtekið.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Vafurferli þínu hefur verið eytt.</string>
+ <string name="feedback_erase2">Vafurferill hreinsaður</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Vafurferli flipans hefur verið eytt.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Leita að %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Deila…</string>
+
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Tilkynna vandamál með vefsvæði</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Opna með %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Opna með…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Bæta við á ræsisíðu</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Bæta við flýtileiðir</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Fjarlægja úr flýtileiðum</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Stillingar</string>
+ <string name="menu_about">Um hugbúnaðinn</string>
+ <string name="menu_help">Hjálp</string>
+
+ <string name="menu_rights">Réttindi þín</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Lokað á rekjara</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Að slökkva á þessu gæti lagað sum vandamál á vefsvæðinu</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blokkun efnis</string>
+
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Slökktu á þessu til að laga sum vefsvæði</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Keyrt með %1$s</string>
+
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Deila með</string>
+
+ <string name="notification_erase_title_android_14">Eyða vafurferli?</string>
+
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Ýttu á eða hreinsaðu þessa tilkynningu til að eyða vafurferli þínum á öruggan hátt.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Ýttu á eða strjúktu út þessa tilkynningu til að eyða vafurferli þínum á öruggan hátt.</string>
+
+ <string name="notification_erase_text">Eyða vafraferli</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Opna</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Eyða og opna</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Hreinsa</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Eyða vafraferli</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Hreinsa og opna</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Hreinsa og opna %1$s</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Leita í Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Leita í Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Leita í Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Leita í Focus næturútgáfunni</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s setur þig við stjórnvölinn.</p>
+<p>Notaðu það sem huliðsvafra:
+ <ul>
+ <li>Leitaðu og flettu beint í forritinu</li>
+ <li>Lokaðu á rekjara (eða uppfærðu stillingar til að leyfa rekjara)</li>
+ <li>Hreinsaðu til að eyða vefkökum sem og leitar- og vafraferli</li>
+ </ul>
+</p>
+<p>%1$s er framleitt af Mozilla. Markmið okkar er að hlúa að heilbrigðu, opnu interneti.<br/>
+<a href="%2$s">Frekari upplýsingar</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Friðhelgi og öryggi</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Rekjarar, vefkökur, gagnaval</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Setja sjálfgefið, sjálfvirk útfylling</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Um %1$s, hjálp</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Aukin rakningarvörn</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Vefefni</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Skipta um forrit</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Almennt</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Sjálfgefinn vafri, tungumál</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Gagnasöfnun og notkunarupplýsingar</string>
+
+ <string name="preference_category_search">Leita</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Fá leitartillögur</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s mun senda það sem þú skrifar í slóðina yfir á leitarvélina þína</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Sjálfgefið</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Leitarvél</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Virkt</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Óvirkt</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Sjálfvirk leiðrétting á slóðum</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Fyrir vinsælustu vefsvæðin</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Virkja sjálfvirka útfyllingu í staðsetningarslá %s á rúmlega 450 vinsælum slóðum.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Fyrir vefsvæði sem þú bætir við</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Virkja til að leyfa %s að klára uppáhaldsvefslóðirnar þínar.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Sýsla með vefsvæði</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Sýsla með vefsvæði</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Bæta við sérsniðinni vefslóð</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Sjálfvirki útfyllingarlistinn þinn:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Bæta við vefslóð</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Bæta við sérsniðinni vefslóð</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Bæta við sérsniðinni vefslóð</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Bæta tengli við sjálfvirka útfyllingu</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Smákökur og gögn vefsvæðis</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Meðhöndlun gagna</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Fjarlægja sérsniðnar vefslóðir</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Frekari upplýsingar</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Bættu við og stjórnaðu sérsniðnum sjálfvirkum útfyllingarslóðum.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL-slóð til að bæta við</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Límdu eða settu inn slóð</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Dæmi: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Til dæmis: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Nýrri sérsniðinni vefslóð bætt við.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Fjarlægja</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Fjarlægja</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Yfirfarðu slóðina sem þú settir inn.</string>
+
+ <string name="preference_language">Tungumál</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Sjálfgefið í stýrikerfinu</string>
+
+ <string name="preference_category_privacy">Friðhelgi</string>
+ <string name="preference_privacy_block_ads">Loka á auglýsingarekjara</string>
+ <string name="preference_privacy_block_ads_summary">Sumar auglýsingar geyma upplýsingar um vefsvæði sem hafa verið heimsótt, þótt sé smellt ekki á auglýsingarnar</string>
+ <string name="preference_privacy_block_analytics">Loka á greiningarekjara</string>
+ <string name="preference_privacy_block_analytics_summary">Notað til að safna, greina og fylgjast með virkni, eins og að snerta og skruna</string>
+ <string name="preference_privacy_block_social">Lokar á samfélagmiðlarekjara</string>
+ <string name="preference_privacy_block_social_summary">Innbyggt í vefsvæðum til að fylgjast með heimsóknum þínum og sýna virkni eins og deilihnappar</string>
+ <string name="preference_privacy_block_content">Loka á aðra efnisrekjara</string>
+ <string name="preference_privacy_block_content_summary2">Virkjun gæti valdið því að sum vefsvæði hagi sér á óvæntan hátt</string>
+ <string name="preference_privacy_category_cookies">Loka á vefkökur</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Nei takk</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Loka einungis á rakningarvefkökur frá utanaðkomandi aðilum</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Loka einungis á vefkökur frá utanaðkomandi aðilum</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Loka á milli-vefsvæða-vefkökur</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Já endilega</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Nota fingrafar til að aflæsa smáforriti</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Aflæstu með fingrafari ef þú hefur bætt við flýtileiðum eða þegar vefsvæði er þegar opið í %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Laumuspil</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Fela vefsíður þegar skipt er um forrit og loka á skjámyndatöku.</string>
+
+ <string name="preference_category_security">Öryggi</string>
+
+ <string name="preference_category_performance">Afköst</string>
+ <string name="preference_performance_block_webfonts">Loka á vefleturgerðir</string>
+
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Getur valdið því að tákn eða myndir vantar</string>
+
+ <string name="preference_performance_block_javascript">Loka á JavaScript</string>
+
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Síður kunna að hlaðast hraðar inn en geta líka hegðað sér á óvænta vegu</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Gera %1$s að sjálfgefnum vafra</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Senda notkunarupplýsingar</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Frekari upplýsingar</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla safnar eingöngu því sem nauðsynlegt er til að betrumbæta %1$s fyrir alla.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Upplýsingar um meðferð persónuupplýsinga</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Upplýsingar um notkunarleyfi</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Aðgerðasöfn sem við notum</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS-aðgerðasöfn</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Um %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Uppsettar leitarvélar</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Veldu leitarvél</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Endurheimta sjálfgefnar leitarvélar</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Bæta við annari leitarvél</string>
+ <string name="preference_search_remove_title">Fjarlægja leitarvélar</string>
+ <string name="preference_search_remove">Fjarlægja</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Bæta við annari leitarvél</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Veldu leitarvélina sem þú kýst:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Bæta við leitarvél</string>
+
+ <string name="search_add_manually_name_hint">Heiti leitarvélar</string>
+ <string name="search_add_manually_string">Leitarstrengur sem á að nota</string>
+ <string name="search_add_manually_save">Vista</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Dæmi: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Nýrri leitarvél bætt við.</string>
+
+ <string name="search_add_error_empty_name">Settu inn heiti leitarvélar</string>
+ <string name="search_add_error_duplicate_name">Uppsett leitarvél er nú þegar að nota það nafn.</string>
+
+ <string name="search_add_error_empty_search">Settu inn leitarstreng</string>
+
+ <string name="search_add_error_format">Athugaðu hvort leitarstrengurinn sé í sama sniði og dæmið</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Hreinsa inntak</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Afgreiða</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Eyða vafurferli</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Opnir flipar: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Örugg tenging</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Hleð inn</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Vefsvæði hlaðið</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Fleiri valkostir</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Hnappur fyrir fleiri valkosti</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Fara áfram</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Endurhlaða vefsvæði</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Fara til baka</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Hætta að hlaða inn vefsvæði</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Fara aftur í fyrra forrit</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Fjöldi rekjara sem lokað er á</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Loka á rekjara</string>
+
+ <string name="your_rights">Réttindi þín</string>
+
+ <string name="external_app_prompt_title">Opna tengil með öðru smáforriti</string>
+
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Þú getur farið af %1$s til að opna þennan tengil í %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Finndu forrit sem getur opnað tengil</string>
+
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ekkert af forritunum í tækinu þínu getur opnað þennan tengil. Þú getur farið úr %1$s til að leita í %2$s að forriti sem getur það.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Hætta í huliðsvafri?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s lokið</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Opna</string>
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Bætt við flýtileiðir!</string>
+
+ <string name="error_hostLookup_title">Netþjónn fannst ekki</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Loka</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Velkomin í %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Hraðvirkt. Einkamál. Engar truflanir.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Hefjast handa</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s er ekki eins og aðrir vafrar</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Við hreinsum vafurferilinn þegar þú lokar forritinu til að auka persónuvernd.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Gerðu %1$s sjálfgefið til að vernda gögnin þín við hvern tengil sem þú opnar.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Setja sem sjálfgefinn vafra</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Sleppa</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Auktu friðhelgi þína</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Taktu huliðsvafur upp á næsta stig. Lokaðu fyrir auglýsingar og annað efni sem getur fylgst með þér á milli vefsvæða og eykur hleðslutíma á vefsíðum.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Leitin þín, á þinn hátt</string>
+
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Ertu að leita að einhverju öðru? Veldu aðra sjálfgefna leitarvél í stillingunum.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Bættu flýtileiðum við upphafsskjáinn þinn</string>
+
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Farðu fljótt aftur á uppáhaldsvefsvæðin þín í %1$s. Veldu bara \&quot;Bæta við upphafsskjá\&quot; í %1$s valmyndinni.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Gerðu gagnaleynd að vana</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Stilltu %1$s sem sjálfgefinn vafra og fáðu ávinninginn af huliðsvafri þegar þú opnar vefsíður úr öðrum forritum.</string>
+
+ <string name="firstrun_close_button">Í lagi, ég skil!</string>
+ <string name="firstrun_skip_button">Sleppa</string>
+ <string name="firstrun_next_button">Næsta</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Bæta við</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">JÁ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Hætta við</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NEI</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Flýtileið mun opnast þegar aukin rakningarvernd er óvirk</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Huliðsvafurlota</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Tilkynningar gera þér kleift að eyða %1$s-lotunni með einni snertingu. Þú þarft ekki að opna forritið eða sjá hvað er í gangi í vafranum þínum.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Eyða vafurferli</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Sækja Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s er frjáls og opinn hugbúnaður gerður af Mozilla og öðrum þátttakendum.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s er þér aðgengilegt samkvæmt skilmálum <a href="%2$s">Mozilla Public License</a> og annarra notkunarleyfa opins hugbúnaðar.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Þú hefur ekki réttindi á eða leyfi til að nota vörumerki eða hefur leyfi fyrir vörumerkjum frá Mozilla-stofnunni eða öðrum aðilum, innifelur það í sér án allra takmarkana nönf eða fyrirtækismerki Mozilla, Firefox eða %1$s . Meiri upplýsingar fást <a href="%2$s">hér</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Viðbótargrunnkóði fyrir %1$s er tiltækur með ýmsum öðrum ókeypis og opnum <a href="%2$s">hugbúnaðarleyfum</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s notar einnig útilokunarlista frá Disconnect, Inc. sem aðskilin og sjálfstæð verk samkvæmt <a href="%2$s">almenna GNU General Public notkunarleyfinu útg.3</a> og er tiltækt <a href="%3$s">hér</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Notandanafn</string>
+ <string name="gv_prompt_password_hint">Lykilorð</string>
+ <string name="gv_prompt_clear">Hreinsa</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Örugg tenging</string>
+ <string name="security_popup_insecure_connection">Óörugg tenging</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Sannvottað af: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Öryggi vefsvæðis</string>
+ <string name="preference_autocomplete_duplicate_url_error">Slóð þegar til</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Finna á síðu</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Finna á síðu</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d af %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Finna næstu niðurstöðu</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Finna fyrri niðurstöðu</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Sleppa leit á síðu</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Fá borðtölvuvefsvæði</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Vefsvæði fyrir borðtölvur</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Vefslóð afrituð</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Forritunarverkfæri</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Opna tengla í smáforritum</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Ítarlegt</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Heimildir vefsvæðis</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Fækkun vefkökuborða</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Virkt</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Óvirkt</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Fækkun vefkökuborða</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Sjáðu færri borða með því að hafna sjálfkrafa beiðnum um vefkökur, þegar mögulegt er.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Fækkun vefkökuborða</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Kveikt fyrir þetta vefsvæði</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Vefsvæðið er ekki stutt í augnablikinu</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Slökkt fyrir þetta vefsvæði</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Fækkun vefkökuborða</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Slökkt fyrir þetta vefsvæði</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Kveikt fyrir þetta vefsvæði</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Viltu kveikja á fækkun vefkökuborða fyrir %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Viltu slökkva á fækkun vefkökuborða fyrir %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s mun hreinsa vefkökur þessa vefsvæðis og endurlesa síðuna. Að hreinsa allar vefkökur gæti skráð þig út eða tæmt innkaupakörfur.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s getur reynt að hafna sjálfkrafa beiðnum um vefkökur.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Þetta vefsvæði styður ekki stendur fækkun vefkökuborða. Viltu biðja um að teymið okkar skoði þetta vefsvæði og bæti við stuðningi í framtíðinni?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Hætta við</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Biðja um stuðning</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Beiðni um stuðning við vefsvæði lögð fram.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Beiðni um stuðning við vefsvæði lögð fram.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s reynir að hafna beiðnum um vefkökur til að hunsa pirrandi vefkökuborða.\n\nSýslaðu með stillingar fyrir vefkökuborða í %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">stillingunum</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Sjálfvirk spilun</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Til að leyfa það:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Farðu í Android-stillingar</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Ýttu á <b>Heimildir</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Farðu í Stillingar</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Breyttu <b>%1$s</b> yfir í VIRKT]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Myndavél</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Hljóðnemi</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Staðsetning</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Tilkynningar</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-stýrt efni</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Biðja um að leyfa</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Lokað á</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Leyft</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Lokað af Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Leyfa hljóð og myndskeið</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Loka eingöngu fyrir hljóð</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Mælt með</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Loka á hljóð og myndskeið</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Rannsóknir</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox kann að setja upp og keyra rannsóknir af og til.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Fræðast meira</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Forritið hættir til að virkja breytingar</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Fjarlægja</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Virkt</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Lokið</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Kembt með fjartengingu í gegnum USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Aflæsa</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Staðfestu með því að nota fingrafar</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Þú getur notað fingrafarið þitt til að halda áfram núverandi forritslotu.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Opna tengil í nýrri lotu</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Fingrafarstákn</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Fingrafar ekki þekkt. Reyndu aftur.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Fingurinn hreyfðist of hratt. Reyndu aftur.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Sýna leitartillögur?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Til að fá tillögur, þarf %1$s að senda það sem þú skrifar í slóðina til leitarvélarinnar.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Nei</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Já</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Sumar leitarvélar geta ekki sýnt tillögur.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Afgreiða</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Vefsvæði hagar sér óvænt?\n
+ Prófaðu að slökkva á rakningarvörn</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Fáðu flýtiaðgang að þeim vefsvæðum sem þú notar mest%1$s Valmynd > Bæta við upphafsskjá]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Opnaðu alla tengla í %1$s\n
+ Stilltu %1$s sem sjálfgefinn vafra
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Sjálfvirk útfylling vefslóða fyrir vefsvæði sem þú notar mest\n
+ Ýttu lengi á hvaða vefslóð sem er í veffangastikunni
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Opnaðu tengil í nýjum flipa\n
+ Ýttu lengi á hvaða tengil sem er á síðu
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Slökkva á ábendingum á upphafsskjánum</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nýr flipi opnaður</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Skipta</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Fara í fullan skjá</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Skipta strax yfir í tengil í nýjum flipa</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Loka á hugsanlega hættuleg og villandi vefsvæði</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Lokaðu fyrir tilkynnt vefsvæði með villandi efni og árásum, spilliforrit og vefsvæði með óæskilegum hugbúnaði.</string>
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Einungis-HTTPS-hamur</string>
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Reynir sjálfkrafa að tengjast vefsvæðum með HTTPS-dulritunareglum til að auka öryggi.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Undantekningar</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Þú hefur gert útilokun efnis óvirka á þessum vefvæðum.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Fjarlægja</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Fjarlægja öll vefsvæði</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Loka á vefkökur</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Viltu loka á vefkökur?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Flipi hrundi</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Því miður. Við erum í vandræðum með þennan flipa.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Þar sem þetta er huliðsvafri, vistum við aldrei og getum ekki endurheimt þennan flipa.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Loka flipa</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Senda hrunskýrslu til Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Rekjarar sem lokað er fyrir síðan %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Efni</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Auglýsingar</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Samfélagsmiðlar</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Greiningar</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Aukin rakningarvörn</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">SLÖKKT er á vörn fyrir þetta vefssvæði</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">KVEIKT er á vörn fyrir þetta vefsvæði</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Tenging er örugg</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Tenging er ekki örugg</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Rekjarar og skriftur sem á að útiloka</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Til baka</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Fjarlægja</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Endurnefna</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Endurnefna</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nafn flýtileiðar</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Vistuðum og deildum myndum &lt;b&gt;verður ekki&lt;/b&gt; eytt þegar þú eyðir ferli %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Þema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Ljóst</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Dökkt</string>
+
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Stillt af rafhlöðusparnaðarkerfi</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Fylgja þema tækisins</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Þetta vefsvæði styður ekki HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s reynir að nota HTTPS tengingu þegar mögulegt er til að auka öryggi.
+ <a href="%2$s">Frekari upplýsingar</a> <br/><br/>
+ Breyttu þessari stillingu í Stillingar > Persónuvernd og öryggi > Öryggi.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Tenging er ekki örugg</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+Þetta gæti verið vegna vandamála í stillingum netþjóns, eða einhver gæti verið að reyna að þykjast vera þessi netþjónn.<br/><br/>
+Ef þú hefur getað tengst þessum netþjóni án vandamála áður, gæti verið að vandamálið sé aðeins tímabundið, þannig að þú gætir reynt aftur seinna.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Einhver gæti verið að reyna að þykjast vera þetta vefsvæði og þú ættir ekki að halda áfram.</label>
+ <br><br>
+ <label>%1$s treystir ekki <b>%2$s</b> vegna þess að útgefandi skilríkisins er óþekktur, skilríkið er gefið út af sjálfu sér eða þjóninn er ekki að senda rétt milliskilríki.</label>]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Loka flipa</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Náðonum! Við komum í veg fyrir að þetta vefsvæði njósnaði um þig. Ýttu á skjöldinn til að fá upplýsingar um það sem við lokuðum á.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Loka sprettglugga</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Þú ert varin/n!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Þessar sjálfgefnu stillingar bjóða upp á öfluga vernd. En það er auðvelt að laga til stillingarnar til að mæta sérþörfum þínum.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Afgreiða</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Ýttu hér til að henda öllu - ferli, vefkökum, öllu - og byrjaðu upp á nýtt á nýjum flipa.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Loka</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Viðmótshluti fyrir leit</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Vafurferill hreinsaður 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Byrjaðu huliðsvafralotuna þína og við lokum á rakningar og annað vont dót á meðan þú vafrar.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Við látum þig vera í huliðsvafrinu þínu, en byrjum hraðar næst með %1$s-viðmótshlutanum á upphafsskjánum þínum.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Bæta viðmótshluta á upphafsskjá</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Viðmótshluta bætt á upphafsskjá</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-it/strings.xml b/mobile/android/focus-android/app/src/main/res/values-it/strings.xml
new file mode 100644
index 0000000000..cf0e6b6abd
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-it/strings.xml
@@ -0,0 +1,1122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Annulla</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Salva</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Cerca o inserisci un indirizzo</string>
+
+ <string name="teaser">Navigazione anonima in automatico.\nNaviga. Elimina. Ripeti.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">La cronologia di navigazione è stata eliminata.</string>
+
+ <string name="feedback_erase2">Cronologia di navigazione eliminata</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Eliminata cronologia di navigazione della scheda.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Cerca %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Condividi…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Segnala un problema con questo sito</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Apri in %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Apri in…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Agg. a schermata principale</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Aggiungi alle scorciatoie</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Rimuovi dalle scorciatoie</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Impostazioni</string>
+ <string name="menu_about">Informazioni su</string>
+ <string name="menu_help">Aiuto</string>
+ <string name="menu_rights">I tuoi diritti</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Traccianti bloccati</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Disattivare questa opzione potrebbe risolvere alcuni problemi con i siti</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blocco contenuti</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Disattivare questa opzione può risolvere problemi con alcuni siti</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Con tecnologia %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Condividi con</string>
+
+ <string name="notification_erase_title_android_14">Eliminare la cronologia di navigazione?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tocca o cancella questa notifica per eliminare in modo sicuro la cronologia di navigazione.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tocca o fai scorrere questa notifica per eliminare in modo sicuro la cronologia di navigazione.</string>
+
+ <string name="notification_erase_text">Elimina cronologia di navigazione</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Apri</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Elimina dati e apri</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Elimina</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Elimina cronologia di navigazione</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Elimina e apri</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Elimina e apri %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Cerca in Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Cerca in Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Cerca in Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Cerca in Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>Prendi il controllo con %1$s.</p>
+<p>Utilizzalo per la navigazione anonima:
+ <ul>
+ <li>Cerca e naviga direttamente nell’app.</li>
+ <li>Blocca il tracciamento (o aggiorna le impostazioni per consentirlo).</li>
+ <li>Utilizza “Elimina” per rimuovere i cookie così come la cronologia di ricerca e navigazione.</li>
+ </ul>
+</p>
+<p>%1$s è realizzato da Mozilla. La nostra missione è promuovere un Internet integro e aperto.<br/>
+<a href="%2$s">Ulteriori informazioni</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privacy e sicurezza</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Opzioni per gestire tracciamento, cookie e dati</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Imposta predefinito, completamento automatico</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Informazioni su %1$s, supporto</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Protezione antitracciamento avanzata</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Contenuti web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Cambio di app</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Generale</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Browser predefinito, lingua</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Raccolta e uso dati</string>
+
+ <string name="preference_category_search">Ricerca</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Ottieni suggerimenti di ricerca</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">Ciò che digiti nella barra degli indirizzi verrà inviato da %1$s al motore di ricerca</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Predefinito</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Motore di ricerca</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Attivo</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Disattivato</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Completamento automatico indirizzo</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Per siti principali</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Attiva per completare automaticamente oltre 450 domini nella barra degli indirizzi di %s.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Per siti aggiunti da te</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Attiva per fare in modo che %s completi automaticamente i tuoi indirizzi preferiti.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Gestione siti</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Gestisci siti</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Aggiungi indirizzo personalizzato</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Il tuo elenco di completamento automatico:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Aggiungi URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Nuovo indirizzo pers.</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Nuovo indirizzo pers.</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Aggiungi link per completamento automatico</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookie e dati siti web</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Opzioni gestione dati</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Rimozione indirizzi pers.</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Ulteriori informazioni</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Aggiungi e gestisci il completamento automatico degli indirizzi personalizzati.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Indirizzo da aggiungere</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Incolla o inserisci un indirizzo</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Esempio: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Esempio: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Aggiunto nuovo indirizzo personalizzato.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Elimina</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Elimina</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Verifica l’indirizzo inserito.</string>
+
+ <string name="preference_language">Lingua</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Predefinita del sistema</string>
+
+ <string name="preference_category_privacy">Privacy</string>
+ <string name="preference_privacy_block_ads">Blocca pubblicità traccianti</string>
+ <string name="preference_privacy_block_ads_summary">Alcuni annunci pubblicitari, senza bisogno di aprirli, sono in grado di tracciare i siti visitati</string>
+ <string name="preference_privacy_block_analytics">Blocca traccianti analitici</string>
+ <string name="preference_privacy_block_analytics_summary">Utilizzati per raccogliere, analizzare e misurare attività come tocchi e scorrimenti</string>
+ <string name="preference_privacy_block_social">Blocca traccianti social</string>
+ <string name="preference_privacy_block_social_summary">Inseriti nei siti per tenere traccia delle visite e fornire funzionalità come i pulsanti di condivisione</string>
+ <string name="preference_privacy_block_content">Blocca altri contenuti traccianti</string>
+ <string name="preference_privacy_block_content_summary2">L’attivazione potrebbe causare problemi di funzionamento in alcune pagine</string>
+ <string name="preference_privacy_category_cookies">Blocca cookie</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">No, grazie</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Blocca solo cookie traccianti di terze parti</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Blocca solo cookie di terze parti</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blocca cookie intersito</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Sì, grazie</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Usa l’impronta digitale per sbloccare l’app</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Sblocca utilizzando l’impronta digitale se hai aggiunto scorciatoie o quando un sito web è già aperto in %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Invisibile</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Nascondi le pagine web durante il passaggio tra le app e impedisci l’acquisizione di schermate.</string>
+
+ <string name="preference_category_security">Sicurezza</string>
+
+ <string name="preference_category_performance">Prestazioni</string>
+ <string name="preference_performance_block_webfonts">Blocca web font</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Alcune immagini e icone potrebbero non essere visualizzate</string>
+
+ <string name="preference_performance_block_javascript">Blocca JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Il caricamento delle pagine può velocizzarsi, ma potrebbero anche verificarsi errori imprevisti</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Imposta %1$s come browser predefinito</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Invia dati sull’uso</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Ulteriori informazioni</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla cerca di raccogliere solo i dati necessari per fornire e migliorare %1$s per tutti gli utenti.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Informativa sulla privacy</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Informazioni sulla licenza</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Librerie utilizzate</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Librerie OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Informazioni su %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Motori di ricerca installati</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Seleziona motore di ricerca</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Ripristina motori di ricerca predefiniti</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Aggiungi un altro motore di ricerca</string>
+ <string name="preference_search_remove_title">Rimozione motori di ricerca</string>
+ <string name="preference_search_remove">Rimuovi</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Aggiungi un altro motore di ricerca</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Seleziona il motore di ricerca preferito:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Aggiungi motore di ricerca</string>
+
+ <string name="search_add_manually_name_hint">Nome del motore di ricerca</string>
+ <string name="search_add_manually_string">Stringa di ricerca da utilizzare</string>
+ <string name="search_add_manually_save">Salva</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Esempio: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Aggiunto nuovo motore di ricerca.</string>
+
+ <string name="search_add_error_empty_name">Inserire il nome del motore di ricerca</string>
+ <string name="search_add_error_duplicate_name">È già presente un motore di ricerca con questo nome.</string>
+
+ <string name="search_add_error_empty_search">Inserire la stringa di ricerca</string>
+
+ <string name="search_add_error_format">Verifica che la stringa di ricerca corrisponda al formato di esempio</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Cancella testo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Chiudi</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Elimina cronologia di navigazione</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Schede aperte: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Connessione sicura</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Caricamento…</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Sito web caricato</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Altre opzioni</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Pulsante altre opzioni</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Naviga in avanti</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Ricarica il sito web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Torna indietro</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Interrompi il caricamento del sito</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Torna all’applicazione precedente</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Numero di tracciamenti bloccati</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blocca elementi traccianti</string>
+
+ <string name="your_rights">I tuoi diritti</string>
+
+ <string name="external_app_prompt_title">Apri link in un’altra app</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">È possibile uscire da %1$s e aprire questo link in %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Trova un app per aprire il link</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Nessuna delle app sul dispositivo è in grado di aprire questo link. È possibile uscire da %1$s e cercare una app adatta in %2$s.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Uscire da Navigazione anonima?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s completato</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Apri</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Aggiunto alle scorciatoie.</string>
+
+ <string name="error_hostLookup_title">Impossibile contattare il server</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Chiudi</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Benvenuto in %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Veloce. Privato. Nessuna distrazione.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Inizia</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s non è come gli altri browser</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Cancelliamo la tua cronologia quando chiudi l’app per garantirti una maggiore privacy.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Imposta %1$s come browser predefinito per proteggere i tuoi dati quando apri qualsiasi link.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Imposta come browser predefinito</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Ignora</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Potenzia la tua privacy</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Porta la navigazione anonima a un livello superiore. Blocca pubblicità e altri contenuti che cercano di seguirti attraverso siti diversi e rallentano il caricamento delle pagine.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">La ricerca a modo tuo</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Stavi cercando qualcos’altro? Scegli un altro motore di ricerca predefinito nelle Impostazioni.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Aggiungi collegamenti alla schermata principale</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Ritorna più velocemente ai tuoi siti preferiti con %1$s. Seleziona “Agg. a schermata principale” dal menu di %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Trasforma la privacy in un’abitudine</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Imposta %1$s come browser predefinito e goditi i vantaggi della navigazione anonima quando apri pagine web da altre app.</string>
+
+ <string name="firstrun_close_button">OK</string>
+ <string name="firstrun_skip_button">Ignora</string>
+ <string name="firstrun_next_button">Avanti</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Aggiungi</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">SÌ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Annulla</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NO</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Questa scorciatoia verrà aperta con la Protezione antitracciamento avanzata disattivata</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sessione di navigazione anonima</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Le notifiche permettono di eliminare i dati della sessione di %1$s con un tocco. Non serve aprire l’app o controllare il contenuto del browser.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Elimina cronologia di navigazione</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Scarica Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s è un software libero e Open Source realizzato da Mozilla e altri collaboratori.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s è disponibile nei termini della <a href="%2$s">Mozilla Public License</a> e di altre licenze Open Source.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Mozilla non attribuisce all’utente alcun diritto o licenza relativamente all’utilizzo dei marchi registrati da Mozilla Foundation o da altri soggetti, inclusi i nomi Mozilla, Firefox, %1$s e i logo associati. Ulteriori informazioni sono disponibili in <a href="%2$s">questa pagina</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Codice sorgente aggiuntivo per %1$s è disponibile nei termini di altre <a href="%2$s">licenze</a> libere e Open Source.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s utilizza un servizio di <em>blocklist</em> fornito da Disconnect, Inc. in qualità di opera aggiuntiva e separata, distribuita nei termini della <a href="%2$s">GNU General Public License v3</a> e disponibile <a href="%3$s">qui</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nome utente</string>
+ <string name="gv_prompt_password_hint">Password</string>
+ <string name="gv_prompt_clear">Cancella</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Connessione sicura</string>
+ <string name="security_popup_insecure_connection">Connessione non sicura</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verificata da: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Sicurezza del sito</string>
+ <string name="preference_autocomplete_duplicate_url_error">Indirizzo già presente</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Trova nella pagina</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Trova nella pagina</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d di %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Risultato successivo</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Risultato precedente</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Abbandona ricerca</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Richiedi sito desktop</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Sito desktop</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL copiato</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Strumenti di sviluppo</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Apri i link nelle app</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avanzate</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Permessi dei siti</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Riduzione banner per i cookie</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Attiva</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Disattivata</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Riduzione banner per i cookie</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Visualizza meno banner rifiutando automaticamente, dove possibile, le richieste di cookie.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Riduzione banner per i cookie</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ATTIVA per questo sito</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Sito attualmente non supportato</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">DISATTIVATA per questo sito</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Riduzione banner per i cookie</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">DISATTIVATA per questo sito</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ATTIVA per questo sito</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Attivare la riduzione banner per i cookie su %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Disattivare la riduzione banner per i cookie su %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s eliminerà i cookie per questo sito e aggiornerà la pagina. L’eliminazione dei cookie potrebbe disconnetterti dal sito o svuotare eventuali carrelli in sospeso.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s può cercare di rifiutare automaticamente le richieste di cookie.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Questo sito non è attualmente supportato dalla funzione per ridurre i banner per i cookie. Vuoi chiedere al nostro team di valutare questo sito web e aggiungere supporto in futuro?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Annulla</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Richiedi supporto</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Richiesta di supportare il sito inviata.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Richiesta di supportare il sito inviata.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s cerca di rifiutare le richieste di cookie per chiudere i fastidiosi banner per i cookie.\n\nGestisci le preferenze relative ai banner per i cookie nelle %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">impostazioni</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Riproduzione automatica</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Per consentirlo:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Apri le impostazioni di Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tocca <b>Autorizzazioni</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Apri Impostazioni</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Imposta <b>%1$s</b> su Consenti]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Fotocamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Microfono</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Posizione</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notifiche</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Contenuti protetti da DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Chiedi il consenso</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Bloccato</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Consentito</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Bloccato da Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Consenti audio e video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blocca solo l’audio</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Consigliato</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blocca audio e video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studi</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox può installare e condurre degli studi di tanto in tanto.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Ulteriori informazioni</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Per applicare le modifiche l’applicazione verrà chiusa</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Rimuovi</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Attivi</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Completati</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Debug remoto attraverso USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Sblocca</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Conferma utilizzando la tua impronta digitale</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Puoi utilizzare la tua impronta digitale per continuare la sessione corrente dell’app.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Apri link in nuova sessione</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Icona dell’impronta digitale</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Impronta digitale non riconosciuta. Riprova.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Dito rimosso troppo presto. Riprova.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Mostrare i suggerimenti di ricerca?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Per ricevere suggerimenti, %1$s deve inviare ciò che digiti nella barra degli indirizzi al motore di ricerca.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">No</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Sì</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">I suggerimenti non sono disponibili per tutti i motori di ricerca.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Ignora</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Un sito mostra un comportamento anomalo?\n Prova a disattivare la protezione antitracciamento</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Accedi con un solo tocco ai siti che visiti più spesso%1$s Menu > Agg. a schermata principale]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Apri ogni link in %1$s\n Imposta %1$s come browser predefinito</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Completamento automatico degli indirizzi per i siti che visiti più spesso\n Tieni premuto più a lungo un indirizzo URL nella barra degli indirizzi</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Apri un link in una nuova scheda\n Tieni premuto a lungo un link in una pagina</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Disattiva suggerimenti nella schermata iniziale</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Aperta nuova scheda</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Passa a</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Passato a schermo intero</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Passa direttamente al link nella nuova scheda</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Blocca siti potenzialmente pericolosi e ingannevoli</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blocca i siti che sono stati segnalati come malevoli o ingannevoli, contenenti malware o software indesiderato.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Modalità solo HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Tenta automaticamente la connessione ai siti utilizzando il protocollo di crittografia HTTPS per una maggiore sicurezza.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Eccezioni</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Il blocco contenuti è disattivato per i seguenti siti.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Rimuovi</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Rimuovi tutti i siti</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blocca cookie</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Bloccare i cookie?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Scheda bloccata</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Si è verificato un problema con questa scheda.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Per motivi di riservatezza le tue schede non vengono salvate e, di conseguenza, non possono essere ripristinate.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Chiudi scheda</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Invia la segnalazione di arresto anomalo a Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Elementi traccianti bloccati dal %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Contenuti</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Annunci pubblicitari</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Statistiche</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Protezione antitracciamento avanzata</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Le protezioni sono DISATTIVATE per questo sito</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Le protezioni sono ATTIVE per questo sito</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">La connessione è sicura</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">La connessione non è sicura</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Elementi traccianti e script da bloccare</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Torna indietro</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Rimuovi</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Rinomina</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Rinomina</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nome scorciatoia</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Le immagini salvate e condivise &lt;b&gt;non verranno eliminate&lt;/b&gt; quando si elimina la cronologia di %1$s.</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Chiaro</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Scuro</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Impostato da Risparmio energetico</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Usa il tema del dispositivo</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Questo sito non supporta HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s cerca di utilizzare una connessione HTTPS quando possibile per una maggiore sicurezza.
+ <a href="%2$s">Ulteriori informazioni</a> <br/><br/>
+ Modifica questa impostazione in Impostazioni > Privacy e sicurezza > Sicurezza.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Connessione non sicura</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Potrebbe trattarsi di un problema nella configurazione del server oppure di un tentativo da parte di qualcuno di sostituirsi al server stesso.<br/><br/>
+ Se è stato possibile connettersi a questo server in passato, il problema potrebbe essere solo temporaneo.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Potrebbe trattarsi di un tentativo di sostituirsi al sito originale e continuare potrebbe essere rischioso.</label>
+ <br><br>
+ <label>%1$s non considera attendibile <b>%2$s</b> in quanto l’emittente del certificato è sconosciuto, il certificato è autofirmato oppure il server non ha inviato i certificati intermedi previsti.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Chiudi scheda</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Preso! Abbiamo impedito a questo sito di spiarti. Tocca lo scudo in qualsiasi momento per vedere che cosa viene bloccato.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Chiudi pop-up</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Sei protetto!</string>
+
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Queste impostazioni predefinite offrono una buona protezione. In ogni caso è facile modificare le impostazioni per soddisfare le tue esigenze specifiche.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Chiudi</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tocca qui per eliminare tutti i dati — cronologia, cookie, tutto! — e ricominciare da capo con una nuova scheda.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Chiudi</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget di ricerca</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Cronologia di navigazione eliminata 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Inizia la tua sessione di navigazione anonima. Nel frattempo, noi rimuoveremo elementi traccianti e altre minacce.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Ti lasciamo alla tua navigazione privata, ma la prossima volta ricorda che puoi iniziare più rapidamente utilizzando il widget di %1$s nella schermata principale.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Aggiungi widget alla schermata principale</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget aggiunto alla schermata principale</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-iw/strings.xml b/mobile/android/focus-android/app/src/main/res/values-iw/strings.xml
new file mode 100644
index 0000000000..341da731a3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-iw/strings.xml
@@ -0,0 +1,1093 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">ביטול</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">אישור</string>
+
+ <string name="action_save">שמירה</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">חיפוש או הכנסת כתובת</string>
+
+ <string name="teaser">גלישה פרטית אוטומטית.\nגלישה. מחיקה. חזרה להתחלה.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">היסטוריית הגלישה שלך נמחקה.</string>
+ <string name="feedback_erase2">היסטוריית הגלישה נמחקה</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">היסטוריית הגלישה של הלשונית נמחקה.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">חיפוש עבור %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">שיתוף…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">דיווח על בעיה באתר</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">פתיחה ב־%1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">פתיחה ב…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">הוספה למסך הבית</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">הוספה לקיצורי הדרך</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">הסרה מקיצורי הדרך</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">הגדרות</string>
+ <string name="menu_about">על אודות</string>
+ <string name="menu_help">עזרה</string>
+ <string name="menu_rights">הזכויות שלך</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">רכיבי מעקב חסומים</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">כיבוי אפשרות זו עשוי לתקן בעיות מסוימות באתרים</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">חסימת תוכן</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">כיבוי תיקוני אתרים</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">מופעל על־ידי %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">שיתוף באמצעות</string>
+
+ <string name="notification_erase_title_android_14">למחוק את היסטוריית הגלישה?</string>
+
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">יש להקיש או לנקות התרעה זו כדי למחוק בצורה מאובטחת את היסטוריית הגלישה שלך.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">יש להקיש או להחליק על התרעה זו כדי למחוק בצורה מאובטחת את היסטוריית הגלישה שלך.</string>
+
+ <string name="notification_erase_text">מחיקת היסטורית גלישה</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">פתיחה</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">מחיקה ופתיחה</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">מחיקה</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">מחיקת היסטורית גלישה</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">מחיקה ופתיחה</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">מחיקה ופתיחה של %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">חיפוש ב־Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">חיפוש ב־Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">חיפוש ב־Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">חיפוש ב־Focus Nightly</string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">פרטיות ואבטחה</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">מעקב, עוגיות, בחירות נתונים</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">הגדרת בררת מחדל, השלמה אוטומטית</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">על אודות %1$s, עזרה</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">הגנת מעקב מתקדמת</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">תוכן מקוון</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">מעבר בין יישומים</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">כללי</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">דפדפן ברירת מחדל, שפה</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">איסוף ושימוש במידע</string>
+
+ <string name="preference_category_search">חיפוש</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">קבלת הצעות חיפוש</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">‏%1$s ישלח מה שיוקלד בשורת הכתובת אל מנוע החיפוש שלך</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">ברירת מחדל</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">מנוע חיפוש</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">פעיל</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">כבוי</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">השלמת כתובת אוטומטית</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">לאתרים המובילים</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">יש להפעיל כדי ש־%s ישלים אוטומטית למעלה מ־450 כתובות נפוצות בשורת הכתובת.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">לאתרים שהוספת</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">יש להפעיל כדי ש־%s ישלים אוטומטית את כתובות האתרים המועדפות עליך.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">ניהול אתרים</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">ניהול אתרים</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ הוספת כתובת מותאמת אישית</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">רשימת ההשלמה האוטומטית שלך:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">הוספת כתובת</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">הוספת כתובת מותאמת אישית</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">הוספת כתובת בהתאמה אישית</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">הוספת קישור להשלמה אוטומטית</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">עוגיות ונתוני אתרים</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">בחירות נתונים</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">הסרת כתובות מותאמות אישית</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">מידע נוסף</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">הוספה וניהול של כתובת השלמה אוטומטית בהתאמה אישית.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">כתובת להוספה</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">נא להדביק או להקליד כתובת</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">לדוגמה: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">דוגמה: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">נוספה כתובת מותאמת אישית חדשה.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">הסרה</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">הסרה</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">נא לבדוק שוב את הכתובת שהקלדת.</string>
+
+ <string name="preference_language">שפה</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">ברירת מחדל של המערכת</string>
+
+ <string name="preference_category_privacy">פרטיות</string>
+ <string name="preference_privacy_block_ads">חסימת רכיבי מעקב</string>
+ <string name="preference_privacy_block_ads_summary">חלק מהפרסומות עוקבות אחר הביקורים באתרים, אפילו אם לא לחצת על הפרסומות</string>
+ <string name="preference_privacy_block_analytics">חסימת מעקב של כלי ניתוח</string>
+ <string name="preference_privacy_block_analytics_summary">משמשות לאיסוף ניתוח ומדידת פעילויות כגון לחיצה וגלילה</string>
+ <string name="preference_privacy_block_social">חסימת רכיבי מעקב חברתיים</string>
+ <string name="preference_privacy_block_social_summary">מוטמעות באתרים לצורך מעקב אחר הביקורים שלך והצגת רכיבים כגון כפתורי שיתוף</string>
+ <string name="preference_privacy_block_content">חסימת כלי מעקב אחרים</string>
+ <string name="preference_privacy_block_content_summary2">הפעלת התכונה עשויה לגרום לחלק מהאתרים להתנהג שלא כצפוי</string>
+ <string name="preference_privacy_category_cookies">חסימת עוגיות</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">לא תודה</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">חסימת עוגיות מעקב צד־שלישי בלבד</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">חסימת עוגיות צד־שלישי בלבד</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">חסימת עוגיות חוצות אתרים</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">כן בבקשה</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">שימוש בטביעת אצבע כדי לשחרר את נעילת היישומון</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">ביטול הנעילה באמצעות טביעת אצבע אם הוספת קיצורי דרך או כאשר אתר אינטרנט כבר פתוח ב‏%s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">חשאיות</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">הסתרת דפי אינטרנט בעת מעבר בין יישומונים וחסימת האפשרות לצילום המסך.</string>
+
+ <string name="preference_category_security">אבטחה</string>
+
+ <string name="preference_category_performance">ביצועים</string>
+ <string name="preference_performance_block_webfonts">חסימת גופני רשת</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">עשוי לגרום לסמלים או תמונות חסרים</string>
+
+ <string name="preference_performance_block_javascript">חסימת JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">הדפים עשויים להיטען מהר יותר, אך עשויים גם להתנהג באופן בלתי צפוי</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">הגדרת %1$s כדפדפן ברירת המחדל</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">שליחת נתוני שימוש</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">מידע נוסף</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">‏Mozilla חותרת לאסוף רק מה שנדרש לצורך שיפור %1$s לטובת הכלל.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">הצהרת פרטיות</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">מידע רישוי</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">ספריות בהן אנו משתמשים</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">‏%s | ספריות OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">על אודות %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">מנועי חיפוש מותקנים</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">בחירת מנועי חיפוש</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">שחזור מנועי חיפוש ברירת מחדל</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ הוספת מנוע חיפוש נוסף</string>
+ <string name="preference_search_remove_title">הסרת מנועי חיפוש</string>
+ <string name="preference_search_remove">הסרה</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">הוספת מנוע חיפוש נוסף</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">בחירת המנוע המועדף עליך:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">הוספת מנוע חיפוש</string>
+
+ <string name="search_add_manually_name_hint">שם מנוע החיפוש</string>
+ <string name="search_add_manually_string">מחרוזת חיפוש לשימוש</string>
+ <string name="search_add_manually_save">שמירה</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">דוגמה: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">נוסף מנוע חיפוש חדש.</string>
+
+ <string name="search_add_error_empty_name">נא להקליד שם למנוע החיפוש</string>
+ <string name="search_add_error_duplicate_name">קיים מנוע חיפוש מותקן בעל שם זהה.</string>
+
+ <string name="search_add_error_empty_search">נא להקליד מחרוזת חיפוש</string>
+
+ <string name="search_add_error_format">יש לבדוק שמחרוזת החיפוש תואמת לתבנית שבדוגמה</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">מחיקת קלט</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">התעלמות</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">מחיקת היסטורית גלישה</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">לשוניות פתוחות: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">חיבור מאובטח</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">בטעינה</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">האתר נטען</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">אפשרויות נוספות</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">כפתור אפשרויות נוספות</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">ניווט קדימה</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">טעינה מחדש של האתר</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">ניווט אחורה</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">עצירת טעינת האתר</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">חזרה ליישום קודם</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">מספר רכיבי המעקב החסומים</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">חסימת רכיבי מעקב</string>
+
+ <string name="your_rights">הזכויות שלך</string>
+
+ <string name="external_app_prompt_title">פתיחת קישור ביישומון אחר</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">ניתן לעזוב את %1$s כדי לפתוח את הקישור הזה ב־%2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">חיפוש יישומון שיוכל לפתוח את הקישור</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">אף אחד מהיישומים שבמכשיר שלך יכולים לפתוח את הקישור הזה. ניתן לעזוב את %1$s כדי לחפש תחת %2$s יישומון שיכול לבצע זאת.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">לצאת ממצב גלישה פרטית?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s הסתיים</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">פתיחה</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">נוסף לקיצורי הדרך!</string>
+
+ <string name="error_hostLookup_title">שרת לא נמצא</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">סגירה</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">ברוכים הבאים אל %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">מהיר. פרטי. ללא הסחות דעת.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">תחילת עבודה</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">‏%1$s אינו דומה לדפדפנים אחרים</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">אנו מנקים את ההיסטוריה שלך כאשר היישומון נסגר, לפרטיות מוגברת.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">ניתן להפוך את %1$s לדפדפן ברירת המחדל שלך כדי להגן על הנתונים שלך עם כל קישור שנפתח.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">הגדרה כדפדפן ברירת המחדל</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">דילוג</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">חיזוק הפרטיות שלך</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">לקחת את הגלישה המאובטחת לרמה הבאה. ניתן לחסום פרסומות ותוכן אחר שעשוי לסייע במעקב אחריך בין אתרים שונים ולהפריע לזמני טעינת עמודים.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">החיפוש שלך, בדרך שלך</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">לא מה שחיפשת? ניתן לבחור במנוע חיפוש אחר כברירת מחדל בהגדרות.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">הוספת קיצורי דרך למסך הבית שלך</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">ניתן לחזור לאתרים המועדפים עליך ב־%1$s בקלות. עליך פשוט לבחור באפשרות „הוספה למסך הבית” מהתפריט %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">להפוך את הפרטיות להרגל</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">ניתן להגדיר את %1$s בתור דפדפן ברירת המחדל שלך ולקבל את היתרונות של גלישה פרטים בעת פתיחת עמודי אינטרנט מיישומונים אחרים.</string>
+
+ <string name="firstrun_close_button">בסדר, הבנתי!</string>
+ <string name="firstrun_skip_button">דילוג</string>
+ <string name="firstrun_next_button">הבא</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">הוספה</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">כן</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">ביטול</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">לא</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">קיצור הדרך ייפתח ללא הגנת המעקב המתקדמת</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">הפעלה בגלישה פרטית</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">התרעות מאפשרות לך למחוק את ההפעלה של %1$s בנגיעה קלה. אין צורך לפתוח את היישומון או לראות מה פועל בדפדפן שלך.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">מחיקת היסטורית גלישה</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">הורדת Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s היא תכנית חופשית ובקוד פתוח שפותחה על ידי Mozilla ותורמים נוספים.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s זמין לשימוש תחת <a href="%2$s">תנאי הרשיון הציבורי של Mozilla</a> ורשיונות קוד פתוח אחרים.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[קוד מקור נוסף עבור %1$s זמין תחת מגוון <a href="%2$s">רישיונות</a> קוד פתוח נוספים.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[ב־%1$s נעשה גם שימוש ברשימות חסימה מאת Disconnect בע״מ כעבודות נפרדות ועצמאיות תחת <a href="%2$s">גרסה 3 של הרשיון הציבורי הכללי של GNU</a>, והוא זמין <a href="%3$s">כאן</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">שם משתמש</string>
+ <string name="gv_prompt_password_hint">ססמה</string>
+ <string name="gv_prompt_clear">ניקוי</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">חיבור מאובטח</string>
+ <string name="security_popup_insecure_connection">חיבור לא מאובטח</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">מאומת ע״י: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">אבטחת האתר</string>
+ <string name="preference_autocomplete_duplicate_url_error">הכתובת כבר קיימת</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">חיפוש בדף</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">חיפוש בדף</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d מתוך %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">חיפוש התוצאה הבאה</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">חיפוש התוצאה הקודמת</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">סגירת החיפוש בדף</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">בקשת אתר למחשבים</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">אתר למחשבים</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">הכתובת הועתקה</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">כלי פיתוח</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">פתיחת קישורים ביישומונים</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">מתקדם</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">הרשאות אתר</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">צמצום כרזות עוגיות</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">פעילה</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">כבויה</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">צמצום כרזות עוגיות</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">צמצום כרזות עוגיות</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">פעיל עבור אתר זה</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">האתר לא נתמך כרגע</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">כבוי עבור אתר זה</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">צמצום כרזות עוגיות</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">כבוי עבור אתר זה</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">פעיל עבור אתר זה</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">להפעיל צמצום כרזות עוגיות לאתר %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">להשבית צמצום כרזות עוגיות לאתר %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">‏%1$s ינקה את העוגיות של אתר זה וירענן את הדף. ניקוי כל העוגית עשוי לנתק את החשבון שלך מהאתר או לרוקן את עגלת הקניות שלך.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">‏%1$s יכול לנסות לדחות באופן אוטומטי בקשות כרזות עוגיות.</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">ביטול</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">בקשת תמיכה</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">הבקשה לתמיכה באתר הוגשה.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">הבקשה לתמיכה באתר הוגשה.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">הגדרות</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">ניגון אוטומטי</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">כדי לאפשר את ההרשאה:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. יש לעבור להגדרות של Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. לגעת ב<b>הרשאות</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">מעבר להגדרות</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. לשנות את המצב של <b>%1$s</b> לכדי פעיל]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">מצלמה</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">מיקרופון</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">מיקום</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">התרעה</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">תוכן מוגן DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">לבקש לאפשר</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">חסום</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">מאופשר</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">חסום על־ידי Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">הפעלת שמע ווידאו</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">חסימת שמע בלבד</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">מומלץ</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">חסימת שמע ווידאו</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">מחקרים</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">‏Firefox עשוי להתקין ולהריץ מחקרים מדי פעם בפעם.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">מידע נוסף</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">היישומון ייסגר להחלת השינויים</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">הסרה</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">פעיל</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">הושלמו</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">ניפוי שגיאות מרחוק דרך USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">שחרור נעילה</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">נא לאשר באמצעות טביעת האצבע שלך</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">באפשרותך להשתמש בטביעת האצבע שלך כדי להמשיך בהפעלת היישומון הנוכחית שלך.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">פתיחת קישור בהפעלה חדשה</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">סמל טביעת אצבע</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">טביעת האצבע לא זוהתה. נא לנסות שוב.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">האצבע זזה מהר מדי. נא לנסות שוב.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">להציג הצעות חיפוש?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">כדי לקבל הצעות, על %1$s לשלוח מה שמוקלד בשורת הכתובת אל מנוע החיפוש.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">לא</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">כן</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">חלק ממנועי החיפוש לא יכולים להציע הצעות.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">התעלמות</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">האתר מתנהג באופן בלתי צפוי?\n ניתן לנסות לבטל את הגנת המעקב</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[קבלת גישה בלחיצה קלילה לאתרים הנפוצים שלך%1$s תפריט > הוספה למסך הבית]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">פתיחת כל קישור עם %1$s\n הגדרת %1$s כדפדפן ברירת המחדל</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">השלמה אוטומטית של כתובות עבור האתרים הנפוצים שלך\n
+יש ללחוץ לחיצה ארוכה על כתובת כלשהי בשורת הכתובת
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">פתיחת קישור בלשונית חדשה\n יש ללחוץ לחיצה ארוכה על כל קישור שהוא בעמוד</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">כיבוי עצות במסך ההתחלה</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">לשונית חדשה נפתחה</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">מעבר</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">עברת למצב מסך מלא</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">מעבר לקישור בלשונית החדשה מיידית</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">חסימת אתרים המעוררים חשד לסכנה או הונאה</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">חסימת אתרי הונאה ומתקפה, אתרי נוזקה ואתרי תכניות בלתי רצויות.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">מצב HTTPS בלבד</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">מנסה להתחבר באופן אוטומטי לאתרים באמצעות פרוטוקול ההצפנה HTTPS לצורך אבטחה מוגברת.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">חריגות</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">ביטלת את חסימת התוכן באתרים אלו.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">הסרה</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">הסרת כל האתרים</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">חסימת עוגיות</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">האם ברצונך לחסום עוגיות?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">הלשונית קרסה</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">חווינו תקלה עם הלשונית הזאת. עמך הסליחה.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">בתור דפדפן פרטי, אנו לא יכולים לשמור ולשחזר את הלשונית הזאת.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">סגירת לשונית</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">שליחת דוח קריסה אל Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">רכיבי מעקב חסומים מאז %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">תוכן</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">פרסום</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">רשתות חברתיות</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">הגנת מעקב מתקדמת</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">ההגנות כבויות עבור אתר זה</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">ההגנות פעילות עבור אתר זה</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">החיבור מאובטח</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">החיבור אינו מאובטח</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">רכיבי מעקב ותסריטים לחסימה</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">חזרה אחורה</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">הסרה</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">שינוי שם</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">שינוי שם</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">שם קיצור הדרך</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">תמונות שמורות ומשותפות &lt;b&gt;לא יימחקו&lt;/b&gt; בעת מחיקת ההיסטוריה של %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">ערכת נושא</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">בהירה</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">כהה</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">מוגדר על־ידי מצב חיסכון בסוללה</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">שימוש בערכת הנושא של המכשיר</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">אתר זה אינו תומך ב־HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[‏%1$s מנסה להשתמש בחיבור HTTPS במידת האפשר להגברת האבטחה.
+ <a href="%2$s">מידע נוסף</a> <br/><br/>
+ ניתן לשנות הגדרה זו בהגדרות > פרטיות ואבטחה > אבטחה.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">החיבור אינו מאובטח</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ ייתכן שמדובר בבעיה בתצורת השרת או שגורם כלשהו מנסה להתחזות לשרת.<br/><br/>
+ אם התחברת לשרת זה בהצלחה בעבר, ייתכן שהשגיאה זמנית.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>ייתכן שמישהו מנסה להתחזות לאתר, וההמשך אליו עלול להיות מסוכן.</label>
+ <br><br>
+ <label>ל־%1$s אין אמון ב־<b>%2$s</b> כיוון שמנפיק האישור אינו מוכר, האישור נחתם עצמאית, או שהשרת לא שולח את אישורי הביניים הנכונים.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">סגירת לשונית</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">תפסנו אותם על חם! מנענו מאתר זה לרגל אחריך. יש להקיש על המגן לקבלת מידע על מה שאנחנו חוסמים.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">סגירת חלון קופץ</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">אתה מוגן!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">הגדרות ברירת המחדל האלו מציעות הגנה חזקה, אבל קל לשנות את ההגדרות כדי לענות על הצרכים הספציפיים שלך.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">סגירה</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">יש להקיש כאן כדי לזרוק הכל לזבל — היסטוריה, עוגיות, הכל — ולהתחיל מההתחלה בלשונית חדשה.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">סגירה</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">חיפוש יישומון</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">היסטוריית הגלישה נמחקה! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">ניתן להתחיל בהפעלת הגלישה הפרטית שלך, ואנחנו נחסום רכיבי מעקב ושאר מרעין בישין תוך כדי.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">ניתן לך להמשיך בגלישה הפרטית שלך, אבל אולי קודם כדאי להוסיף את היישומון של %1$s למסך הבית שלך לצורך הפעלה מהירה יותר.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">הוספת יישומון למסך הבית</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">יישומון נוסף למסך הבית</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ixl/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ixl/strings.xml
new file mode 100644
index 0000000000..527cade75b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ixl/strings.xml
@@ -0,0 +1,1103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Ya\'sa</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">B\'a\'n kuxhtu\'</string>
+
+ <string name="action_save">Kola</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Chuka as moj la aaq\'ku\' ka\'t b\'ii</string>
+
+ <string name="teaser">A\' kuxhe\' la ixaansa tib\' as eetz kuxhtu\'.\nXaanen stuul. Josq\'ii. Ka\'pu.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Sojsamal ve\'t unq\'a vee\' uve\' chukel kan.</string>
+
+ <string name="feedback_erase2">Kat sotzyu unq´a vee´ chukeltu ve´t kan</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Kat sotzyu unq´a vee´ chukeltu ve´t kan tu k´uchb´al tetz.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Chuka %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Q\'ajsab\'en…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">La aalb\'en asoj ni yan u vaa\'</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">La jaj tu %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">La jaj tu…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">La aaq\' tu vivatze\' uve\' ti xe\'teb\'al</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Aq´kan eexhlal uva´ jik kuxh alejata´</string>
+
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">La sojsa el unq´a eexhlale´ uve´ jik kuxh alejata´</string>
+
+ <string name="menu_settings">B\'an tuche\'</string>
+ <string name="menu_about">Ti\' uvaa\'</string>
+ <string name="menu_help">Lochb\'al</string>
+ <string name="menu_rights">Uve\' la uch ab\'anata</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Majel ve\'t ivatz unq\'a jitin tetze\'</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">La q´alpu u vaa´ tan la txakoni ti´ ib´anax tuchaj kam tulaj u atinb´ala´</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Imajpu ivatz aq´on</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">La q´alpu unpajte aq´al uva´ la b´antuch umaj kam</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">A\' u %1$s kat cheesan</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">La jatxb\'en tuk\'</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Sojsa kaajayil unq\'a vee\' chukel ve\'te\'</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Jaja</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Tzaasa\'m tuk\' oypisa\'m</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Sojsa</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Sotzsaj tachul unq\'a vee pich\'umal vete\'</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Sojsamal as ijajpe´</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Isojsal as ijajpu %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">La chuk tu Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">La chuk tu Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">La chuk tu Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">La chuk tu Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s ni taq’ teq’ol isuuchil.</p>
+<p>B’anb’e u chukb’al uva’ eetz kuxhtu’:
+ <ul>
+ <li>Chuka as ti kuxh u aplicación la atin kat axh</li>
+ <li>La majpu ivatz unq’a chukunaal (moj la b’anax tuche’ aq’al uva’ la uch tok u chukunaal)</li>
+ <li>Sojsa aq’al uva’ la eesa-el u cookies as unq’a vee’ chukeltu ve’te’</li>
+ </ul>
+</p>
+<p>%1$s a’ u Mozilla kat aq’on. U qitz’ab’al nisa’ taq’at Internet b’a’n as jajlukan unpajte.<br/>
+<a href="%2$s">Ootzi unka’te</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Ye\'xhib\'il unka\'te la ootzin as tii tatine\'</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Ka\'taj Kam ti\' atiisata\', cookies as tachul</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">La aaq\'kan tetz kuxhtu\', ankuxhe\' la tz\'ajsan</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Tokeb\'al %1$s, lochb\'al</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Ilochpu ikach´ub´al aq´al uva´ ye´ la pich´uli</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Tuuleb\'al u web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Ijalpul teq\'ol tetz</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Kaajayil</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">La aaq´kan uva´ a´ chite´ la b´anb´e, yolb´al unpajte</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Imolpu tachul as ib\'anb\'ele\'</string>
+
+ <string name="preference_category_search">Chukb\'al</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">La k\'ul ka\'taj txumb\'al ti\' achukata\'</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s tuk aq\'on b\'en unq\'a vee\' natz\'ib\'a tu k\'uchb\'al tetze\'</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">B\'ek\'</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Chukb´al tetz</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Oypisa\'m</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Tzaanale</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Ankuxhe\' la tz\'ajsan u URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Unq´a atinb´ale´ uve´ pal chit asa´ata´</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">La ooypisa u %s aq´al uva´ ankuxhe´ la b´anon tuch u 450 URLs uva´ pal chit qilata´ tulaj unq´a k´uchb´al tetze´.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Tetz unq´a atinb´ale´ uve´ tuk aaq´ku´</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">La ooypisa aq´al uva´ ankuxh u %s la b´anon tuch unq´a URLs uve´ ni chit asa´.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Tilpu isuuchil unq´a atinb´ale´</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Tilpu isuuchil unq´a atinb´ale´</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Aq\' ve\'t unq\'a URL uve\' b\'anel ve\'t tuche\'</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Tachul unq´a aq´one´ uve´ ankuxhe´ kat b´anon tuche´:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Aq´ku´ u URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Aq\' ve\'t unq\'a URL uve\' b\'anel ve\'t tuche\'</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Aq\' ve\'t unq\'a URL uve\' b\'anel ve\'t tuche\'</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Aq´ku´ u chukb´al tetze´ aq´al uva´ ankuxhe´ la b´anon tuche´</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies as tachul tu tatinb\'ale\'</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Ka\'taj tatin tachul</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Sojsa unq\'a URLs uve\' b\'anel ve\'t tuche\'</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Chus nimate</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Okso\'ke as saji kam la tulb\'e itz\'ajsat je\' tib u URLs uve\' b\'anel ve\'t tuche\'.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL uva\' a\'n la ookso\'k</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Aq\'o\'ke\' moj okso\'k u URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">K\'uchuvatz: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">K\'uchuvatz: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Ak\' URL uva\' b\'anel ve\'t tuche\' at ve\'t ok.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Sojsa</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Sojsa</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Suchq\'en ti apich\'ut u URL uve\' kat ookso\'ke.</string>
+
+ <string name="preference_language">Yolb\'al</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Iyak\'ib\'al u taq\'onb\'ale\' uve\' at kan chitu\'</string>
+
+ <string name="preference_category_privacy">Tetz kuxhtu\'</string>
+ <string name="preference_privacy_block_ads">Maj ivatz unq\'a tiinsan tetz unq\'a vee\' ni tal tziile\'</string>
+ <string name="preference_privacy_block_ads_summary">At jununil unq\'a vee\' ni taltziile\' uve\' ni tiinsan unq\'a kame\' uve\' napich\'u\', kuxh ye\'xh kam nalaae\'</string>
+ <string name="preference_privacy_block_analytics">Maj ivatz unq\'a tiinsab\' tetze\' uve\' ni pich\'un</string>
+ <string name="preference_privacy_block_analytics_summary">Ni b\'anb\'ele\' ti\' imolpe\', ipich\'ule\', isajil aq\'on Kam ikaape\' as iyikule\'</string>
+ <string name="preference_privacy_block_social">Maj ivatz unq\'a tiinsan tetz tenam</string>
+ <string name="preference_privacy_block_social_summary">Atje\' stiib\'a tulaj ti\'aj unq\'a vee\' aq\' al uva\' la tiinsal uve\' kat apich\'u as la ik\'uch unq\'a lak\'b\'ale\' ti\' ijatxpe\'</string>
+ <string name="preference_privacy_block_content">Maj ivatz unq\'a tiinsan tetze\' tetz ka\'taj yol</string>
+ <string name="preference_privacy_block_content_summary2">Asoj la ooypisa la ib\'ane\' uva\' vale\'n kuxh la ib\'an ka\'t unq\'a ivatze\'</string>
+ <string name="preference_privacy_category_cookies">Maj ivatz unq\'a cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ye´le, ta´ntiixh</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Maj ivatz unq´a cookies ti´ ipich´ul ta´n ka´t uxchil</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Maj ivatz unq\'a cookies tetz va\'len xaaol</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Maj ivatz unq´a cookies uve´ at kan xo´l unq´a atinb´ale´</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Eche´ vee´, b´an b´a´nil</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">B\'anb\'e u vi\' aq\'ab\'e\' aq\'al uva\' la jaj u aplicacione\'</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Jaja ta’n vi’ aq’ab’ asoj pajlat kuxh kat ak’ujb’a’kan moj tul uva’ jajlu kan ve’t uma’t kam tu %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Ye\'xh kam na\'l</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Muj ivatz unq\'a web tul uva\' ni jalpu unq\'a aplicaciones.</string>
+
+ <string name="preference_category_security">Tiib\'isal tetz</string>
+
+ <string name="preference_category_performance">Taq\'onve\'</string>
+ <string name="preference_performance_block_webfonts">Maj ivatz unq\'a itzaaeb\'al web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">La ib\'ane\' uva\' la sojsa unq\'a texhlale\' moj unq\'a vatzib\'ale\' q\'a</string>
+
+ <string name="preference_performance_block_javascript">Bloquear JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Oora kuxh tuk ijaj unq\'a vee\' jajel kan s-a\'n, ta\'ne tan la ib\'ane\' uva\' la q\'amaxi</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Palsa pal va navegador tu %1$s</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Aq\'ven unq\'a vee\' uve\' b\'anb\'emal ve\'t s-a\'n</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">La ootzil nimal</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">U Mozilla a\' chit u b\'a\'ne\' ni chuke\' aq\'al uva\' acha\'v chit u %1$se\' la ib\'ane\'.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Aviso de privacidad</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Yol atkan ti’ tu’aal</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Tantinb’ala u’uj uve’ ni kub’anb’e</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Tatinb’al u’uj OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Tokeb\'al u %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Taq\'onb\'al itiinsal unq\'a vee\' at ve\'t ok stuul</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Txaakan u chukul tetze´</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Q\'aavisab kan unq\'a chukb\'al tetze\' uve\' atik kan b\'axa</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Aq\'o\'k uma\'t taq\'onb\'al chukb\'al tetz</string>
+ <string name="preference_search_remove_title">Sojsa unq\'a taq\'onb\'ale\' uve\' nichukube\'</string>
+ <string name="preference_search_remove">Sojsa</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Aq´ku´ uma´t chukul tetz</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Txaakan u chukul eetze´ uve´ pal chit asa´ata´:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Aq\'o\'k uma\'t aq\'onb\'al tetz chukb\'al tetz</string>
+
+ <string name="search_add_manually_name_hint">Ib\'ii u taq\'onb\'al chukul tetze\'</string>
+ <string name="search_add_manually_string">Chuk qinib tetz ti\' iba\'nb\'ele\'</string>
+ <string name="search_add_manually_save">Kola</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">K\'uchuvatz: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Ak\' aq\'onb\'al ti\' u chukb\'al tetze\' uve\' at ve\'t kan.</string>
+
+ <string name="search_add_error_empty_name">La aaq\'ku\' ib\'ii u aq\'onb\'ale\' uve\' la xaansan axh stuul</string>
+ <string name="search_add_error_duplicate_name">Uma\'l aq\'onb\'al uva\' la chukun u vee\' at ve\'t kan as a\' u b\'iie\' ni b\'anb\'e ve\'te\'.</string>
+
+ <string name="search_add_error_empty_search">Aq\'ku\' u qinib\' chukb\'al tetze\'</string>
+
+ <string name="search_add_error_format">La pich\'u b\'axa asoj ni lejtib\' qinib\' chukb\'al tetze\' tuk\' u k\'uchuvatze\'</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">La josq\'i unq\'a vee\' chukel ve\'t kan</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Ye\' kuxh eetz sti\'</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Sojsa el unq\'a vee\' uve\' chukelaj ve\'te\'</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Unq\'a vee\' jajlu kan kuxhtu\': %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Ile\' b\'a\'n kuxh toke\'</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Ile\' ni teq\'o ku\'tzan</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Il u tatinb\'al web ni teq\'o ku\'tzan</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Ka\'t tuuleb\'al</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Exhlal ti´ achukat unka´te</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">La b\'en axh svatz</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">La eeq\'o ku\'tzan tatinb\'al u web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Q\'aaven tu vee\' ni tiinsal kat</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Aaq\'kan kuxh u webe\' aq\'al la teq\'o ku\'tzan</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">La q\'aav axh tu aplicación atik ti\' iqul</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Tachul unq\'a vee\' majel ve\'t ivatz</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Maj ivatz unq\'a tiinsan tetze\'</string>
+
+ <string name="your_rights">Unq\'a vee\' la uch ab\'anata\'</string>
+
+ <string name="external_app_prompt_title">La jaj u vaa\' tu uma\'t aplicación</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">La uch eel ch\'u\'l tu %1$s aq\'al la jaj u vaa\' tu %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">La chuk uma\'l aplicación uva\' la jajon u vaa\'</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ni kuxh umaj unq\'a aplicacione\' la jajon u vaa\' tu va molob\'ale\'. La uch eel ch\'u\'l tu %1$s aq\'al uva\' la uch a jajat uma\'te uva\' ni lej tib\' tik\' u %2$se\'.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">La inch tel ch\'u\'l tu xaansab\' tetze\' uve\' tetz kuxhtu\'?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">Ile\' kat tzojpiy u %1$se\' sti\'</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Jaja</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Ye\' kat ilej umaj jajon tetz</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Jupa</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">B´a´n ool tu %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Oora kuxhtu´. Eetz kuxhtu´. Ye´l uma´l b´alonaal ati.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Xe´ten</string>
+
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s jit eela tuk´ ka´t unq´a chukb´ale´</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Tuk kusojsa unq´a vee´ chukeltu ve´t s-a´n aq´al uva´ ye´xhib´il la pich´un.</string>
+
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Aq´kan u %1$s uva´ a´ kuxhe´ la b´anb´e aq´al uva´ ye´xhib´il la ilon kam napich´u.</string>
+
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Aq´kan uva´ a´ kuxhe´ la b´anb´e</string>
+
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Ye\' ookeb\'al sti\'</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">B\'an ooksat uyak\'il u eetze\'</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Eq\'o u tiinsab\' tetze\' tu uma\'t tanul. Maj ivatz unq\'a altziinaj kame\' as ka\'taj kam uve\' ye\' ni eq\'on ku\'tzan u vee\' nasa\' apich\'uta\'.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Achukune\', uve\' nasa\'</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Umaj kam nachuke\' uva\' va\'len? Txaa uma\'t ch\'ich\' tetz chuku\'m uva\' nib\'anax kat tuch.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Aq\'kan unq\'a kame\' vatz va ch\'ich\'e\' uva\' palchit itxakone\' see</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Q\'aaven oorimal tu unq\'a kame\' uve\' aamachit a achukat tu %1$se\'. Txaa \&quot;oksaloj ok ti xe\'teb\'al\&quot; vatz u %1$se\'.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Chaansa see uva\' axh kuxh la ilon</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">A\'vet kan u %1$se\' uva\' a\'chite\' la tiinsan vete\' as b\'anb\'e unq\'a vi b\'a\'nil u tiinsab\' tetze\' tul uva\' la jaje\' tu ka\'ta\'j aplicación.</string>
+
+ <string name="firstrun_close_button">Palyin stuul!</string>
+ <string name="firstrun_skip_button">Ye\' ookeb\'al sti\'</string>
+ <string name="firstrun_next_button">Uma\'te\'</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Aq\'okej</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ANCHITE’</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Ya\'sa</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">YE’LE</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Uve’ k’ujb’a’mal kan tuk ijaje’ tuk’ u kach’ub’al tetze’ aq’al uva’ ye’xhib’il kuxh la kanon</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Axh kuxh la b\'anb\'en</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Unq\'a vaa\' neele\' la isojsa u %1$se asoj la kane\'. Jit chit tz\'ajinale\' la jaj u aplicación moj la eel kam ni b\'an u tiinsab\' tetze\'.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Sojsa kaajayil unq\'a vee\' kat achukla</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Eq\'o ku\'tzan u Firefoxe</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s jajle\'l kuxh u eq\'on tetze\' ta\'n u Mozilla.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s ile’ ni tx’eb’on ve’t see’ aq’al la b’anb’e ta’ne’ tan la ootzi <a href="%2$s">kam yol xo’l tenam ti u Mozilla at sti’</a> as atkan unka’ta yol ti’ unq’a lochb’al tetz uva’ jajlu kan.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Ye’l umaj yol aq’axoj see’ ti’ b’anb’el unq’a texhlale’ uve’ ni xaansale’ ta’n u Mozilla moj tu jalte, echkole’ u texhlale’, vi b’ii u Mozilla, Firefox moj unq’a %1$s. La uch alejat ka’ta yol sti’ <a href="%2$s">tzitza’</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Kat u texhlale’ uve’ tetz %1$s ile’ at ve’te’ ta’n ka’t <a href="%2$s">unq’a tu’aale’</a> uve’ jajlu kan kuxhtu’.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s ni b’anb’e tachul majb’al uva’ ileltu ta’n u Mozilla. Echkole’ unq’a aq’one’ uve’ jatxel ivatz as a’ kuxh ni taq’onvu sijunal ta’n u <a href="%2$s">GNU General Public License v3</a>, as ile’ at ve’t <a href="%3$s">tzitza’</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Ab\'ii la ooksa kan</string>
+ <string name="gv_prompt_password_hint">Exhlal axh kuxh la ootzin</string>
+ <string name="gv_prompt_clear">Josq\'i</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Ile\' b\'a\'n ve\'t tatine\'</string>
+ <string name="security_popup_insecure_connection">Ye\'xh kam b\'a\'n koj tatine\'</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Ile\' pich\'umal ve\'te\' ta\'n: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Kach\'ub\'al tatine\'</string>
+ <string name="preference_autocomplete_duplicate_url_error">At ve\'t u URL</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">La chuk tu u vee\' jajle\'l s-a\'n</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">La chuk tu u vee\' jajle\'l s-a\'n</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d ti\' %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Chuk u vee\' a\'n la leje\' svatz b\'en</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Chuk u vee\' lejel kan b\'axa</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Jup u vee\' nachuke\'</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Jaj aq\'al uva\' la eeq\'otzan svatz</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Atinb’al tetz ilb’al ivatz</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL eq\'omal ve\'t kan ivatz</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Aq\'onb\'al ti\' ib\'anax tuche\'</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">La jaj tatinb’al unq’a aplicaciones</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Tii ve\'t tuche\'</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Okeb’al tulaj unq’a atinb’ale’</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Iku’ch’u’l ich’ii Banner tetz Cookies</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Oypisa\'m</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Tzaanale</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Iku’ch’u’l ich’ii Banner tetz Cookies</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Ye’ nimal banners la eele’ ankuxhe’ tuk eesanel unq’a cookies tul uva’ la uchi.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Iku’ch’u’l ich’ii Banner tetz Cookies</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Oypisamal ve’t kan tetz u atinb’ala’ vaa’</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">U atinb’ale’ ye’ la uch ab’anb’el tu jalte</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Tzaasamal ve’t kan tetz u atinb’ala’ vaa’</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Iku’ch’u’l ich’ii Banner tetz Cookies</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Tzaasamal ve’t kan tetz u atinb’ala’ vaa’</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Oypisamal ve’t kan tetz u atinb’ala’ vaa’</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Oypisa iku’ch’u’l yol tetz Cookies ti’ %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Tzaasa iku’ch’u’l yol tetz Cookies ti’ %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">U %1$s tuk osojsa unq’a cookies tzitza’ as tuk ib’antuch u u’uje’. Asoj la sojsal-el kaajayil unq’a cookies la ib’ane’ uva’ la ijup uve’ naaq’om kat moj la teese’l unq’a kame’ uve’ la loq’iki.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s la ib’ane’ uva’ ankuxhe’ ye’ la k’ulun unq’a cookies.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Cheel ve’te’, u atinb’ale’ vaa’ ye’ la uch tilat tib’ tuk’ iku’ch’u’l u banner tetz u cookies. Nasa’ uva’ ajajat te unq’a kumoole’ aq’al la pich’uli as la taq’ku’ iyak’ib’al svatz b’en?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Ya’sakan</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">La jaj iyak’ib’al tetz</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Ijajpu u yak’ib’al tetze’ ile’ kat b’enya.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Ijajpu u yak’ib’al tetze’ ile’ kat b’enya.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s tuk imaje’l ivatz unq’a cookies uve’ ni kuxh ilaao’k tib’.\n\nSaji as la txaae’ ab’iste unq’a banners tetz cookies nasa’ tu %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">b\'an tuche\'</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Ankuxhe’ la toypisa tib’</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Aq’al uva’ la uchi:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. La oon axh uve’ ni b’anax kat tuch tetz Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Laaku’ uve’ <b>La uch kat</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">La b’en axh uve’ la b’anax kat tuche’</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Oypisa <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Eesan vatzib’al</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Alb’al yol</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Atinb’al at kat axh cheel</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Aq’b’al nachb’al</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Aq’on uva’ ni til u DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">La jaj ooke’</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Majel ve´t ivatz</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">K´ulel ve´te´</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Majel ivatz ta’n u Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">La uch aaq’at tuul avi’ as eelpe’ unpasteurized</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">A’ kuxh u tuul vi’e’ la maje’</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">A’e’ b’a’n la b’anb’e</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">La maj ivatz tuul avi’ as eelpe’ unpajte</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Chusb’al</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">U Firefox la uch taq’at kan as ib’anax chusb’al tul uva’ la uchi.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Ootzi ka´te</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">La uch ijupata’ aq’al uva’ la jalpu unq’a kame’ stuul</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Sojsa el</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Ile’ b’a’n ve’te’</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Kat tzojpiya</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Eesamal ve\'t el ta\'n USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Jaj ivatz</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Ala uva’ a’ u vi’ aq’ab’e’ la b’anb’e</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">La uch ab’anb’et u vi’ aq’ab’e’ aq’al uva’ la yakeb’ axh ti’ ab’anb’et u vaa’.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">La jaj uma’t atinb’al aq’al uva’ la xe’t axh aq’onvoj tu uma’t ak’ atinb’al</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Texhlal u vi\' q\'ab\'e\'</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Ye\' ni texhla u vi\' aq\'ab\'e\'. B\'an unpajte.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Oora kuxh kat atiinsa u vi\' aq\'ab\'e\'. B\'an unpajte.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">La ik’uch ka’t ichukb’al tetz?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Aq’al uva’ la k’ul lochb’al, %1$s nisa’ taq’at b’en jank’al chit unq’a vee’ natz’ib’a tu chukb’al tetze’.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ye\'le</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Kanoj</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">At jununil unq\'a taq\'onb\'ale\' ye\' ni k\'uchun u nachonsal tetze\'.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Ye\' kuxh eetz sti\'</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Ni kuxh iyane\'?\n Eesa u kach\'ub\' chukb\'al tetze\'</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Oora kuxh la ok axh stuul tul pajul kuxh la laa unq\'a vee\' uve\' pal chit ab\'anb\'eta\'%1$s Laa Menú > Aq\'kan ti xe\'teb\'al]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Jaj Junun u k\'uchb\'al chukb\'al tetze\' tu %1$s\n Aq\'kan u %1$se\' uva\' a\' chite\' la b\'anb\'e</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">B\'an atz\'ajsat unq\'a URLs ti\' unq\'a vee\' uve\' pal chit ab\'anb\'eta\'\n Laaku\' kam kuxh URL tan u k\'uchb\'al ixaansal tetze\'</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Jaj uma\'t ak\' chukb\'al tetz\n Laaku\' ab\'iste kuxh chukb\'al tetz</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Jupkan unq’a alb’al txumb’ale’ uve’ ni tul svatz</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Ak’ ilb’al tetz jajle’le</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Jalpu</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">La eel kaajayil chitu’</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Oora kuxh la jalpu tatinb’al tu uma’t ilb’al tetz</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Maj ivatz unq’a va’lexh la kame’ uve’ ni yansane’</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Maj ivatz unq’a vee’ xochel ve’t b’en, echkole’ u malware as unq’a tetz u software uva’ ye’ ni txakone’.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">A’ luxh u ilb’al HTTPS</string>
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Ankuxhe’ ni tal tok tulaj unq’a atinb’ale’ uve’ ni b’ab’e teq’ol u majol ivatze’ HTTPS aq’al uva’ tii tatine’.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">A’ kuxh unq’a vi’la’</string>
+
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Kat aq’alpul u majol tetz unq’a aq’one’ uve’ atik tzitza’.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Sojsa</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Sojsa-el kaajayil unq’a atinb’ale’</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Maj ivatz unq’a cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Nasa’ la maj ivatz unq’a cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Kat yanyu u k’uchb’al tetze’</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">La kuy o’. At uma’l kam uva’ ni yansan u k’uchb’al tetze’.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">U atinb’ale’ uva’ eetz kuxh naaq’onvu stuul, ye’ kat kukola ni kuxh la uch kuq’aavisat u k’uchb’al tetze’.</string>
+
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Jup u ilb’al tetze’</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">La aalb’en tu Mozilla ti’ unq’a vee’ ni Yáñez’</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Chukulaj tetz majel ivatz ta’n %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Tuuleb’al</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Altziinaj kam</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Tetz tenam</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Pich’ul tetz</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">B’anel ve’t tuche imajax ivatz vatz u chukunaale’</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Eesamal ve’t el u lochb’al tetze’ tu atinb’ala’</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Unq’a lochb’al tetze’ ile’ oypinal ve’te’ tzitza’</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Ile’ b’a’n kuxh taq’onve’</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Ye’xh kam b’a’n koj taq’onve’</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Chukunaal tuk’ scripts la majpu ivatz</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Q’aaven unpajte</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Sojsa</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Jalpu ib’ii unpajte</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Jalpu ib’ii unpajte</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Ib’ii u aq’one’ uve’ k’ujb’a’mal kan s-a’n</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Jank’al unq’a vatzib’ale’ uve’ kolel as paxsamal unpajte &lt;b&gt;ye’xh kam&lt;/b&gt; la mox sojsal-el tul uva’ la sojsa-el unq’a vee’ chukel tu %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tilb’al</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Saj</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Tokixi</string>
+
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">At ve’t kan chitu’ ta’n ilochol taq’ax iyak’il xamal</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">La b’anb’el u ilb’al tetze’ tu ch’ich’e’ vaa’</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">U atinb’ale’ vaa’ ye’ la uch ib’en tu HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s nisa’ tok ti’ u HTTPS as la chit ilaxi asoj la uchi aq’al uva’ b’a’n tatine’
+ <a href="%2$s">La ootzi ka’te</a> <br/><br/>
+ Jalpu u vaa’ uve’ ni b’anax kat tuche’ > Eetz kuxhtu’ &amp; Kach’ub’al tetz > Kach’ub’al tetz.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Ye’xh kam b’a’n koj taq’onve’</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Kamal tu b’anb’al tuche’ ni yanik kat tzan moj umaj uxhchil q’a ni sa’on tok tzitza’.<br/><br/>
+ Asoj b’a’nik kuxh tatin u vaa’ b’axa, u vaa’ neel cheel tuk kuxh paloje’.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>At umaj uxchil ni tokch’u’l ib’anat ivatz u atinb’ale’ vaa’ asoj la yakeb’ axh at iva’laxhil.</label>
+ <br><br>
+ <label>%1$s ye’ ni k’ujb’a’ ik’u’l ti’ u <b>%2$s</b> tan ye’ ootzimal ab’il ni aq’onvan, as ankuxhe’ ni b’anb’ela je’ tib’ as ye’ ni taq’ tzan unq’a u’uje’ ti jikil.</label>
+]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Jup u ilb’al tetze’</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">B’a’ne’! Aq’al uva’ ye’l axh li ch’itpi’li axh u vaa’. Laa ku’ u tal texhlale’ aq’al la eele’ ab’iste unq’a vee’ ni kumaj ivatz.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">La juplu uma’l kam uva’ ni kuxh ichee’</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Il axh b’anel ooche’!</string>
+
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">U b’anb’al tuche’ vaa’ uve’ at kan chitu’, ni taq’ uma’l tiib’al tatine’. Oora kuxh la b’an tuche’ aq’al uva’ la iloch axh.</string>
+
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Ya’sakan</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Laa tzitz’ aq’al uva’ la sojsa kaajayil — unq’a vee’ chukel, cookies as tuk’ ka’t unq’a vee’ — as xe’ten tu uma’t ak’ ilb’al.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Jupa</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget tetz chukunaal</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Kay sotzyu tuuleb’al unq’a aq’on uve’ kat chukpi! 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Xe’tisa u aq’one’ tu atinb’ale’ uve’ eetz kuxhtu’ as tuk kumaj ivatz unq’a b’anol va’lexhe’ tul naaq’onve’.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Tuk qaq’kan axh uva’ axh kuxh la atin axh tzitza´, oora kuxh ab’ana tuk u widget %1$s tu xe’teb’al u aaq’one’.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">La aaq’ku’ u widget ti xe’teb’al aq’on</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget ile’ at ve’t ku’ ti xe’teb’al aq’on</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ja/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ja/strings.xml
new file mode 100644
index 0000000000..e3008be1ca
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ja/strings.xml
@@ -0,0 +1,1120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">キャンセル</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">保存</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">検索語またはアドレスを入力</string>
+
+ <string name="teaser">プライベートブラウジングを自動的に。\nブラウズ、消去の繰り返し。</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">閲覧履歴が消去されました。</string>
+ <string name="feedback_erase2">閲覧履歴を消去しました</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">タブの閲覧履歴が消去されました。</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s を検索</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">共有...</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">サイトの問題を報告</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s で開く</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">外部アプリで開く…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">ホーム画面に追加</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">ショートカットを追加</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">ショートカットから削除</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">設定</string>
+ <string name="menu_about">製品情報</string>
+ <string name="menu_help">ヘルプ</string>
+ <string name="menu_rights">あなたの権利</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">ブロックされた追跡</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">これをオフにすることにより、一部のサイトの問題が解決する可能性があります</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">コンテンツブロッキング</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">サイトの問題を解決するにはオフにしてください</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Powered by %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">共有方法を選択</string>
+
+ <string name="notification_erase_title_android_14">閲覧履歴を消去しますか?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">この通知をタップして閲覧履歴を安全に消去してください。</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">この通知をタップまたはスワイプして閲覧履歴を安全に消去してください。</string>
+
+ <string name="notification_erase_text">閲覧履歴を消去</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">開く</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">消去して開く</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">消去</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">閲覧履歴を消去</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">消去して開く</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">消去して %1$s を開く</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Focus で検索</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Klar で検索</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Focus Beta で検索</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Focus Nightly で検索</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s ではあなたがすべてをコントロールできます。</p>
+<p>次のようにプライベートブラウザーとして使えます。
+ <ul>
+ <li>アプリで適切に検索、閲覧</li>
+ <li>トラッカーをブロック (あるいは設定を更新して許可)</li>
+ <li>検索履歴、閲覧履歴の消去だけでなく Cookie を削除</li>
+ </ul>
+</p>
+<p>%1$s は Mozilla が開発しています。私たちのミッションは健全で開かれたインターネットを発展させることです。<br/>
+<a href="%2$s">詳しくはこちら</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">プライバシーとセキュリティ</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">トラッキング、Cookie、データの選択</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">既定、自動補完を設定</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s について、ヘルプ</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">強化型トラッキング防止</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">ウェブコンテンツ</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">アプリの切り替え</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">一般</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">既定のブラウザー、言語</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">データの収集と使用</string>
+
+ <string name="preference_category_search">検索</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">検索候補を取得</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s はあなたがアドレスバーに入力した語句を検索エンジンへ送信します</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">既定</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">検索エンジン</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">オン</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">オフ</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL 自動補完</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">人気サイト</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">有効にすると、%s のアドレスバーで 450 以上の人気の URL が自動補完されます。</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">追加したサイト</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">%s によるお気に入りの URL の自動補完を有効にします。</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">サイトの管理</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">サイトの管理</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ カスタム URL を追加</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">自動補完リスト:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL を追加</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">カスタム URL を追加</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">カスタム URL を追加</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">リンクを自動補完に追加</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookie とサイトデータ</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">データの選択</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">カスタム URL を削除</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">詳細情報</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">カスタム自動補完 URL の追加と管理。</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">追加する URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">URL を入力するか貼り付けてください</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">例: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">入力例: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">新しいカスタム URL を追加しました。</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">削除</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">削除</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">入力した URL をよく確認してください。</string>
+
+ <string name="preference_language">言語</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">システム標準</string>
+
+ <string name="preference_category_privacy">プライバシー</string>
+ <string name="preference_privacy_block_ads">追跡広告をブロック</string>
+ <string name="preference_privacy_block_ads_summary">一部の広告は、あなたがその広告をクリックしなくても訪れたサイトを追跡します</string>
+ <string name="preference_privacy_block_analytics">アクセス解析をブロック</string>
+ <string name="preference_privacy_block_analytics_summary">タップやスクロールなどの操作統計を収集、解析、計測するために利用されます</string>
+ <string name="preference_privacy_block_social">ソーシャル追跡をブロック</string>
+ <string name="preference_privacy_block_social_summary">ユーザーの訪問を追跡するためサイトに埋め込まれ、共有ボタンのように表示されます</string>
+ <string name="preference_privacy_block_content">他の追跡コンテンツをブロック</string>
+ <string name="preference_privacy_block_content_summary2">有効にすると、ページによっては予期せぬ動作をする原因になります</string>
+ <string name="preference_privacy_category_cookies">Cookie をブロック</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">いいえ</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">サードパーティの追跡 Cookie のみブロック</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">サードパーティ Cookie のみブロック</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">クロスサイト Cookie をブロック</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">はい</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">アプリのロック解除に指紋を使用</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">ショートカットを追加した場合やウェブサイトがすでに %s で開いている場合、指紋認証を使用してロックを解除します。</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">ステルス</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">アプリ切り替え時にウェブページを隠し、スクリーンショット撮影を禁止します。</string>
+
+ <string name="preference_category_security">セキュリティ</string>
+
+ <string name="preference_category_performance">パフォーマンス</string>
+ <string name="preference_performance_block_webfonts">ウェブフォントをブロック</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">アイコンや画像が正常に表示されない場合があります</string>
+
+ <string name="preference_performance_block_javascript">JavaScript をブロック</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">ページの読み込みが速くなる可能性がありますが、予期せぬ動作をする可能性もあります</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s を既定のブラウザーに設定</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">使用状況データを送信</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">詳細情報</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla は %1$s を皆さんに提供し改善するために必要な情報だけを収集するよう努めています。</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">プライバシー通知</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">ライセンス情報</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">利用しているライブラリー</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS ライブラリー</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s について</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">選択可能な検索エンジン</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">検索エンジンの選択</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">既定の検索エンジンを復元</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ 別の検索エンジンを追加</string>
+ <string name="preference_search_remove_title">検索エンジンを削除</string>
+ <string name="preference_search_remove">削除</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">別の検索エンジンを追加</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">ご希望の検索エンジンを選択してください:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">検索エンジンを追加</string>
+
+ <string name="search_add_manually_name_hint">検索エンジン名</string>
+ <string name="search_add_manually_string">使用する検索語</string>
+ <string name="search_add_manually_save">保存</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">入力例: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">新しい検索エンジンが追加されました。</string>
+
+ <string name="search_add_error_empty_name">検索エンジン名を入力</string>
+ <string name="search_add_error_duplicate_name">同名の検索エンジンがすでにインストールされています。</string>
+
+ <string name="search_add_error_empty_search">検索語を入力</string>
+
+ <string name="search_add_error_format">検索語が入力例の書式とマッチしているか確認してください</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">入力内容を消去</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">閉じる</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">閲覧履歴を消去</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">開かれているタブの数: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">安全な接続</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">読み込み中</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">ウェブサイト読み込み完了</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">その他のオプション</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">その他のオプションボタン</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">次のページへ進む</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">ウェブサイトを再読み込み</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">前のページへ戻る</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">サイトの読み込みを中止</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">前のアプリへ戻る</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">ブロックされた追跡数</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">オンライン追跡をブロック</string>
+
+ <string name="your_rights">あなたの権利</string>
+
+ <string name="external_app_prompt_title">リンクを外部アプリで開く</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">%1$s を離れてこのリンクを %2$s で開くことができます。</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">リンクを開けるアプリを探す</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">お使いの端末にはこのリンクを開けるアプリがありません。%1$s を離れて、開けるアプリを %2$s で探すことができます。</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">プライベートブラウジングを終了しますか?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s 完了</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">開く</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">ショートカットに追加しました</string>
+
+ <string name="error_hostLookup_title">サーバーが見つかりませんでした</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">閉じる</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">%1$s へようこそ</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">高速でプライベート。気を散らすものはありません。</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">はじめる</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s は他のブラウザーとは一味違います</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">プライバシー強化のため、アプリを閉じると履歴が消去されます。</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">%1$s を既定のブラウザーに設定すれば、開いたリンク先であなたのデータが保護されます。</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">既定のブラウザーに設定する</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">スキップ</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">プライバシーを強化</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">プライベートブラウジングを次のレベルへと進めましょう。サイトを越えてあなたを追跡したり、ページの読み込みを遅くしたりする可能性のある広告その他のコンテンツを自動的にブロック。</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">好きな方法で検索</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">何か違ったものを探していますか? 設定で別の検索エンジンを既定として選んでみましょう。</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">ホーム画面にショートカットを追加</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">%1$s でもお気に入りのサイトへ素早く戻れます。%1$s のメニューから「ホーム画面に追加」を選択するだけ。</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">プライバシーを習慣に</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">%1$s を既定のブラウザーに設定して、他のアプリからウェブページを開いたときに、プライベートブラウジングの恩恵を受けましょう。</string>
+
+ <string name="firstrun_close_button">了解</string>
+ <string name="firstrun_skip_button">スキップ</string>
+ <string name="firstrun_next_button">次へ</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">追加</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">はい</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">キャンセル</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">いいえ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">ショートカットは強化型トラッキング防止が無効の状態で開かれます</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">プライベートブラウジングセッション</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">%1$s のセッションは通知をワンタップするだけで消去できます。アプリを開いたり、ブラウザー内でどのページが表示されているか確認したりする必要はありません。</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">閲覧履歴を消去</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox をダウンロード</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s は Mozilla や他の貢献者によって開発されているフリーでオープンソースのソフトウェアです。]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s は <a href="%2$s">Mozilla Public License</a> およびその他オープンソースライセンスの条件に基づいて使用することができます。]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[ユーザーには、Mozilla、Firefox、%1$s の名称やロゴを含む Mozilla Foundation または第三者の商標に関するいかなる権利やライセンスも付与されていません。詳しい情報は <a href="%2$s">Mozilla 商標ポリシー</a> をご覧ください。]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[%1$s の追加のソースコードは様々な他のフリーでオープンソースの <a href="%2$s">ライセンス</a> に基づいて公開されています。]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s は Disconnect, Inc. によって提供されているブロックリストも <a href="%2$s">GNU General Public License v3</a> の下で単独のリソースとして使用しており、それらは <a href="%3$s">こちら</a> から入手可能です。]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">ユーザー名</string>
+ <string name="gv_prompt_password_hint">パスワード</string>
+ <string name="gv_prompt_clear">消去</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">安全な接続</string>
+ <string name="security_popup_insecure_connection">安全でない接続</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">認証局: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">サイトセキュリティ</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL は既に存在します</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">ページ内検索</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">ページ内検索</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%2$d 件中 %1$d 件目</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">次の結果を検索</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">前の結果を検索</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">ページ内検索を閉じる</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">デスクトップ版を見る</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">デスクトップサイト</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL をコピーしました</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">開発者ツール</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">リンクを外部アプリで開く</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">詳細</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">サイトの許可設定</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Cookie バナーの削減</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">オン</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">オフ</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Cookie バナーの削減</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Cookie 同意確認を自動的に拒否することで、表示されるバナーを可能な限り減らします。</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Cookie バナーの削減</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">このサイトでオン</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">現在サポートされていないサイトです</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">このサイトでオフ</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Cookie バナーの削減</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">このサイトでオフ</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">このサイトでオン</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">%1$s で Cookie バナー削減を有効にしますか?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">%1$s で Cookie バナー削減を無効にしますか?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s はこのサイトの Cookie を消去してページを読み込み直します。すべての Cookie を消去すると、ログアウトしたり、ショッピングカートが空になったりする場合があります。</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s は自動的に Cookie 要求を拒否することができます。</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">現在、このサイトは Cookie バナー削減機能に対応していません。このウェブサイトのレビューを開発チームに依頼して、サポートを追加したいですか?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">キャンセル</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">サポートをリクエスト</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">サポートサイトへのリクエストが送信されました。</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">サポートサイトへのリクエストが送信されました。</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s は、迷惑な Cookie バナーを閉じるために Cookie 同意確認を拒否しようとします。\n\n%2$sで Cookie バナーの動作を管理します。</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">設定</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">自動再生</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">許可するには:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Android の設定を開きます</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. <b>権限</b> をタップします]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">設定を開く</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. <b>%1$s</b> をオンに切り替えます]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">カメラ</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">マイク</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">位置情報</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">通知</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM 制御されたコンテンツ</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">許可を求める</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">ブロック済み</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">許可済み</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Android によってブロック</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">音声と動画を許可</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">音声のみブロック</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">おすすめ</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">音声と動画をブロック</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">調査</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox が調査をインストールして実行することがあります。</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">詳細情報</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">変更を適用するためアプリケーションを終了します</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">削除</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">有効</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">完了</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">USB/Wi-Fi を通じたリモートデバッグ</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">ロック解除</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">指紋認証で確認</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">指紋認証を使用して現在のアプリセッションを続行できます。</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">リンクを新しいセッションで開く</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">指紋アイコン</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">指紋を認識できませんでした。もう一度試してください。</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">指の動きが素早すぎます。もう一度試してください。</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">検索候補を表示しますか?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">検索候補を取得するには、アドレスバーに入力した内容を %1$s が検索エンジンへ送信する必要があります。</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">いいえ</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">はい</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">一部の検索エンジンは候補表示に対応していません。</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">閉じる</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">サイトが予期せぬ挙動をしますか?\n トラッキング防止機能を無効化してみてください</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[よく使うサイトへワンタップでアクセスするには%1$s メニュー > ホーム画面に追加]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">すべてのリンクを %1$s で開くには\n %1$s を既定のブラウザーに設定してください</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">よく使うサイトで URL を自動補完するには\n アドレスバー内で URL を長押しします</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">リンクを新しいタブで開くには\n ページ上でリンクを長押しします</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">スタート画面上のヒント表示をオフにする</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">新しいタブを開きました</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">切り替え</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">全画面表示モードです</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">新しいタブ内のリンクへすぐに切り替えます</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">潜在的に危険な詐欺サイトをブロック</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">報告された詐欺サイトや攻撃サイト、マルウェアサイト、不要なソフトウェアをインストールさせようとするサイトをブロックします。</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">HTTPS-Only モード</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">セキュリティ強化のため、自動的に HTTPS 暗号化プロトコルを使用してサイトへの接続を試行します。</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">例外</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">これらのサイトではコンテンツブロッキングを無効にします。</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">削除</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">すべてのウェブサイトを削除</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Cookie をブロック</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Cookie をブロックしたいですか?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">タブがクラッシュしました</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">申し訳ありません。このタブに問題があります。</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">プライベートブラウザーとして、このタブは一切保存されず、復元もできません。</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">タブを閉じる</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">クラッシュレポートを Mozilla へ送信する</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">%s 以降にブロックされたトラッカー</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">コンテンツ</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">広告</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">ソーシャル</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">解析</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">強化型トラッキング防止機能</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">このサイトでは保護が無効になっています</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">このサイトでは保護が有効になっています</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">接続は安全です</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">接続は安全ではありません</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">ブロックするトラッカーとスクリプト</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">戻る</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">削除</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">タイトル変更</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">タイトル変更</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">ショートカット名</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">保存、共有された画像は %1$s の履歴を消去しても &lt;b&gt;削除されません&lt;/b&gt;。</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">テーマ</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Light</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Dark</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">バッテリーセーバーで設定</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">端末のテーマに従う</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">このサイトは HTTPS に対応していません</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[セキュリティ強化のため、%1$s は可能な限り HTTPS 接続を試みます。
+ <a href="%2$s">詳細情報</a> <br/><br/>
+ この設定は、[設定] > [プライバシーとセキュリティ] > [セキュリティ] から変更できます。]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">安全でない接続</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ サーバーの設定に問題があるか、誰かが正規のサーバーになりすましている可能性があります。<br/><br/>
+ 以前は正常に接続できていた場合、この問題は恐らく一時的なものですので、後で再度試してみてください。
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>誰かがサイトになりすまそうとしている可能性があるため、この先へ進むと危険です。</label>
+ <br><br>
+ <label>証明書の発行者が不明か、証明書が自己署名されているか、サーバーが正しい中間証明書を送信していないため、%1$s は <b>%2$s</b> を信頼できません。</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">タブを閉じる</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">このサイトによるスパイ行為を阻止しました。ブロックしたものに関する情報を見るには盾アイコンをタップしてください。</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">ポップアップを閉じる</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">保護されています</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">これらの既定の設定は強力な保護を提供します。必要に応じて、簡単に設定を調整できます。</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">閉じる</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">ここをタップして、履歴、Cookie、すべて破棄し、新しいタブで新たに始めましょう。</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">閉じる</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">検索ウィジェット</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">閲覧履歴を消去しました🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">プライベートブラウジングセッションを開始すると、トラッカーやその他の迷惑なものをブロックします。</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">プライベート ブラウジングはお任せしますが、次回はホーム画面の %1$s ウィジェットですばやく開始できます。</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">ホーム画面にウィジェットを追加</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">ホーム画面にウィジェットを追加しました</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-jv/strings.xml b/mobile/android/focus-android/app/src/main/res/values-jv/strings.xml
new file mode 100644
index 0000000000..65048ad799
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-jv/strings.xml
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <string name="action_cancel">Batal</string>
+ <string name="action_ok">OKÉ</string>
+
+ <string name="action_save">Simpen</string>
+
+ <string name="urlbar_hint">Golèk utawa lebokaké alamat</string>
+
+ <string name="teaser">Dlajahan pribadi otomatis.\nDlajah. Busak. Balèni.</string>
+
+ <string name="feedback_erase">Riwayat dlajahan sampéyan wis dibusak.</string>
+
+ <string name="search_hint">Golèk %1$s</string>
+
+ <string name="menu_share">Dumké…</string>
+
+ <string name="menu_report_site_issue">Lapur Masalah Situs</string>
+
+ <string name="menu_open_with_default_browser2">Bukak ing %1$s</string>
+
+ <string name="menu_open_with_a_browser2">Bukak ing…</string>
+
+ <string name="menu_add_to_home_screen">Tambah ing Layar Utama</string>
+
+ <string name="menu_settings">Setèlan</string>
+ <string name="menu_about">Ngenani</string>
+ <string name="menu_help">Pitulung</string>
+ <string name="menu_rights">Hak Sampéyan</string>
+
+ <string name="menu_trackers_blocked_title">Palacak kablokir</string>
+
+ <string name="menu_trackers_blocked_subtitle">Matèni iki bisa ndandani sawetara masalah situs</string>
+
+ <string name="menu_content_blocking">Blokir kontèn</string>
+ <string name="menu_content_blocking_subtitle">Patèni kanggo ndandani sawetara situs</string>
+
+ <string name="menu_custom_tab_branding">Disokong déning %1$s</string>
+
+ <string name="share_dialog_title">Dumké liwat</string>
+
+ <string name="notification_erase_text">Busak riwayat dlajahan</string>
+
+ <string name="notification_action_open">Bukak</string>
+
+ <string name="notification_action_erase_and_open">Busak lan Bukak</string>
+
+ <string name="shortcut_erase_short_label">Busak</string>
+
+ <string name="shortcut_erase_long_label">Busak riwayat dlajahan</string>
+
+
+ <string name="shortcut_erase_and_open_short_label">Busak &amp; bukak</string>
+
+ <string name="preference_mozilla_summary">Ngenani %1$s, pitulung</string>
+
+ <string name="preference_category_web_content">Kontèn Wèb</string>
+
+ <string name="preference_category_switching_apps">Ganti aplikasi</string>
+
+ <string name="preference_category_general">Umum</string>
+
+ <string name="preference_category_search">Golèk</string>
+
+ <string name="preference_show_search_suggestions">Njaluk saran panggolekan</string>
+
+ <string name="preference_search_engine_label">Mesin panggolèk</string>
+
+ <string name="preference_state_on">Uripké</string>
+
+ <string name="preference_state_off">Paténi</string>
+
+ <string name="preference_category_data_choices">Pilihan Data</string>
+
+ <string name="preference_autocomplete_learn_more">Sinau liyané</string>
+
+ <string name="preference_autocomplete_add_hint">Témpél utowo leboké URL</string>
+
+ <string name="preference_autocomplete_menu_remove">Busak</string>
+
+ <string name="preference_autocomplete_action_remove_content_description">Busak</string>
+
+ <string name="preference_language">Basa</string>
+ <string name="preference_language_systemdefault">Gawan sistem</string>
+
+ <string name="preference_category_privacy">Privasi</string>
+ <string name="preference_privacy_category_cookies">Blokir kuki</string>
+
+ <string name="preference_performance_block_javascript">Blokir JavaScript</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+
+ <string name="preference_about">Ngenani %1$s</string>
+
+ <string name="preference_search_installed_search_engines">Mesin panggolèk sing wis dipasang</string>
+
+ <string name="preference_search_restore">Mulihaké mesin panggolèk standar</string>
+
+ <string name="preference_search_add2">+Tambah mesin panggolèk liyané</string>
+ <string name="preference_search_remove_title">Busak mesin panggolèk</string>
+ <string name="preference_search_remove">Busak</string>
+
+ <string name="action_option_add_search_engine">Tambah mesin panggolèk</string>
+
+ <string name="search_add_manually_name_hint">Jeneng mesin panggolèk</string>
+ <string name="search_add_manually_save">Simpen</string>
+
+ <string name="content_description_dismiss_input">Singkirké</string>
+
+ <string name="accessibility_announcement_loading">Ngamot</string>
+
+
+
+
+
+
+ <string name="firstrun_close_button">Oké, mudheng!</string>
+
+ <string name="content_blocking_disabled">-</string>
+
+ <string name="dialog_addtohomescreen_action_cancel">Mbatalake</string>
+
+ <string name="download_firefox">Undhuh Firefox</string>
+
+ <string name="gv_prompt_username_hint">Jeneng Panganggo</string>
+ <string name="gv_prompt_password_hint">Tembung wadi</string>
+ <string name="gv_prompt_clear">Busak</string>
+
+ <string name="security_popup_secure_connection">Sambungan aman</string>
+ <string name="security_popup_insecure_connection">Sambungan ora aman</string>
+
+ <string name="preference_autocomplete_duplicate_url_error">URL wis ana</string>
+
+ <string name="find_in_page">Golèki ing kaca</string>
+
+ <string name="find_in_page_input">Golekì ing kaca</string>
+
+ <string name="find_in_page_result">%1$d / %2$d</string>
+ <string name="accessibility_find_in_page_result">%1$d saka %2$d</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ka/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ka/strings.xml
new file mode 100644
index 0000000000..ad8f3bd98a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ka/strings.xml
@@ -0,0 +1,1116 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">გაუქმება</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">კარგი</string>
+
+ <string name="action_save">შენახვა</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">მოძებნეთ ან შეიყვანეთ მისამართი</string>
+
+ <string name="teaser">მხოლოდ თვალიერების პირადი რეჟიმი.\nმონახულება. წაშლა. თავიდან დაწყება.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">მონახულებული გვერდების ისტორია წაიშალა.</string>
+ <string name="feedback_erase2">დათვალიერების ისტორია გასუფთავდა</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">ჩანართებში მონახულებული გვერდების ისტორია გასუფთავებულია.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">მოძებნა: %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">გვერდის გაზიარება…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">საიტის ხარვეზის მოხსენება</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s-ში გახსნა</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">სხვაგან გახსნა…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">მთავარ ეკრანზე დამატება</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">მალსახმობებში დამატება</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">მოცილება მალსახმობებიდან</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">პარამეტრები</string>
+ <string name="menu_about">შესახებ</string>
+ <string name="menu_help">დახმარება</string>
+ <string name="menu_rights">თქვენი უფლებები</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">შეზღუდული მეთვალყურეები</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">გამორთვის შედეგად, საიტის გარკვეული ხარვეზები შეიძლება გამოსწორდეს</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">შიგთავსის შეზღუდვა</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">გამორთვა, საიტებზე ხარვეზების გამოსასწორებლად</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">უზრუნველყოფს %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">გაზიარება</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">ისტორიის წაშლა</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">გახსნა</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">გასუფთავება და გახსნა</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">გასუფთავება</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">ისტორიის გასუფთავება</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">გასუფთავება და გახსნა</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">გასუფთავდება და გაიხსნება %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">მოიძიეთ Focus-ით</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">მოიძიეთ Klar-ით</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">მოიძიეთ Focus Beta-თი</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">მოიძიეთ Focus Nightly-თ</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s სრულად გიბრუნებთ მართვის სადავეებს.</p>
+<p>გამოიყენეთ პირად ბრაუზერად:
+ <ul>
+ <li>მოძებნეთ და დაათვალიერეთ გვერდები პროგრამაშივე</li>
+ <li>შეზღუდეთ მეთვალყურეები (პარამეტრებიდან დაშვებაც შეიძლება)</li>
+ <li>გაასუფთავეთ და წაშალეთ ფუნთუშები, ძიებისა და თვალიერების ისტორია</li>
+ </ul>
+</p>
+<p>%1$s შექმნილია Mozilla-ს მიერ. ჩვენი მიზანი, ჯანსაღ და ღია ინტერნეტზე ზრუნვაა.<br/>
+<a href="%2$s">ვრცლად</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">პირადულობა და უსაფრთხოება</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">თვალთვალი, ფუნთუშები, მონაცემთა შერჩევა</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">ნაგულისხმევად დაყენება, თვითშევსება</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s-ის შესახებ, დახმარება</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">თვალთვალისგან გაძლიერებული დაცვა</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">ვებშიგთავსი</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">პროგრამების გადართვისას</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">მთავარი</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">ნაგულისხმევი ბრაუზერი, ენა</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">მონაცემთა აღრიცხვა და გამოყენება</string>
+
+ <string name="preference_category_search">ძიება</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">ძიების შემოთავაზების ჩვენება</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s გაუგზავნის საძიებო სისტემას, მისამართების ველში აკრეფილ ტექსტს</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">ნაგულისხმევი</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">საძიებო სისტემა</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">ჩართული</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">გამორთული</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">ბმულის თვითდასრულება</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">რჩეული საიტებისთვის</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">ჩართეთ და %s თავად დაასრულებს 450-ზე მეტ ცნობილ URL-ბმულს, მისამართების ველში აკრეფისას.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">თქვენ მიერ დამატებული საიტებისთვის</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">ჩართეთ და %s თავად დაასრულებს თქვენს რჩეულ URL-ბმულებს.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">საიტების მართვა</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">საიტების მართვა</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ საკუთარი URL-ების დამატება</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">თვითდასრულების თქვენი სია:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">ბმულის დამატება</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">საკუთარი URL-ს დამატება</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">საკუთარი URL-ს დამატება</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">ბმულის დამატება თვითდასრულებისთვის</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">ფუნთუშები და საიტის მონაცემები</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">მონაცემთა შერჩევა</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">დამატებული URL-ების მოცილება</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">ვრცლად</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">დაამატეთ და მართეთ საკუთარი URL-ები თვითშევსებისთვის.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL დასამატებლად</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">ჩასვით ან შეიყვანეთ URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">მაგალითად: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">მაგალითად: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">ახალი URL დაემატა.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">წაშლა</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">წაშლა</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">გადაამოწმეთ შეყვანილი URL.</string>
+
+ <string name="preference_language">ენა</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">სისტემის ნაგულისხმევი</string>
+
+ <string name="preference_category_privacy">პირადულობა</string>
+ <string name="preference_privacy_block_ads">სარეკლამო მეთვალყურეების შეზღუდვა</string>
+ <string name="preference_privacy_block_ads_summary">ზოგიერთი სარეკლამო ელემენტი, თვალს ადევნებს თქვენს გადაადგილებას საიტებზე, მაშინაც კი როცა მათზე არ აწკაპებთ</string>
+ <string name="preference_privacy_block_analytics">სტატისტიკური აღრიცხვის ელემენტების შეზღუდვა</string>
+ <string name="preference_privacy_block_analytics_summary">გამოიყენება მონაცემთა აღრიცხვისთვის, დამუშავებისა და ისეთი მოქმედებების შესამოწმებლად, როგორიცაა თითის შეხება და გვერდის გადაადგილება</string>
+ <string name="preference_privacy_block_social">სოცქსელების მეთვალყურეების შეზღუდვა</string>
+ <string name="preference_privacy_block_social_summary">თქვენს გადაადგილებაზე თვალყურის მისადევნებლად, საიტებზე განთავსებულია მოწონების ან გაზიარების ღილაკების სახით</string>
+ <string name="preference_privacy_block_content">სხვა მეთვალყურე ელემენტების შეზღუდვა</string>
+ <string name="preference_privacy_block_content_summary2">ჩართვის შედეგად, ზოგიერთმა ვებგვერდმა, შესაძლოა გამართულად ვერ იმუშაოს</string>
+ <string name="preference_privacy_category_cookies">ფუნთუშების შეზღუდვა</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">არა, გმადლობთ</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">მხოლოდ გარეშე მეთვალყურეების</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">მხოლოდ გარეშე ფუნთუშების</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">საიტთაშორისი ფუნთუშების</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">დიახ, თუ შეიძლება</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">გამოიყენეთ თითის ანაბეჭდი, პროგრამის გასახსნელად</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">გახსენით თითის ანაბეჭდით, თუ დამატებული გაქვთ მალსახმობებში ან საიტისთვის უკვე გამოიყენეთ %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">ფარული რეჟიმი</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">ვებგვერდების დამალვა პროგრამების გადართვისას და ეკრანის სურათების გადაღების შეზღუდვა.</string>
+
+ <string name="preference_category_security">უსაფრთხოება</string>
+
+ <string name="preference_category_performance">წარმადობა</string>
+ <string name="preference_performance_block_webfonts">საიტის შრიფტების შეზღუდვა</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">შესაძლოა ხატულების და სურათების ნაწილი გაქრეს</string>
+
+ <string name="preference_performance_block_javascript">JavaScript-ის შეზღუდვა</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">გვერდები, შესაძლოა უფრო სწრაფად ჩაიტვირთოს, მაგრამ ხარვეზებით იმუშაოს</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s-ის ნაგულისხმევ ბრაუზერად მითითება</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">მონაცემების გაგზავნა</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">იხილეთ ვრცლად</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla აღრიცხავს მხოლოდ იმ მონაცემებს, რაც საჭიროა %1$s-ის გასაუმჯობესებლად.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">პირადი მონაცემების დაცვა</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">ლიცენზიის შესახებ</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">ბიბლიოთეკები, რომელთაც ვიყენებთ</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS-ბიბლიოთეკები</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s-ის შესახებ</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">დაყენებული საძიებოები</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">საძიებო სისტემის არჩევა</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">აღდგეს ნაგულისხმევი საძიებოები</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ სხვა საძიებო სისტემის დამატება</string>
+ <string name="preference_search_remove_title">საძიებოს ამოშლა</string>
+ <string name="preference_search_remove">მოცილება</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">სხვა საძიებო სისტემის დამატება</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">აირჩიეთ სასურველი საძიებო:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">საძიებოს დამატება</string>
+
+ <string name="search_add_manually_name_hint">საძიებოს დასახელება</string>
+ <string name="search_add_manually_string">საძიებო ფრაზა</string>
+ <string name="search_add_manually_save">შენახვა</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">მაგალითად: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">ახალი საძიებო სისტემა დამატებულია.</string>
+
+ <string name="search_add_error_empty_name">შეიყვანეთ საძიებო სისტემის სახელი</string>
+ <string name="search_add_error_duplicate_name">ამ სახელს, უკვე იყენებს ერთ-ერთი დაყენებული საძიებო სისტემა.</string>
+
+ <string name="search_add_error_empty_search">შეიყვანეთ საძიებო ფრაზა</string>
+
+ <string name="search_add_error_format">შეამოწმეთ, შეესაბამება თუ არა საძიებო ფრაზა მოცემულ ფორმატს</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">შეტანილის გასუფთავება</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">დახურვა</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">ისტორიის წაშლა</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">გახსნილი ჩანართი: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">დაცული კავშირი</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">იტვირთება</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">საიტი ჩაიტვირთა</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">დამატებითი პარამეტრები</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">დამატებითი პარამეტრების ღილაკი</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">გადასვლა წინ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">საიტის ხელახლა ჩატვირთვა</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">გადასვლა უკან</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">საიტის ჩატვირთვის შეჩერება</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">წინა პროგრამაზე დაბრუნება</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">შეზღუდული მეთვალყურეები</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">მეთვალყურე ელემენტების შეზღუდვა</string>
+
+ <string name="your_rights">თქვენი უფლებები</string>
+
+ <string name="external_app_prompt_title">ბმულის სხვა პროგრამით გახსნა</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">შეგიძლიათ დატოვოთ %1$s ბმულის %2$s-ში გასახსნელად.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">პროგრამის მოძიება, რომელიც გახსნის ბმულს</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">თქვენს მოწყობილობაზე არსებულ არცერთ პროგრამას არ შეუძლია ამ ბმულის გახსნა. შეგიძლიათ დატოვოთ %1$s საჭირო პროგრამის %2$s-ში მოსაძიებლად.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">გსურთ პირადი დათვალიერებიდან გასვლა?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s დასრულდა</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">გახსნა</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">მალსახმობებში დაემატა!</string>
+
+ <string name="error_hostLookup_title">გვერდი ვერ მოიძებნა</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">დახურვა</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">მოგესალმებათ %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">სწრაფი. პირადი. მხოლოდ საქმისკენ მიმართული.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">დაიწყეთ</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s არ ჰგავს სხვა ბრაუზერებს</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">ისტორია გასუფთავდება პროგრამის დახურვისთანავე პირადულობის უკეთ დასაცავად.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">გახადეთ %1$s ნაგულისხმევი, რომ დაიცვათ მონაცემები ყოველი ბმულის გახსნისას.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">ნაგულისხმევ ბრაუზერად დაყენება</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">გამოტოვება</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">გააძლიერეთ პირადი მონაცემების დაცვა</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">პირადი მონაცემების უსაფრთხოება ახალ სიმაღლეზეა აყვანილი. შეზღუდეთ სარეკლამო და სხვა შიგთავსი, რომლითაც საიტებზე თქვენი დევნაა შესაძლებელი და შეამცირეთ გვერდების ჩატვირთვის დრო.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">მოიძიეთ გვერდები, თქვენებურად</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">განსხვავებულად გსურთ მოიძიოთ? აირჩიეთ სასურველი საძიებო, პარამეტრებიდან.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">მალსახმობების დამატება მთავარ ეკრანზე</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">%1$s-ის დახმარებით, სწრაფად შეგიძლიათ დაუბრუნდეთ რჩეულ საიტებს. მარტივად მიუთითეთ „მთავარ ეკრანზე დამატება“, %1$s-ის მენიუდან.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">ჩვევად აქციეთ პირადულობის დაცვა</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">დააყენეთ %1$s ნაგულისხმევ ბრაუზერად და ისარგებლეთ პირადულობის დაცვით, სხვა პროგრამებიდან ბმულებზე გადასვლის შემთხვევაშიც.</string>
+
+ <string name="firstrun_close_button">კარგი, გასაგებია!</string>
+ <string name="firstrun_skip_button">გამოტოვება</string>
+ <string name="firstrun_next_button">შემდეგი</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">დამატება</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ᲓᲘᲐᲮ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">გაუქმება</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">ᲐᲠᲐ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">ამ მალსახმობით გაიხსნება, თვალთვალისგან გაძლიერებული დაცვის გარეშე</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">პირადი დათვალიერების რეჟიმი</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">შეტყობინებები საშუალებას გაძლევთ, ერთი შეხებით გაასუფთავოთ მონაცემები %1$s-ში. პროგრამის გახსნა, აღარ დაგჭირდებათ.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">ისტორიის გასუფთავება</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">ჩამოტვირთეთ Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s არის უფასო და ღია წყაროს მქონე პროგრამა, შექმნილი Mozilla-სა და სხვა მოხალისეების მიერ.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s ვრცელდება <a href="%2$s">Mozilla Public License</a> და სხვა ღია წყაროს ლიცენზიებით.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[თქვენ არ გეძლევათ რამე სახის უფლება ან ლიცენზია, Mozilla ფონდის სავაჭრო ნიშნებსა და სხვა საკუთრებაზე, მათ შორის დასახელებებზე Mozilla, Firefox, ან %1$s-ის სხვა სახელებსა და ლოგოებზე. დამატებითი ინფორმაცია შეგიძლიათ იხილოთ <a href="%2$s">აქ</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[%1$s-ის დამატებითი წყაროს კოდიც ვრცელდება სხვადასხვა უფასო და ღია <a href="%2$s">ლიცენზიებით</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s ასევე იყენებს შეზღუდვის სიებს, რომლის მომწოდებელია Disconnect Inc. როგორც ცალკეული და დამოუკიდებელი ნამუშევრები, ვრცელდება <a href="%2$s">GNU General Public License v3</a> ლიცენზიით და ხელმისაწვდომია <a href="%3$s">ამ ბმულზე</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">სახელი</string>
+ <string name="gv_prompt_password_hint">პაროლი</string>
+ <string name="gv_prompt_clear">გასუფთავება</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">დაცული კავშირი</string>
+ <string name="security_popup_insecure_connection">დაუცველი კავშირი</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">დამმოწმებელი: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">საიტის უსაფრთხოება</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL უკვე არსებობს</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">პოვნა გვერდზე</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">პოვნა გვერდზე</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d, %2$d-დან</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">მომდევნო შედეგი</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">წინა შედეგი</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">ძიების გაუქმება</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">სრული საიტის მოთხოვნა</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">სრული საიტი</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">ბმული აღებულია</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">შემმუშავებლის ხელსაწყოები</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">ბმულების გახსნა პროგრამებში</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">დამატებითი</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">საიტის ნებართვები</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">ფუნთუშის მოთხოვნების შემცირება</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">ჩართ.</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">გამორთ.</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">ფუნთუშის მოთხოვნების შემცირება</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">ნაკლებად იხილეთ ამომხტარი აბრები ფუნთუშის მოთხოვნების ავტომატურად უარყოფით, როცა კი შესაძლებელი იქნება.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">ფუნთუშის მოთხოვნების შემცირება</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ჩართ. ამ საიტზე</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">საიტი ჯერ არაა მხარდაჭერილი</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">გამორთ. ამ საიტზე</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">ფუნთუშის მოთხოვნების შემცირება</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">გამორთ. ამ საიტზე</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ჩართ. ამ საიტზე</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">ჩაირთოს ფუნთუშის მოთხოვნების შემცირება საიტზე %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">გამოირთოს ფუნთუშის მოთხოვნების შემცირება საიტზე %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s გაასუფთავებს ამ საიტის ფუნთუშებს და განაახლებს გვერდს. ყველა ფუნთუშის წაშლით შეიძლება გამოხვიდეთ ანგარიშებიდან და დაცარიელდეს საყიდლების კალათა.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s ეცდება თავადვე უარყოს ფუნთუშების მოთხოვნები.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">საიტზე ამჟამად არაა მხარდაჭერილი ფუნთუშების ნებართვების არიდება. გსურთ სთხოვოთ ჩვენს გუნდს, გადახედოს ამ ვებსაიტს და გახადოს მომავალში მხარდაჭერილი?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">გაუქმება</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">მხარდაჭერის მოთხოვნა</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">მხარდაჭერის მოთხოვნა საიტისთვის გადაგზავნილია.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">მხარდაჭერის მოთხოვნა საიტისთვის გადაგზავნილია.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s ცდილობს უარყოს ფუნთუშების მოთხოვნები მომაბეზრებელი აბრების მოსაცილებლად.\n\nფუნთუშების აბრების სამართავად იხილეთ %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">პარამეტრები</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">თვითგაშვება</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">დასაშვებად:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. გადადით Android-პარამეტრებში</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. შეეხეთ <b>ნებართვებს</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">პარამეტრებში გადასვლა</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. გადართეთ <b>%1$s</b> ჩართულზე]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">კამერა</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">მიკროფონი</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">მდებარეობა</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">შეტყობინება</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-დაქვემდებარებული შიგთავსი</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">კითხვა ყოველ ჯერზე</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">შეზღუდულია</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">დაშვებულია</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">ზღუდავს Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">ხმისა და ვიდეოს დაშვება</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">მხოლოდ ხმის შეზღუდვა</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">სასურველი</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">ხმისა და ვიდეოს შეზღუდვა</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">კვლევები</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox შეძლებს, დროდადრო კვლევების ჩატარებას.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">ვრცლად</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">პროგრამა დაიხურება ცვლილებების ასახვისთვის</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">მოცილება</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">მოქმედი</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">დასრულებული</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">დაშორებული გამართვა USB/WiFi-ით</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">გახსნა</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">დაადასტურეთ თითის ანაბეჭდით</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">შეგიძლიათ, თითის ანაბეჭდის დამოწმებით განაგრძოთ გამოყენება.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">ბმულის გახსნა სუფთა ჩანართით</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">თითის ანაბეჭდის ხატულა</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">ანაბეჭდის ამოცნობა ვერ მოხერხდა. სცადეთ ხელახლა.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">თითი სწრაფად ამოძრავდა. სცადეთ ხელახლა.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">გამოჩნდეს ძიების შემოთავაზებები?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> შემოთავაზებების მისაღებად, %1$s საჭიროებს მისამართების ველში აკრეფილი ტექსტის, შერჩეული საძიებოსთვის გადაგზავნას.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">არა</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">დიახ</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">ზოგიერთ საძიებო სისტემას, არ აქვს შემოთავაზებების ჩვენების შესაძლებლობა.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">დახურვა</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">საიტი ხარვეზებით მუშაობს?\n სცადეთ თვალთვალისგან დაცვის გამორთვა</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[მარტივი წვდომა სასურველ საიტებზე ერთი შეხებით%1$s მენიუ > მთავარ ეკრანზე დამატება]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">გახსნეთი ყველა ბმული %1$s-ით\n დააყენეთ %1$s ნაგულისხმევ ბრაუზერად</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">URL-ბმულების თვითშევსება სასურველი საიტებისთვის\n ნებისმიერ URL-ბმულზე ხანგრძლივი დაჭერით მისამართების ველში</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">გახსენით ბმული ახალ ჩანართში\n გვერდის ნებისმიერ ბმულზე ხანგრძლივი დაჭერით</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">რჩევების ჩვენების შეწყვეტა საწყის ეკრანზე</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">ახალი ჩანართი გაიხსნა</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">გადართვა</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">სრულ ეკრანზე გაშლა</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">ბმულის გახსნისას ახალ ჩანართში მაშინვე მასზე გადასვლა</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">შესაძლო საფრთხის მქონე და თაღლითური საიტების შეზღუდვა</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">თაღლითურ და მოიერიშედ მიჩნეული, აგრეთვე საზიანო და არასასურველი პროგრამების გამავრცელებელი საიტების შეზღუდვა.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">მხოლოდ-HTTPS-რეჟიმი</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">თავადვე შეეცდება დაუკავშირდეს საიტებს დაშიფრული HTTPS-ოქმით მეტი უსაფრთხოებისთვის.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">გამონაკლისები</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">ამ საიტებზე შიგთავსის შეზღუდვა გამორთული გაქვთ.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">მოცილება</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">ყველა საიტის მოცილება</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">ფუნთუშების შეზღუდვა</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">გსურთ ფუნთუშების შეზღუდვა?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">ჩანართი გაითიშა</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">ვწუხვართ. ამ ჩანართს რაღაც ხარვეზები ჰქონდა.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">როგორც პირადი ბრაუზერი, ჩვენ არაფერს ვინახავთ და შესაბამისად არ შეგვიძლია ამ ჩანართის აღდგენა.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">ჩანართის დახურვა</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">გათიშვის მოხსენების გადაგზავნა Mozilla-სთვის</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">შეზღუდული მეთვალყურე თარიღიდან %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">შიგთავსის</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Სარეკლამო</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">სოცქსელების</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">საკვლევი</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">თვალთვალისგან გაძლიერებული დაცვა</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">დაცვა გამორთულია ამ საიტზე</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">დაცვა ჩართულია ამ საიტზე</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">კავშირი დაცულია</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">კავშირი დაუცველია</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">შესაზღუდი მეთვალყურეები</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">უკან</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">მოცილება</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">გადარქმევა</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">გადარქმევა</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">მალსახმობის სახელი</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">შენახული და გაზიარებული სურათები &lt;b&gt;არ წაიშლება&lt;/b&gt;, როცა %1$s გასუფთავდება</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">იერსახე</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">ნათელი</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">მუქი</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">ბატარეის დამზოგის მიხედვით</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">მოწყობილობის იერსახის მიხედვით</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">ამ საიტზე მხარდაუჭერელია HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s ცდილობს გამოიყენოს HTTPS-კავშირი, როცა კი შესაძლებელია უსაფრთხოებისთვის.
+ <a href="%2$s">ვრცლად</a> <br/><br/>
+ შესაცვლელად იხილეთ პარამეტრები > პირადულობა და უსაფრთხოება > უსაფრთხოება.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">დაუცველი კავშირი</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ ამას შესაძლოა, საიტის გაუმართაობა ან სხვა საიტად გასაღების მცდელობა იწვევდეს. <br/><br/>
+ თუ აღნიშნულ საიტს მანამდე წარმატებით უკავშირდებოდით, ხარვეზი შეიძლება დროებითი იყოს.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>შესაძლოა, ვიღაც ამ საიტის სხვა საიტად გასაღებას ცდილობდეს და ჯობია, აღარ განაგრძოთ.</label>
+ <br><br>
+ <label>%1$s არ ენდობა <b>%2$s</b>-ს, რადგან მისი უსაფრთხოების სერტიფიკატის გამომცემი უცნობია, შეიძლება თავადვე აქვთ ხელმოწერილი ან სერვერი სათანადოდ არ აგზავნის შუალედურ სერტიფიკატებს.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">ჩანართის დახურვა</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">გამოჭერილია! ამ საიტს არ მივეცით თქვენი თვალთვალის საშუალება. შეეხეთ ფარის ნიშანს ნებისმიერ დროს და იხილეთ, რა იზღუდება.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">ამომხტარი ფანჯრის დახურვა</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">დაცული ხართ!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">ეს ნაგულისხმევი პარამეტრები ძლიერ დაცვას გთავაზობთ. თუმცა მარტივად შეგიძლიათ პარამეტრების შესწორება და საკუთარ საჭიროებებზე მორგება.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">დახურვა</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">შეეხეთ აქ, რომ წაშალოთ სრულად — ისტორია, ფუნთუშები, ყველაფერი — და გახსნათ ახალი ჩანართი სუფთა ფურცლიდან.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">დახურვა</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">ვიჯეტის ძიება</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">დათვალიერების ისტორია გასუფთავებულია! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">წამოიწყეთ პირადი თვალიერება და იმთავითვე შევზღუდავთ მეთვალყურეებსა და სხვა მავნებლებს.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">ახლა გადადით პირად ფანჯარაზე, თუმცა შემდეგ ჯერზე სწრაფად გახსნისთვის გამოიყენეთ %1$s-ვიჯეტი მთავარი ეკრანიდან.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">ვიჯეტის დამატება მთავარ ეკრანზე</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">ვიჯეტი დამატებულია მთავარ ეკრანზე</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-kaa/strings.xml b/mobile/android/focus-android/app/src/main/res/values-kaa/strings.xml
new file mode 100644
index 0000000000..41f2c2a64f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-kaa/strings.xml
@@ -0,0 +1,795 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Biykarlaw</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">MAQUL</string>
+
+ <string name="action_save">Saqlaw</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Mánzildi izleń yamasa kirgiziń</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Siziń saytlardı kóriw tariyxıńız óshirildi.</string>
+ <string name="feedback_erase2">Kóriw tariyxi tazalandı</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Bettıń kóriw tariyxı óshirildi.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s izleń</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Bólisiw…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Sayt nasazlıǵı haqqında xabar beriw</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s de ashıw</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">…da ashıw</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Tiykarǵı ekranǵa qosıw</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Operativ buyrıqlarǵa qosıw</string>
+
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Operativ buyrıqlardan alıp tastaw</string>
+
+ <string name="menu_settings">Sazlawlar</string>
+ <string name="menu_about">Baǵdarlama haqqında</string>
+ <string name="menu_help">Járdem</string>
+
+ <string name="menu_rights">Siziń huqıqlarıńız</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Baqlawshılar bloklandı</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s tárepinen islep shıǵıldı</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Arqalı bólisiw</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Kóriw tariyxin óshiriw</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Ashıw</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Óshiriw hám ashıw</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Óshiriw</string>
+
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Kóriw tariyxin óshiriw</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Óshiriw hám ashıw</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Focusda izlew</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Klarda izlew</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Focus Betada izlew</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Focus Nightlyda izlew</string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Qupıyalıq hám Qorǵanıw</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s haqqında, járdem</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Baqlawdan keńeytilgen qorǵanıw</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Baǵdarlamalar almasıwı</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Ulıwmalıq</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Aldınnan ornatılǵan brauzer, til</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Maǵlıwmatlardı jıynaw hám qollanıw</string>
+
+ <string name="preference_category_search">Izlew</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Izlew usınısların alıw</string>
+
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%s mánzil qatarına kirgizgen tekstlerińizdi izlew sistemasına jiberedi</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Aldınnan ornatılǵan</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Izlew sisteması</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Qosıwlı</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Óshirilgen</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Siz qosqan saytlar ushın</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Saytlardı basqarıw</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Saytlardı basqarıw</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Jeke URL qosıw</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL qosıw</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Jeke URL qosıw</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Jeke URL qosıw</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookieler hám sayt maǵlıwmatları</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Jeke URLdı óshiriw</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Tolıǵıraq úyreniw</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Qosıw ushın URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">URL mánzildi kiritiń yamasa qoyıń</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Mısal: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Mısal: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Jańa jeke URL qosıldı.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Alıp taslaw</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Alıp taslaw</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Kiritilgen URLdı dıqqat penen tekseriń.</string>
+
+ <string name="preference_language">Til</string>
+
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Qurılma tili</string>
+
+ <string name="preference_category_privacy">Qupıyalıq</string>
+
+ <string name="preference_privacy_block_ads">Reklama baqlawların bloklaw</string>
+
+ <string name="preference_privacy_block_analytics">Analitika baqlawshıların bloklaw</string>
+ <string name="preference_privacy_block_social">Social baqlawlardı bloklaw</string>
+ <string name="preference_privacy_block_content">Basqa kontent baqlawshıların bloklaw</string>
+ <string name="preference_privacy_category_cookies">Cookielardı bloklaw</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Yaq, raxmet</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Saytlar aralıq cookielardı bloklaw</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Awa, ótinish</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Baǵdarlamanı bloktan shıǵarıw ushın barmaq izin qollanıń</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Kórinbes</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Baǵdarlamalardı almastırǵanda veb-betlerdi jasırıw hám skrinshot alıwdı bloklaw.</string>
+
+ <string name="preference_category_security">Qorǵanıw</string>
+
+ <string name="preference_category_performance">Ónimdarlıq </string>
+ <string name="preference_performance_block_webfonts">Veb-shriftlardı bloklaw</string>
+
+ <string name="preference_performance_block_javascript">JavaScriptti bloklaw</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$stı tiykarǵi brauzer retinde ornatıw</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+
+ <string name="preference_mozilla_telemetry2">Paydalanıw haqqındaǵı maǵlıwmatlardı jiberiw</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Tolıǵıraq úyreniw</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Qupıyalıq esletpeleri</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s haqqında</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Ornatılǵan izlew sistemaları</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Izlew sistemasın tańlań</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Aldınnan ornatılǵan izlew sistemaların qayta ornatıw</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Basqa izlew sistemasın qosıw</string>
+ <string name="preference_search_remove_title">Izlew sistemaların alıp taslaw</string>
+ <string name="preference_search_remove">Alıp taslaw</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Basqa izlew sistemasın qosıw</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Ózińizdiń izlew sistemańizdi tańlań:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Izlew sistemasın qosıw</string>
+
+ <string name="search_add_manually_name_hint">Izlew sistemasınıń ataması</string>
+ <string name="search_add_manually_string">Paydalanıw ushın izlew qatarı</string>
+ <string name="search_add_manually_save">Saqlaw</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Mısal: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Jańa izlew sisteması qosıldı.</string>
+
+ <string name="search_add_error_empty_name">Izlew sistemasınıń atamasın kirgiziń</string>
+
+ <string name="search_add_error_empty_search">Izlew qatarın kirgiziń</string>
+
+ <string name="search_add_error_format">Izlew qatarınıń úlgi formatına sáykes keliwin tekseriń</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Ótkerip jiberiw</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Kóriw tariyxin óshiriw</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Ashılǵan betler: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Qáwipsiz jalǵanıw</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Júklenbekte</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Sayt júklendi</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Basqa variantlar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Qosımsha sazlawlar túymesi</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Aldıǵa</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Sayttı qayta júklew</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Artqa qaytıw</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Sayttı júklewdi toqtatıw</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Aldınǵı baǵdarlamaǵa qaytıw</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Bloklanǵan baqlawshılar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Baqlawshılardı bloklaw</string>
+
+ <string name="your_rights">Siziń huqıqlarıńız</string>
+
+ <string name="external_app_prompt_title">Siltemeni basqa baǵdarlamada ashıw</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Bul siltemeni %2$sda ashıw ushın, siz %1$s baǵdarlamasınan shıǵıwıńız múmkin.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Jeke kóriwden shıǵıwdı qáleysiz be?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s júklendi</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Ashıw</string>
+
+ <string name="error_hostLookup_title">Server tabılmadı</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Jabıw</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">%1$sǵa xosh kelibsiz</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Baslaw</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s basqa brauzerlarǵa uqsamaydı</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Tiykarǵi brauzer retinde ornatıw</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Ótkerip jiberiw</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Siziń izlew, siziń internetińiz</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Tiykarǵı ekranǵa operativ buyrıqlardı qosıń</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Qupıyalıqtı ádetke aylandırıń</string>
+
+ <string name="firstrun_close_button">MAQUL, túsinikli!</string>
+ <string name="firstrun_skip_button">Ótkerip jiberiw</string>
+
+ <string name="firstrun_next_button">Keyingi</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Qosıw</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">AWA</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Biykarlaw</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">YAQ</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Jeke kóriw seansı</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Kóriw tariyxin óshiriw</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefoxtı júklep alıw</string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Paydalanıwshı atı</string>
+ <string name="gv_prompt_password_hint">Parol</string>
+ <string name="gv_prompt_clear">Tazalaw</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Qáwipsiz jalǵanıw</string>
+
+ <string name="security_popup_insecure_connection">Qáwipsiz emes jalǵanıw </string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Tastıyıqlawshı: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Sayt qáwipsizligi</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL álleqashan bar</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Betten tabıw</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Betten tabıw</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d dan %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Keyingi nátiyjeni tabıw</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Aldınǵı nátiyjeni tabıw</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Betten izlewdi alıp taslaw</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Sayttıń tolıq versiyasın soraw</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Sayttıń kompyuter versiyası</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Silteme kóshirip alındı</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Baǵdarlamashı ásbapları</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Siltemelerdi baǵdarlamalarda ashıw</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Qosımsha</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Sayt ruqsatnamaları</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Cookie haqqındaǵı xabarlamalardı qısqartıw</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Qosıwlı</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Óshirilgen</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Cookie haqqındaǵı xabarlamalardı qısqartıw</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Cookie haqqındaǵı xabarlamalardı qısqartıw</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Bul sayt ushın QOSILǴAN</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Sayt házirshe qollap-quwatlanbaydı</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Bul sayt ushın ÓSHIRILGEN</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Cookie haqqındaǵı xabarlamalardı qısqartıw</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Bul sayt ushın ÓSHIRILGEN</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Bul sayt ushın QOSILǴAN</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">%1$s ushın cookie haqqındaǵı xabarlamalardı qısqartıwdı qosayıq pa?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">%1$s ushın cookie haqqındaǵı xabarlamalardı qısqartıwdı óshireyik pe?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s bul sayttıń cookieların óshiredi hám betti jańalaydı. Barlıq cookielardı óshiriw sizdi sistemadan shıǵarıwı yamasa sawda islew sebetińizdi bosatıwı múmkin.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s kuki sorawların avtomatikalıq biykarlawǵa háreket qılıwı múmkin.</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Biykarlaw</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Qollap-quwatlawdı soraw</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Qollap-quwatlaw haqqındaǵı soraw jiberildi.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Qollap-quwatlaw haqqındaǵı soraw jiberildi.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">sazlawlar</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Avtomatikalıq iske túsiriw</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Ruqsat beriw ushın:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Android sazlawların ashıń</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. <b>Ruqsatlar</b> ústine basıń]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Sazlawlarǵa ótiw</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. <b>%1$s</b> ruqsat berilgen jaǵdayına ótkeriń]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Jaylasıw ornı</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Xabarlama</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access"> Avtor huqıqları menen qorǵalǵan kontent</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Ruqsat beriwdi sorań</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Bloklanǵan</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Ruqsat etildi</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Android tárepinen bloklanǵan</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Audio hám videoǵa ruqsat beriw</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Tek audionı bloklaw</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Usınıs etilgen</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Audio hám videonı bloklaw</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Izertlewler</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox waqtı-waqtı menen izleniwlerdi ornatıwı hám júrgiziwi múmkin.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Tolıǵıraq úyreniw</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Ózgerislerdi qollanıw ushın baǵdarlama jabıladı</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Alıp taslaw</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktiv</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Aralıqtan USB/Wi-Fi arqalı nasazlıqtı sazlaw</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Bloktan shıǵarıw</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Barmaq izińiz járdeminde tastıyıqlań</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Siltemeni jańa seansda ashıw</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Barmaq izleri anıqlanbadı. Qayta urınıp kóriń.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Izlew usınısları kórsetilsin be?</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Yaq</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Awa</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Aryım izlew sistemaları usınıslardı kórsete almaydı.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Jabıw</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Jańa bet ashıldı</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Ótiw</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Tolıq ekran rejimi</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Tek HTTPS rejimi</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Qáwipsizlikti arttırıw ushın HTTPS shifrlaw protokolı járdeminde saytlarǵa avtomat tárizde jalǵanıwǵa háreket etedi.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Esaptan tısqarılar</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Alıp taslaw</string>
+
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Barlıq veb-saytlardı óshiriw</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Cookielardı bloklaw</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Cookielardı bloklawdı qáleysiz be?</string>
+
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Keshiresiz. Bul bet penen mashqala payda boldı.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Betti jabıw</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Nasazlıq esabatın Mozillaǵa jiberiw</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Kontent</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Reklama</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social tarmaqlar</string>
+
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analitika</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Baqlawdan keńeytilgen qorǵanıw</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Bul sayt ushın qorǵanıw óshirilgen</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Bul sayt ushın qorǵanıw qosıwlı</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Jalǵanıw qáwipsiz</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Jalǵanıw qáwipsiz emes</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Artqa qaytıw</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Alıp taslaw</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Qayta ataw</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Qayta ataw</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Operativ buyrıq ataması</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Jaqtı</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Qarańǵı</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Batareyanı únemlew rejimin názerde tutıw</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Qurılma temasına ámel etiń</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Bul sayt HTTPSdı qollap-quwatlamaydı</string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Jalǵanıw qáwipsiz emes</string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Betti jabıw</string>
+
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Jabıw</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Jabıw</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Izlew vidjeti</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Kóriw tariyxi óshirildi 🎉</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Vidjetti bas ekranǵa qosıw</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Vidjet bas ekranǵa qosıldı</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-kab/strings.xml b/mobile/android/focus-android/app/src/main/res/values-kab/strings.xml
new file mode 100644
index 0000000000..43205cf53b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-kab/strings.xml
@@ -0,0 +1,1123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Sefsex</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">IH</string>
+
+ <string name="action_save">Sekles</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Nadi neγ sekcem tansa</string>
+
+ <string name="teaser">Tunigin tusligt tawurmant.\nSnirem. Kkes. Sniles.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Amazray-inek n unadi yettwasfeḍ.</string>
+
+ <string name="feedback_erase2">Azray n tunigin yettwasfeḍ</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Amazray n tunigin n yiccer yettwasfed.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Nadi %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Bḍu…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Azen-d ugur-agi</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Ldi di %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Ldi deg…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Rnu γer ugdil agejdan</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Rnu ɣer yinegzumen n unasiw</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Kkes seg yinegzumen</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Iγewwaṛen</string>
+ <string name="menu_about">Γef</string>
+ <string name="menu_help">Tallalt</string>
+ <string name="menu_rights">Izerfan-inek</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Ineḍfaṛen ttwaḥebsen</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Ma tsenseḍ aya, izmer ad ttwasegmen kra n uguren</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Asewḥel n ugbur</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Sens akken ad tqaεḍeḍ kra n ismal</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Ddaw leɛnaya n %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Bdu s</string>
+
+ <string name="notification_erase_title_android_14">Sfeḍ amazray n tunigin?</string>
+
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Sit ɣef telɣut-a neɣ kkes-itt i wakken ad tekkseḍ azray-ik n tunigin s wudem aɣelsan.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Sit ɣef telɣut-a neɣ zuɣer-itt i wakken ad tekkseḍ azray-ik n tunigin s wudem aɣelsan.</string>
+
+ <string name="notification_erase_text">Sfeḍ amazray n tunigin</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Ldi</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Sfeḍ sakin Ldi</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Sfeḍ</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Sfeḍ amazray n tunigin</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Sfeḍ &amp; Ldi</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Sfeḍ sakin ldi %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Nadi deg Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Nadi deg Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Nadi deg Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Nadi deg Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s ad k-d-yefk afus ad teqqimeḍ d aqeṛṛu.</p>
+<p>Seqdec-it d iminig uslig:
+ <ul>
+ <li>Nadi sakin snirem akken iwata deg usnas</li>
+ <li>Sewḥel ineḍfaren (neɣ leqqem iɣewwaren akken ad tsirgeḍ ineḍfaren)</li>
+ <li>Sfeḍ inagan n tuqqna akked uzray n tunigin d unadi</li>
+ </ul>
+</p>
+<p>%1$s yesnulfa-t-id Mozilla. Tuɣdaṭ-nneɣ ad nḥareb γef internet yeldin d tezmert-is.<br/>
+<a href="%2$s">Issin ugar</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">&quot;Tabaḍnit &amp; Taɣellist&quot;</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Aḍfaṛ, inagan n tuqqna, isefka yettwaleqḍen</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Amsedday amezwer, tira tawurmant</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Ɣef %1$s, tallelt</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Ammesten mgal aḍfaṛ yettwaseǧhed</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Agbur Web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Tunigin gar yisnasen</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Amatu</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Iminig amezwer, tutlayt</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Alqaḍ &amp; Aseqdec n yisefka</string>
+
+ <string name="preference_category_search">Nadi</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Sken isumar n unadi</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s ad ak-n-yazen tawsit-inek deg ufeggag n tansiwin ɣer umsedday-inek n unadi</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Amezwer</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Amsedday n unadi</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Yermed</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Yensa</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Taččart tawurmant URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">I yismal ifazen</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">%s ur yizmir ara ad yesεu taččart tawurmant i ugar n 450 n URLs deg ufeggag n tansiwin.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">I yismal ad ternuḍ</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Ur izmir ara ad isεu %s taččart tawurmant n URLs inek i tḥemmleḍ.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Sefrerk ismal</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Sefrerk ismal</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Rnu URL aganan</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Tabdart-ik·im n usmad awurman:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Rnu URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Rnu URL aganan</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Rnu URL aganan</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Rnu aseɣwen i taččart tawurmant</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Inagan n tuqqna d yisefka n yismal</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Alqaḍ n yisefka</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Kkes URLs iganen</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Issin ugar</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Rnu u sefrek taččart tawurmant n URLs.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL ad ternuḍ</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Senṭeḍ neγ sekcem URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Amedya: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Amedya: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">URL aganan amaynut ittwarna.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Kkes</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Kkes</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Senned snat γef URL i tesriḍ.</string>
+
+ <string name="preference_language">Tutlayt</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Amezwer n unagraw</string>
+
+ <string name="preference_category_privacy">Tabaḍnit</string>
+ <string name="preference_privacy_block_ads">Sewḥel ineḍfaṛen</string>
+ <string name="preference_privacy_block_ads_summary">Kra n udellel iṭṭafaṛ tirza inek γer izmal web, Γas ur tsit ara γef udellel</string>
+ <string name="preference_privacy_block_analytics">Sewḥel ineḍfaṛen usliḍen</string>
+ <string name="preference_privacy_block_analytics_summary">Ittwaseqdec i welqqaḍ , Aslaḍ d uktili n wamud am usekcem n isekillen akked usenned</string>
+ <string name="preference_privacy_block_social">Sewḥel ineḍfaṛen n tmetti</string>
+ <string name="preference_privacy_block_social_summary">Ittwarna deg kra n ismal akken ad isfuγel tirziwin inek , akken daγen ad d-yesken timahaltin am tqefalt n beṭṭu</string>
+ <string name="preference_privacy_block_content">Sewḥel ineḍfaṛen-nniḍen n ugbur</string>
+ <string name="preference_privacy_block_content_summary2">Armad n uγwwaṛèagi izmer ad yeglu s kra n wuguren di kra n isebtar</string>
+ <string name="preference_privacy_category_cookies">Sewḥel inagan n tuqna</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Uhu, tanemmirt</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Sewḥel kan inagan n tuqqna n ufecku wis 3</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Sewḥel kan inagan n tuqqna n ufecku wis 3</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Sewḥel inagan n tuqqna gar yismal</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ih, tanemmirt</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Seqdec adsil umḍin akken ad tserḥeḍ i usnas</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Kkes asekkeṛ s useqdec n udsil umḍin ma yella terniḍ inegzumen n unasiw neɣ ma yili asmel web yeldi yakan deg %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Tusligt</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Ffer isebtar web ticki tettbeddileḍ gar isnasen sakin sewḥel tuṭṭfa n ugdil.</string>
+
+ <string name="preference_category_security">Taɣellist</string>
+
+ <string name="preference_category_performance">Tamellit</string>
+ <string name="preference_performance_block_webfonts">Sewḥel tisefsiyin Web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Ahat yekka-d seg tigitin neγ tugniwin yettwattun</string>
+
+ <string name="preference_performance_block_javascript">Sewḥel JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Izmer ad d-yali usebter s wudem arurad, maca izmer daγen ad yili wugur</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Err %1$s d iminig amezwer</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Azen isefka n useqdec</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Issin ugar</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla tettennaɣ akken ad telqeḍ kan ayen tesra i usnulfu d usnernu n %1$s i yal uiwen.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Tasertit n tbaḍnit</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Talɣut n turagt</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Timkerḍiyin i nseqdac</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | timkerḍiyin OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Γef %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Imseddayen n unadi ibedden</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Fren amsedday n unadi</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Err-d imseddayen n unadi imezwar</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Rnu amsedday nniḍen n unadi</string>
+ <string name="preference_search_remove_title">Kkes imseddayen n unadi</string>
+ <string name="preference_search_remove">Kkes</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Rnu amsedday n unadi wayeḍ</string>
+
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Fren amsedday-ine·inem n unadi ufrin</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Rnu amsedday n unadi</string>
+
+ <string name="search_add_manually_name_hint">Isem n umsedday n unadi</string>
+ <string name="search_add_manually_string">Nadi aḍris ad tesqedceḍ</string>
+ <string name="search_add_manually_save">Sekles</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Amedya: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Amesday n unadi amaynut ittwarna.</string>
+
+ <string name="search_add_error_empty_name">Sekcem isem n umsedday n unadi</string>
+ <string name="search_add_error_duplicate_name">Amsedday n unadi s yisem-a ittwasebded yakan.</string>
+
+ <string name="search_add_error_empty_search">Sekcem aḍris n unadi</string>
+
+ <string name="search_add_error_format">Senqed akken aḍris n unadi yemsaḍa akked tawsit n umedya</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Sfeḍ anekcam</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Kkes</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Kkes amazray n tunigin</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Iccaren ldin: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Tuqqna taγelsant</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Asali</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Asmel web yuli-d</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Ugar n iγewwaṛen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Tageffalt n vewwaṛen-nniḍen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Inig ar zdat</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Ales asali n usmel web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Inig ar deffir</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Seḥbes asali n usmel</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Uγal ar usnas izrin</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Amḍan n ineḍfaṛen ittwaḥebsen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Sewḥel ineḍfaṛen</string>
+
+ <string name="your_rights">Izerfan-ik</string>
+
+ <string name="external_app_prompt_title">Ldi aseγwen deg usnas-nniḍen</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Tzemred ad tefγeḍ seg %1$s akken ad d-ldiḍ aseγwen di %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Aff-d asnas izemren ad d-yeldi aseγwen</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ulac asnas deg ibenk-ik izemren ad d-yeldi aseγwen-agi. Tebγiḍ ad teffγeḍ si %1$s sakin ad d-nadiḍ %2$s akken ad d-tafeḍ asnas ilaqen.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Ffeγ si tunigin tusligt?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s yefuk</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Ldi</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Yettwarna ɣer yinegzumen!</string>
+
+ <string name="error_hostLookup_title">Ulac aqeddac</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Mdel</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Welcome to %1$s</string>
+
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">D arurad. D uslig. Ulac yesruḥuyen ddehn.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Bdu</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s mačči am yiminigen-nniḍen</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Anseffeḍ azray-ik•im mi ara tmedleḍ asnas i wugar n lemqadra n tbaḍnit.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Err %1$s d iminig-ik·im amezwer i ummesten n yifeka-k·m yal tikkelt mi ara teldiḍ aseɣwen.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Sbadu-t d iminig amezwer</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Suref</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Rmed tabaḍnit inek</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Iminig uslig ad yali deg uswir.Dayen ur tuγaleḍ ad twaliḍ adellel neγ imsfuγal i k-ṭṭafaren u saẓayen tulya n isemal web.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Anadi-ik, abrid-ik</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Tettnadiḍ ayen-nniḍen? Fren amsadday-nniḍen n unadi amezwer deg iɣewwaṛen.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Rnu anegzum ar ugdil-ik agejdan</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Uɣal ar yesmal-ik inurifen deg %1$s s zreb. Fren kan \&quot;Rnu ar ugdil agejdan\&quot; seg umuɣ %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Err tabaḍnit d tanumi</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Sbadu %1$s d iminig-ik amezwar sakin faṛeṣ tagnit n tunigin tusligt ticki teldiḍ-d isebtar web seg isnasen-nniḍen.</string>
+
+ <string name="firstrun_close_button">IH, Awi-t-id!</string>
+ <string name="firstrun_skip_button">Suref</string>
+ <string name="firstrun_next_button">Γer zdat</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Rnu</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">IH</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Sefsex</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">UHU</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Anegzum-a ad d-yeldi s ummesten yettuḥettmen mgal aḍfaṛ</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Tiɣimit n tunigin tusligt</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Ilɣa ad k-ǧǧen ad tsefḍeḍ tiɣimit n %1$s-ik s unali. Ur tesrid ara ad teldiḍ asnas neɣ ad twaliḍ ayen yettwaselkamen deg iminig-ik.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Sfeḍ amazray n tunigin</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Sader Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA["%1$s baṭṭel s waɣbalu yeldin ixeddem-it Mozilla d imettekiyen nniḍen. "]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s yella ddaw tewtilin n <a href="%2$s">Turagt tazayazt n Mozilla</a>akked turagin-nniḍen n uɣbalu yeldin.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Ur ak·am-yettmuddu ula d yiwen uzref neɣ turagt ɣef tecṛaḍ n yisebtar n tkebbanit n Mozilla neɣ n wis kraḍ, rnu ɣer-s ula d ismawen neɣ iluguten n Mozilla, Firefox neɣ ismawen %1$s. ugar n talɣut ad tettwaf deg <a href="%2$s">dagi</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Tangalt taɣbalut-nniḍen i %1$s tella deg waṭas n <a href="%2$s">turagin</a> tiyaḍ yemgaraden d tilelliyin yerna n uɣbalu yeldin.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s isseqdac daɣen tibdarin n usewḥel i d-yettwamudden sɣur Disconnect, Inc. am leqdic illeli ddaw <a href="%2$s">Turagt tazayazt tamatut GNU v3</a>, yernza tella <a href="%3$s">dagi</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Isem n useqdac</string>
+ <string name="gv_prompt_password_hint">Awal uffir</string>
+ <string name="gv_prompt_clear">Sfeḍ</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Tuqqna taɣelsant</string>
+ <string name="security_popup_insecure_connection">Tuqqna taraɣelsant</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Isenqed-it: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Taɣellist n usmel web</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL Yella yakan</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Af deg usebter</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Nadi deg usebter</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d ɣef %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Af-d agmuḍ d-iteddun</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">af-d agmuḍ yezrin</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Mdel anadi deg usebter</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Suter asmel n tnarit</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Asmel n tnarit</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Tansa URL tettwanγel</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Ifecka n tneflit</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Ldi iseɣwan deg yisnasen</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Talqayt</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Tisirag n usmel</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Asenqes n yiɣarracen n yinagan n tuqqna</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Yermed</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Yensa</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Asenqes n yiɣarracen n yinagan n tuqqna</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Wali kra kan n yiɣarracen s ugdal awurman n yissutar n yinagan n tuqqna mi ara tettunefk tegnit.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Asenqes n yiɣarracen n yinagan n tuqqna</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Rmed i usmel-a</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Asmel-a ur yettusefrak ara akka tura</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Sens i usmel-a</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Asenqes n yiɣarracen n yinagan n tuqqna</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Sens i usmel-a</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Rmed i usmel-a</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Rmed asenqes n yiɣerracen n yinagan n tuqqna i %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Sens asenqes n yiɣerracen n yinagan n tuqqna i %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s ad isfeḍ inagan n tuqqna n usmel-a syen ad issesfer asebter. Asfaḍ meṛṛa n yinagan n tuqqna yezmer ad ak·am-isseḥbes tuqqna neɣ ad yenɣel tiqecwalin n tiɣtin.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s yezmer ad yeɛreḍ s wudem awurman ad yagi issutar n yinagan n tuqqna.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Asmel-a ur yettusefrak ara akka tura s usenqes n yiɣarracen n yinagan n tuqqna. Tebɣiḍ ad tessutreḍ tarbaɛt-nneɣ ad tessenqed asmel-a, ad ternu asefrek-ines ar sdat?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Sefsex</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Ssuter tallalt</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Assuter n usefrek n usmel yettwazen.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Assuter n usefrek n usmel yettwazen.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s yettaɛraḍ ad yagi issutar n yinagan n tuqqna i wakken ad tekksem iɣarracen n yinagan n tuqqna.\n\nSefrek ismenyifen n yiɣarracen n yinagan n tuqqna deg %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">iɣewwaren</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Taɣuri tawurmant</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Sireg-it:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Ddu ɣer iɣewwaṛen Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Senned <b>Tisirag</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Ddu ɣer iɣewwaṛen</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Nṭew<b>%1$s</b> ɣer IRMED]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Takamiṛat</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Asawaḍ</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Adig</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Alɣu</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Agbur yettwaḥerzen s DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Suter asireg</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Iwḥel</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Ittusireg</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Iwḥel sɣur Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Sireg ameslaw d uvidyu</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Sewḥel kan imeslawen</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Yelha</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Sewḥel imeslawen d tvidyutin</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Leqraya</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox yezmer ad isebded yerna ad iseddu leqraya seg wakud ɣer wayeḍ.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Issin ugar</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Asnas ad yemdel i wakken ad ttusnasen ibiddilen</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Kkes</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Urmid</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Yemmed</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Taseɣtit tanmeggagt s USB/Wi-Fii</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Serreḥ</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Sentem aseqdec n udlis-ik umḍin</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Tzemreḍ ad tesqedceḍ adsil-ik umḍin i wakken ad tkemmleḍ tiɣimit-ik n usnas tamirant.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Ldi aseɣwen deg tɣimit tamaynut</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Tagnit n udsil umḍin</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Ur yaêqil ara aḍaḍ. Ԑreḍ tikkelt-nniḍen.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">TƐherkeḍ aḍaḍ s lweǧlan. Ԑreḍ tikelt-nniḍen.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Sen isumar n unadi?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Akken ad tawiḍ isumar n unadi, %1$s isra ad yazen ayen tettaruḍ deg ufeggag n tansa ɣer umsedday n unadi.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ala</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Ih</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Kra n imseddayen n unadi ur zmiren ara ad d-sken isumar.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Zgel</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Tigawin ur nettwerǧu sɣur usmel?\n Ɛṛeḍ ad tsenseḍ ammesten n usfuɣel</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA["Awi anekcum fessusen ɣer ismal i tseqdaceḍ aṭas %1$s Umuɣ > Rnu ɣer ugdil agejdan"]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Ldi yal aseɣwen deg %1$s\n Sbadu %1$s d iming amezwar</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Taččarant tawurmant URLs i yismal i tseqdaceḍ aṭas \n Asenned ɣezzifen ɣef URL ibɣu yilli deg ufeggag n tansiwin</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Ldi aseɣwen deg iccer amaynut\n Asenned ɣezzifen ɣef useɣwen deg usebter</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Sens timahaltin deg ugdil n tnekra</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Iccer amaynut yeldi</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Nṭew</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Askar n ugdil ačaran yermed</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Nṭew ɣer useɣwen deg iccer amaynut</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Sewḥel yir agbur neɣ ismal iweɛṛen</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Inni-aɣ-d ɣef tigawin n usaxser n ismal, ismal n uḍfar, akked isaɣzan n ddiri deg ismal.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Askar HTTPS-Only</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Ad yeɛreḍ ad iqqen ɣer ismal iseqdacen aprotokol n uwgelhen HTTPS i ugar n teɣelist.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Tisuraf</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Tsenseḍ asewḥel n ugbur i yismal-agi.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Kkes</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Kkes akk ismal web</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Sewḥel inagan n tuqqna</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Tebɣiḍ ad tesweḥleḍ inagan n tuqqna?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Yaɣli iccer</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Nesḥasef. nesεa ugur akked iccer-agi.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Immi d iminig uslig, werǧin ad nsekles neɣ ad d-nner iccaren.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Mdel Iccer</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Azen aneqqis n uɣelluy i Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Ineḍfaren ttusweḥlen seg %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Agbur</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Adellel</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Anmetti</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Tidaddanin</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Ammesten mgal aḍfaṛ yettwaseǧhed</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Ammesten yensa i usmel-a</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Ammesten yermed i usmel-a</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Tuqqna d taɣellsant</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Tuqqna mačči d taɣellsant</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Ineḍfaren d yisekripten ara yettusweḥlen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Uɣal ɣer deffir</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Kkes</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Snifel isem</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Snifel isem</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Isem n unegzum</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Tugniwin yettwaskelsen akked yettwabḍan &lt;b&gt;ur ttwakkasent ara&lt;/b&gt; mi ara ad tekkseḍ %1$s azray.</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Asentel</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Aceɛlal</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Aberkan</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Asbadu n uḥraz n uẓru</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Ḍfer asntel n yibnek</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Asmel-a ur issefrak ara HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s iɛerreḍ ad yesseqdec tuqqna HTTPS yal mi ara yili wamek i wugar n tɣellist.
+ <a href="%2$s">Issin ugar</a> <br/><br/>
+ Beddel aɣewwaṛ-a deg Iɣewwaṛen > Tabaḍnit &amp; Taɣellist.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Tuqqna d taraɣellsant</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Aya yezmer ad yili d ugur deg twila n uqeddac, neɣ yezmer ad yili d ḥedd i iɛerrḍen ad yaker tamagit n uqeddac. <br/><br/>
+ Ma teqqneḍ ɣer uqeddac-a akken ilaq yakan, tuccḍa tezmer ad tili d taskudant.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[<label>Ahat yella ḥedd i iɛerrḍen ad yaker tamagit n usmel, ur ilaq ara ad tkemmleḍ.</label>
+<br><br>
+<label>%1$s ur yumin ara <b>%2$s</b> acku tasiregt d tarussint, tasiregt tesɛa azmul-is, neɣ aqeddac ur d-yuzin ara tisirag timeɣta.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Mdel Iccer</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Ṭṭfeɣ-ten! Nesseḥbes asmel-a ɣef tɛessast-ik·im. Sit ɣef ẓẓerb-nni yal tikkelt i wakken ad twaliḍ acu i nessewḥel.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Mdel asfaylu udhim</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Tettummestneḍ!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Iɣewwaren-a s wudem amezwer ttmuddun ammesten iǧehden. Maca yeshel ad ttubeddlen, ad ten-terreḍ akken i tebɣiḍ.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Zgel</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Sit dagi i wakken ad tḍeggreḍ kullec — azray, inagan n tuqqna, kullec — syen bdu seg tazwara qef yiccer amaynut.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Mdel</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Nadi awiǧit</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Azray n tunigin yettwasfaḍ! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Bdu tiɣimit-ik·im n tunigin tusligt, ad nessewḥal ineḍfaren d yir tɣawsiwin simi tettedduḍ.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Ad ak·akem-neǧǧ tunigin tusligt, maca bdu s zzerb deg wussan i d-iteddun s uwiǧit %1$s ɣef ugdil-ik·im agejdan.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Rnu awiǧit ɣer ugdil agejdan</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Yettwarna uwiǧit ɣer ugdil agejdan</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-kk/strings.xml b/mobile/android/focus-android/app/src/main/res/values-kk/strings.xml
new file mode 100644
index 0000000000..f3d7a9e74c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-kk/strings.xml
@@ -0,0 +1,1117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Бас тарту</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ОК</string>
+
+ <string name="action_save">Сақтау</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Іздеу немесе адрес</string>
+
+ <string name="teaser">Автоматты түрдегі жекелік шолу.\nШолу. Өшіру. Қайталау.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Сіздің шолу тарихыңыз өшірілді.</string>
+ <string name="feedback_erase2">Шолу тарихы тазартылды</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Беттің шолу тарихы өшірілді.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s іздеу</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Бөлісу…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Сайт мәселесі жөнінде хабарлау</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s көмегімен ашу</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Көмегімен ашу…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Үй экранына қосу</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Жарлықтарға қосу</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Жарлықтардан өшіру</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Баптаулар</string>
+ <string name="menu_about">Осы туралы</string>
+ <string name="menu_help">Көмек</string>
+ <string name="menu_rights">Құқықтарыңыз</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Блокталған трекерлер</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Бұл мүмкіндікті өшіру кейбір сайт мәселелерін шешуі мүмкін</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Құраманы бұғаттау</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Кейбір сайттарды жөндеу үшін өшіру</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s негізінде</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Арқылы бөлісу</string>
+
+ <string name="notification_erase_title_android_14">Шолу тарихын өшіру керек пе?</string>
+
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Шолу журналын қауіпсіз түрде өшіру үшін осы хабарландыруды шертіңіз немесе тазартыңыз.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Шолу журналын қауіпсіз түрде өшіру үшін осы хабарландыруды шертіңіз немесе сырғытыңыз.</string>
+
+ <string name="notification_erase_text">Шолу тарихын өшіру</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Ашу</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Өшіру және ашу</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Өшіру</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Шолу тарихын өшіру</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Өшіру және ашу</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Өшіру және %1$s ашу</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Focus көмегімен іздеу</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Klar көмегімен іздеу</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Focus Beta көмегімен іздеу</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Focus Nightly көмегімен іздеу</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s басқаруды қолыңызға береді.</p>
+<p>Оны жекелік браузері ретінде қолданыңыз:
+ <ul>
+ <li>Қолданба ішінен тікелей іздеу және шолу</li>
+ <li>Трекерлерді блоктау (немесе, оларды рұқсат ету үшін, баптауларды жаңарту)</li>
+ <li>Cookie файлдарын және іздеу мен шолу тарихын кетіру үшін өшіру</li>
+ </ul>
+</p>
+<p>%1$s жасаған Mozilla. Мақсатымыз - интернет денсаулығын және ашықтығын сақтау.<br/>
+<a href="%2$s">Көбірек білу</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Жекелік және қауіпсіздік</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Бақылау, cookies файлдары, деректер таңдауы</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Бастапқы мәні, автотолықтыру</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s туралы, көмек</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Бақылаудан кеңейтілген қорғаныс</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Веб құрамасы</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Қолданбаларды ауыстыру</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Жалпы</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Негізгі браузер, тіл</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Деректерді жинау және қолдану</string>
+
+ <string name="preference_category_search">Іздеу</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Іздеу ұсыныстарын алу</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s сіз адрестік жолақта терген нәрсені сіздің іздеу жүйеңізге жіберетін болады</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Негізгі</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Іздеу жүйесі</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Іске қосулған</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Сөндірілген</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL автотолықтыру</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Үздік сайттар үшін</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">%s адрестік жолақта 450-ден астам әйгілі URL-ді автотолықтыру үшін іске қосыңыз.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Қосылатын сайттар үшін</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">%s сіздің таңдамалы URL автотолықтыруды іске қосу.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Сайттарды басқару</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Сайттарды басқару</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Таңдауыңызша URL қосу</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Сіздің автотолтыру тізіміңіз:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL қосу</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Таңдауыңызша URL қосу</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Таңдауыңызша URL қосу</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Автотолықтыру үшін сілтемені қосу</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies файлдары және сайт деректері</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Деректер таңдауы</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Таңдауыңызша URL-дер өшіру</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Көбірек білу</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Таңдауыңызша автотолықтыру URL-ді қосыңыз немесе басқарыңыз.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Қосылатын URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">URL кірістіріңіз немесе енгізіңіз</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Мысалы: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Мысалы: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Жаңа таңдауыңызша URL қосылды.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Өшіру</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Өшіру</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Енгізілген URL тексеріңіз.</string>
+
+ <string name="preference_language">Тіл</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Жүйелік</string>
+
+ <string name="preference_category_privacy">Жекелік</string>
+ <string name="preference_privacy_block_ads">Жарнама трекерлерін блоктау</string>
+ <string name="preference_privacy_block_ads_summary">Кейбір жарналамалар сайт шолуды бақылайды, жарнамаларға шертпесеңіз де</string>
+ <string name="preference_privacy_block_analytics">Аналитикалық трекерлерді блоктау</string>
+ <string name="preference_privacy_block_analytics_summary">Шерту және айналдыру әрекеттерін жинау, зерттеу және өлшеуге пайдаланылады</string>
+ <string name="preference_privacy_block_social">Әлеуметтік желілер трекерлерін блоктау</string>
+ <string name="preference_privacy_block_social_summary">Шолуыңызды бақылау және бөлісу батырмалары сияқты мүмкіндіктерді көрсету мақсатымен сайттарға ендірілген</string>
+ <string name="preference_privacy_block_content">Басқа құрама трекерлерін блоктау</string>
+ <string name="preference_privacy_block_content_summary2">Бұны іске қосу кейбір сайттардың мінез-құлығын күтпегендей өзгертеді</string>
+ <string name="preference_privacy_category_cookies">Cookies файлдарын бұғаттау</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Жоқ, рахмет</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Тек үшінші жақты cookies файлдарын бұғаттау</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Тек үшінші жақты cookies файлдарын бұғаттау</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Сайтаралық cookie файлдарын бұғаттау</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Иә</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Қолданбаны босату үшін саусақ баспасын қолдану</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Жарлықтарды қосқан болсаңыз немесе веб-сайт %s ішінде қазір ашық болса, саусақ ізі арқылы құлыпты ашыңыз.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Жасырын</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Қолданбаларды ауыстыру кезінде веб парақтарды жасыру және скриншот түсіруді бұғаттау.</string>
+
+ <string name="preference_category_security">Қауіпсіздік</string>
+
+ <string name="preference_category_performance">Өнімділік</string>
+ <string name="preference_performance_block_webfonts">Веб қаріптерін блоктау</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Жоқ болып тұрған таңбашалар немесе суреттерге әкеп соғуы мүмкін</string>
+
+ <string name="preference_performance_block_javascript">JavaScript бұғаттау</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Беттер жылдамдау жүктелуі мүмкін, бірақ, мінез-құлығы күтпегендей өзгеруі мүмкін</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s-ты негізгі браузер қылу</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Қолдану деректерін жіберу</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Көбірек білу</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla тек %1$s әркім үшін ұсыну және жақсарту мақсатында керек деректерді жинауға тырысады.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Жекелік ескертуі</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Лицензиялық ақпарат</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Біз пайдаланатын библиотекалар</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Ашық библиотекалар</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s туралы</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Орнатылған іздеу жүйелері</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Іздеу жүйесін таңдау</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Үнсіз келісім іздеу жүйелерін қалпына келтіру</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Басқа іздеу жүйесін қосу</string>
+ <string name="preference_search_remove_title">Іздеу жүйелерін өшіру</string>
+ <string name="preference_search_remove">Өшіру</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Басқа іздеу жүйесін қосу</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Өзіңіз қалайтын іздеу жүйесін таңдаңыз:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Іздеу жүйесін қосу</string>
+
+ <string name="search_add_manually_name_hint">Іздеу жүйесінің аты</string>
+ <string name="search_add_manually_string">Қолданылатын іздеу жолы</string>
+ <string name="search_add_manually_save">Сақтау</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Мысалы: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Жаңа іздеу жүйесі қосылды.</string>
+
+ <string name="search_add_error_empty_name">Іздеу жүйесі атын енгізіңіз</string>
+ <string name="search_add_error_duplicate_name">Орнатылған іздеу жүйесі бұл атын қолданып тұр.</string>
+
+ <string name="search_add_error_empty_search">Іздеу жолын енгізіңіз</string>
+
+ <string name="search_add_error_format">Іздеу жолы мысал пішіміне сай келетінін тексеріңіз</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Енгізуді тазарту</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Тайдыру</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Шолу тарихын өшіру</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Ашық беттер: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Қауіпсіз байланыс</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Жүктелуде</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Вебсайт жүктелген</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Көбірек опциялар</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Қосымша опциялар батырмасы</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Алға өту</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Вебсайтты қайта жүктеу</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Артқа өту</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Вебсайтты жүктеуді тоқтату</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Алдыңғы қолданбаға оралу</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Блокталған трекерлер саны</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Трекерлерді блоктау</string>
+
+ <string name="your_rights">Құқықтарыңыз</string>
+
+ <string name="external_app_prompt_title">Сілтемені басқа қолданбада ашу</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Бұл сілтемені %2$s көмегімен ашу үшін, сіз %1$s ішінен шыға аласыз.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Сілтемені аша алатын қолданбаны табу</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Құрылғыңыздағы бірде-бір қолданба бұл сілтемені аша алмайды. Оны аша алатын қолданбасын %2$s ішінен іздеу үшін, сіз %1$s ішінен шыға аласыз.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Жекелік шолу режимінен шығу керек пе?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s аяқталған</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Ашу</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Жарлықтарға қосылды!</string>
+
+ <string name="error_hostLookup_title">Сервер табылмады</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Жабу</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">%1$s өніміне қош келдіңіз</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Жылдам. Жеке. Ешқандай алаңдаушылығы жоқ.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Бастау</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s басқа браузерлер сияқты емес</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Қосымша жекелік үшін сіз қолданбаны жапқан кезде тарихыңызды тазартамыз.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Әрбір ашылған сілтеме кезінде деректеріңізді қорғау үшін %1$s өнімін негізгі етіп орнатыңыз.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Негізгі браузер қылу</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Аттап кету</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Жекелігіңізді күшейтіңіз</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Жекелік шолудың келесі деңгейіне өтіңіз. Сайттар арасында сізді бақылайтын және парақтардың жүктелу уақытын арттыратын жарнама және басқа құраманы блоктаңыз.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Сіздің іздеулеріңіз, сіздің жолыңызбен</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Басқа бірнәрсе іздедіңіз бе? Баптаулардан басқа негізгі іздеу жүйесін таңдаңыз.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Үй экранына жарлықтарды қосыңыз</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">%1$s ішінде таңдамалы сайттарға жылдам оралыңыз. Тек %1$s мәзірінен \&quot;Үй экранына қосу\&quot; таңдаңыз.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Жекелікті әдет қылыңыз</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">%1$s негізгі браузер ретінде орнатып, басқа қолданбалардан вебпарақтарын ашу кезінде жекелік шолудың артықшылықтарын алыңыз.</string>
+
+ <string name="firstrun_close_button">Жақсы, түсіндім!</string>
+ <string name="firstrun_skip_button">Аттап кету</string>
+ <string name="firstrun_next_button">Келесі</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Қосу</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ИӘ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Бас тарту</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">ЖОҚ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Жарлық Бақылаудан жақсартылған қорғанысы сөндірілген түрімен ашылады</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Жекелік шолу сессиясы</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Хабарламалар сізге %1$s сессиясын бір шертумен өшіруді мүмкін етеді. Сізге браузерді ашуды немесе браузерде не орындалғанын көру керек емес.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Шолу тарихын өшіру</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox-ты жүктеп алу</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s - Mozilla және басқа үлес қосушылары жасаған еркін және бастапқы кодтары ашық бағдарламалық қамтама.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s сізге <a href="%2$s">Mozilla публикалық лицензиясы</a> және басқа кодтары ашық лицензиялар аясында қолжетімді етілген.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Сізге Mozilla Foundation-ның немесе басқа да жақтардың ешбір тіркелген сауда белгілеріне, соның ішінде Mozilla, Firefox немесе %1$s аттары немесе логотиптеріне ешбір құқықтар немесе лицензиялар берілмейді. Қосымша ақпаратты <a href="%2$s">осы жерден</a> табуға болады.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[%1$s үшін қосымша бастапқы кодтары әр түрлі басқа тегін және бастапқы кодтары ашық <a href="%2$s">лицензиялар</a> аясында қолжетімді.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[Сонымен қатар, %1$s Disconnect, Inc. ұсынған блоктізімдерін қолданады, олар <a href="%2$s">GNU General Public License v3</a> аясында, <a href="%3$s">осында</a> бөлек және тәуелсіз жұмыстар ретінде қолжетімді.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Пайдаланушы аты</string>
+ <string name="gv_prompt_password_hint">Пароль</string>
+ <string name="gv_prompt_clear">Тазарту</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Қауіпсіз байланыс</string>
+ <string name="security_popup_insecure_connection">Қауіпсіз емес байланыс</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Растаған: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Сайт қауіпсіздігі</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL бар болып тұр</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Беттен табу</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Беттен табу</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%2$d ішінен %1$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Келесі нәтижені табу</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Алдыңғы нәтижені табу</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Беттен іздеуді алып тастау</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Сайттың толық нұсқасы</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Жұмыс үстелі сайты</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL сілтемесі көшірілді</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Әзірлеуші құралдары</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Сілтемелерді қолданбаларда ашу</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Кеңейтілген</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Сайт рұқсаттары</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Cookie баннерлерін азайту</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Іске қосулы</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Сөндірулі</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Cookie баннерлерін азайту</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Cookie сұрауларын мүмкіндігінше автоматты түрде қабылдамау арқылы баннерлерді азырақ көріңіз.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Cookie баннерлерін азайту</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Бұл сайт үшін іске қосылған</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Сайтқа ағымдағы уақытта қолдау жоқ</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Бұл сайт үшін сөндірілген</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Cookie баннерлерін азайту</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Бұл сайт үшін сөндірілген</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Бұл сайт үшін іске қосылған</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">%1$s үшін cookie баннерлерін азайту мүмкіндігін іске қосу керек пе?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">%1$s үшін cookie баннерлерін азайту мүмкіндігін сөндіру керек пе?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s осы сайттың cookie файлдарын тазартып, бетті жаңартады. Барлық cookie файлдарын тазарту салдарынан сіз сайттан шығуыңыз мүмкін немесе дүкен себеттері тазартылуы мүмкін.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s cookie сұрауларын автоматты түрде қабылдамау әрекетін жасай алады.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Бұл сайтқа қазіргі уақытта Cookie баннерлерін азайту қолдау көрсетпейді. Біздің топтан осы веб-сайтты қарап шығуды және болашақта қолдау көрсетуді сұрағыңыз келе ме?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Бас тарту</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Қолдау сұрау</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Сайтқа қолдау көрсетуге сұраным жіберілді.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Сайтқа қолдау көрсетуге сұраным жіберілді.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s мазаңызды алатын cookie баннерлерін болдырмау үшін cookie сұранымдарын қабылдамау талабын жасайды.\n\n%2$s ішінде cookie баннерлері опцияларын өзгертуге болады.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">баптаулар</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Автоойнату</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Рұқсат ету үшін:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Android баптауларына өтіңіз</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. <b>Рұқсаттар</b> басыңыз]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Баптауларға өтіңіз</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. <b>%1$s</b> ауыстырғышын іске қосыңыз]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Камера</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Микрофон</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Орналасу</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Ескерту</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-мен басқарылатын құрама</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Рұқсат ету үшін сұрау</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Бұғатталған</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Рұқсат етілген</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Android бұғаттаған</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Аудио мен видеоны рұқсат ету</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Тек аудионы бұғаттау</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Ұсынылатын</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Аудио мен видеоны бұғаттау</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Зерттеулер</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox кейде зерттеулерді орнатып, орындай алады.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Көбірек білу</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Қолданба өзгерістерді іске асыру үшін жабылады</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Өшіру</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Белсенді</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Аяқталған</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">USB/Wi-Fi арқылы қашықтан жөндеу</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Босату</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Саусақ ізін пайдаланап растаңыз</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Ағымдағы қолданба сеансын жалғастыру үшін саусақ ізін пайдалануға болады.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Сілтемені жаңа сессияда ашу</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Саусақ баспасы таңбашасы</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Саусақ баспасы танылмады. Қайталап көріңіз.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Саусақ тым жылдам өткізілді. Қайталап көріңіз.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Іздеу ұсыныстарын көрсету керек пе?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Іздеу ұсыныстарын алу үшін, %1$s сіз адрестік жолақта терген нәрсені іздеу жүйесіне жіберуі тиіс.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Жоқ</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Иә</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Кейбір іздеу жүйелері ұсыныстарды көрсете алмайды.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Тайдыру</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Әлі де күтпегендей әрекет жасайды ма?\n Бақылаудан қорғанысты сөндіріп көріңіз</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Жиірек қолданылатын сайттарға бір шертумен қатынаңыз%1$s Мәзір > Үй бетіне қосу]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Әр сілтемені %1$s ішінде ашыңыз\n %1$s негізгі браузер ретінде орнатыңыз</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Жиірек қолданылатын сайттар үшін сілтемелерді автотолықтырыңыз\n Адрестік жолақта кез келген сілтемеге ұзақ шертіңіз</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Сілтемені жаңа бетте ашу\n Беттегі кез келген сілтемеге ұзақ шертіңіз</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Іске қосу экранында кеңестерді сөндіру</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Жаңа бет ашылды</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Ауысу</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Толық экран режиміне өту</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Жаңа бетке тура ауысу</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Қауіпті және алдамшы болуы мүмкін сайттарды блоктау</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Хабарланған алмамшы, шабуылшы, зиянкес және қаламайтын БҚ орнататын сайттарды бұғаттау.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Тек-HTTPS режимі</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Қауіпсіздікті арттыру үшін сайттарға HTTPS шифрлеу хаттамасын пайдаланып автоматты түрде қосылу әрекетін жасайды.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Ережеден бөлек</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Бұл веб-сайттар үшін құраманы бұғаттауды сөндіргенсіз.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Өшіру</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Барлық веб-сайттарды өшіру</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Cookies файлдарын бұғаттау</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Cookie файлдарын бұғаттауды қалайсыз ба?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Бет құлады</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Кешіріңіз. Бұл бетпен мәселе бар.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Жеке браузер ретінде ешқашан сақтамаймыз және осы бетті қалпына келтіре алмаймыз.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Бетті жабу</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Mozilla-ға құлау хабарламасын жіберу</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">%s бастап, бұғатталған трекер саны</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Мазмұн</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Жарнама</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Әлеуметтік</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Аналитика</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Бақылаудан кеңейтілген қорғаныс</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Бұл сайт үшін қорғаныс СӨНДІРІЛГЕН</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Бұл сайт үшін қорғаныс ІСКЕ ҚОСЫЛҒАН</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Байланыс қауіпсіз</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Байланыс қауіпсіз емес</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Бұғаттау үшін трекерлер және скрипттер</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Артқа</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Өшіру</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Атын өзгерту</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Атын өзгерту</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Жарлық атауы</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">%1$s тарихы өшірілген кезде сақталған және бөліскен суреттер &lt;b&gt;өшірілмейді&lt;/b&gt;</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Тема</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Ашық түсті</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Күңгірт</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Батареяны үнемдеу режимі арқылы орнатылды</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Құрылғы темасына сүйену</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Бұл сайт HTTPS хаттамасын қолдамайды</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s көбірек қауіпсіздік үшін мүмкін болған кезде HTTPS байланысын қолдануға тырысады.
+ <a href="%2$s">Көбірек білу</a> <br/><br/>
+ Бұл баптауды Баптаулар > Жекелік және қауіпсіздік > Қауіпсіздік ішінде өзгертуге болады.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Байланыс қауіпсіз емес</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Бұл сервердің қатесі болуы мүмкін, немесе біреу сізге керек серверді басқасымен ауыстырғысы келеді. <br/><br/>
+ Осыған дейін осы серверге сәтті қосылған болсаңыз, осы қате уақытша болуы мүмкін.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Біреу бұл сайтты еліктеу талабын жасап жатқаны мүмкін, сондықтан жалғастыру қауіпті болуы мүмкін.</label>
+ <br><br>
+ <label>%1$s қолданбасы <b>%2$s</b> адресіне сенбейді, өйткені сертификат шығарушысы белгісіз, сертификат қолтаңбасы өздігінен қойылған, немесе сервер жарамды аралық сертификаттарды жібермеген.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Бетті жабу</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Ұстадық! Біз бұл сайттың сізге тыңшылық жасауын тоқтаттық. Біз блоктаған нәрселер туралы ақпарат алу үшін қалқанды шертіңіз.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Қалқымалы терезені жабу</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Сіз қорғалғансыз!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Бұл бастапқы баптаулар қатаң қорғаныс ұсынады. Бірақ нақты қажеттіліктеріңізді қанағаттандыру үшін баптауларды өзгерту оңай.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Тайдыру</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Барлығын қоқысқа тастау үшін осында шертіңіз — тарих, cookie файлдары, барлығы — және жаңа беттен жаңадан бастаңыз.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Жабу</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Іздеу виджеті</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Шолу тарихы тазартылды! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Жекелік шолу сеансын бастаңыз, сонда біз трекерлерді және басқа да жаман нәрселерді бұғаттаймыз.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Біз сізді жеке шолуға қалдырамыз, бірақ келесі жолы негізгі экрандағы %1$s виджетімен жылдамырақ бастауға болады.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Виджетті үй экранына қосу</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Виджетті үй экранына қосылды</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ko/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ko/strings.xml
new file mode 100644
index 0000000000..53916f0c37
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ko/strings.xml
@@ -0,0 +1,1117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">취소</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">확인</string>
+
+ <string name="action_save">저장</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">검색어 또는 주소 입력</string>
+
+ <string name="teaser">자동화된 개인 정보 보호 브라우저.\n쓰고, 지우고. 쓰고, 지우고.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">페이지 탐색 기록이 삭제되었습니다.</string>
+ <string name="feedback_erase2">방문 기록 삭제됨</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">탭의 탐색 기록이 삭제되었습니다.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s 검색</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">공유…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">사이트 이슈 보고</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s로/으로 열기</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">다른 브라우저로 열기</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">초기 화면에 추가하기</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">바로가기 추가</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">바로가기에서 제거</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">설정</string>
+ <string name="menu_about">정보</string>
+ <string name="menu_help">도움말</string>
+ <string name="menu_rights">사용자 권리</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">차단된 추적기</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">이 기능을 끄면 일부 사이트 문제가 해결 될 수 있습니다.</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">콘텐츠 차단</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">일부 사이트 문제 해결을 위해 끄기</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s에서 지원</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">다음으로 공유</string>
+
+ <string name="notification_erase_title_android_14">방문 기록을 삭제하시겠습니까?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">검색 기록을 안전하게 삭제하려면 이 알림을 탭하거나 지우세요.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">이 알림을 탭하거나 스와이프하면 인터넷 사용 기록이 안전하게 삭제됩니다.</string>
+
+ <string name="notification_erase_text">방문 기록 지우기</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">열기</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">지우고 열기</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">지우기</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">방문 기록 지우기</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">지우고 열기</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">%1$s 지우고 열기</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Focus에서 검색</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Klar에서 검색</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Focus Beta에서 검색</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Focus Nightly에서 검색</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s를 여러 기능으로 사용할 수 있습니다.</p>
+<p>개인 정보 보호 브라우저로 사용:
+ <ul>
+ <li>앱에서 바로 검색과 브라우징 하기</li>
+ <li>추적기 차단(설정을 변경해서 허용할 수 있음)</li>
+ <li>쿠키나 검색어, 브라우징 기록을 삭제</li>
+ </ul>
+</p>
+<p>%1$s는 Mozilla의 제품입니다. Mozilla의 사명은 건강하고 개방적인 인터넷을 조성하는 것입니다.<br/>
+<a href="%2$s">더 알아보기</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">개인정보 보호 및 보안</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">추적, 쿠키, 데이타 선택</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">기본 설정, 자동 완성</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s 정보, 도움말</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">향상된 추적 방지 기능</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">웹 콘텐츠</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">앱 전환</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">일반</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">기본 브라우저, 언어</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">데이터 수집 및 사용</string>
+
+ <string name="preference_category_search">검색</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">추천 검색어 켜기</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">주소창에 입력을 하면 %1$s가 이를 검색 엔진에 보냄</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">기본</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">검색 엔진</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">사용 중</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">사용 안 함</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL 자동 완성</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">자주 가는 사이트</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">%s 자동 완성 기능을 활성화해서 450개가 넘는 자주 찾는 URL을 주소창에서 사용해 보세요.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">내가 추가한 사이트</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">%s 자동 완성 기능을 활성화해서 자주 찾는 URL을 사용해 보세요.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">사이트 관리</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">사이트 관리</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ 사용자 정의 URL 추가</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">자동 완성 목록:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL 추가</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">사용자 정의 URL 추가</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">사용자 정의 URL 추가</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">자동 완성 링크 추가</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">쿠키와 사이트 데이타</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">데이타 선택</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">사용자 정의 URL 삭제</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">더 알아보기</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">사용자 정의 자동 완성 URL 추가하고 관리합니다.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">추가할 URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">URL 입력 또는 붙여넣기</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">예: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">예: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">새 사용자 정의 URL이 추가되었습니다.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">삭제</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">삭제</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">입력한 URL을 다시 확인하세요.</string>
+
+ <string name="preference_language">언어</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">시스템 기본값</string>
+
+ <string name="preference_category_privacy">개인 정보</string>
+ <string name="preference_privacy_block_ads">광고 추적기 차단</string>
+ <string name="preference_privacy_block_ads_summary">특정 광고의 경우, 광고를 클릭하지 않은 경우에도 방문 기록을 추적합니다</string>
+ <string name="preference_privacy_block_analytics">분석용 추적기 차단</string>
+ <string name="preference_privacy_block_analytics_summary">탭한 기록이나 스크롤과 같은 사용자 활동 내역을 수집하고 분석하는데 사용됩니다</string>
+ <string name="preference_privacy_block_social">소셜 추적기 차단</string>
+ <string name="preference_privacy_block_social_summary">사용자의 방문 기록을 추적하거나 공유 버튼과 같은 기능을 표시하기 위해 사이트에 내장되어 있습니다</string>
+ <string name="preference_privacy_block_content">기타 콘텐츠 추적기 차단</string>
+ <string name="preference_privacy_block_content_summary2">설정 시 웹 페이지가 제대로 표시되지 않을 수 있습니다</string>
+ <string name="preference_privacy_category_cookies">쿠키 차단</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">아니오</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">제 3자 추적기 쿠키 만 차단</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">제 3자 쿠키만 차단</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">교차 사이트 쿠키 차단</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">네, 물론이요.</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">잠금 헤제에 지문을 사용</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">바로가기를 추가했거나 웹사이트가 이미 %s에서 열려 있는 경우 지문을 사용하여 잠금을 해제합니다.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">스텔스</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">앱 전환 시 웹페이지를 감추고 스크린샷을 못찍게 합니다.</string>
+
+ <string name="preference_category_security">보안</string>
+
+ <string name="preference_category_performance">성능</string>
+ <string name="preference_performance_block_webfonts">웹 폰트 차단</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">아이콘 또는 이미지가 누락될 수 있음</string>
+
+ <string name="preference_performance_block_javascript">JavaScript 차단</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">페이지가 더 빠르게 로드될 수 있지만 에상치 못한 동작을 할 수도 있음</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s를 기본 브라우저로 설정</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">사용 정보 보내기</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">상세정보</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla는 %1$s 이용에 더 나은 서비스를 제공하고 향상시키는 데 오직 필요한 정보만을 수집합니다.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">개인 정보 보호 정책</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">라이선스 정보</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">사용한 라이브러리</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS 라이브러리</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s에 대한 정보</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">설치된 검색 엔진 모음</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">검색 엔진 선택</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">기본 검색 엔진 설정 초기화</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ 또 다른 검색 엔진 추가</string>
+ <string name="preference_search_remove_title">검색 엔진 삭제</string>
+ <string name="preference_search_remove">삭제</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">다른 검색 엔진 추가</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">선호하는 엔진 선택:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">검색 엔진 추가</string>
+
+ <string name="search_add_manually_name_hint">검색 엔진 이름</string>
+ <string name="search_add_manually_string">사용할 검색 문구</string>
+ <string name="search_add_manually_save">저장</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">예: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">새 검색 엔진이 추가되었습니다.</string>
+
+ <string name="search_add_error_empty_name">검색 엔진 이름을 입력하세요</string>
+ <string name="search_add_error_duplicate_name">설치된 검색 엔진이 이미 해당 이름을 사용하고 있습니다.</string>
+
+ <string name="search_add_error_empty_search">검색어를 입력하세요</string>
+
+ <string name="search_add_error_format">검색어가 예시 형식과 일치하는 지 확인하세요</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">입력 값 초기화</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">취소</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">탐색 기록 지우기</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">열린 탭: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">보안 연결</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">로딩 중</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">웹 사이트 불러옴</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">옵션 더보기</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">추가 옵션 버튼</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">앞으로 가기</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">웹 사이트 다시 불러오기</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">뒤로 가기</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">웹사이트 로딩 중지</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">이전 앱으로 돌아가기</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">차단된 추적기 수</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">추적기 차단</string>
+
+ <string name="your_rights">권리</string>
+
+ <string name="external_app_prompt_title">다른 앱으로 링크 열기</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">%2$s로 링크를 열면 %1$s를 떠나게 됩니다.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">링크를 열 수 있는 앱 찾기</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">이 링크를 열 수 있는 앱이 설치돼있지 않습니다. %1$s를 종료하고 %2$s를 열어 이 링크를 열 수 있는 앱을 찾을 수 있습니다.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">개인 정보 보호 브라우징을 종료할까요?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s 다운로드됨</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">열기</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">바로가기에 추가되었습니다!</string>
+
+ <string name="error_hostLookup_title">서버를 찾을 수 없습니다</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">닫기</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">%1$s에 오신 것을 환영합니다</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">빠르고. 사생활 보호되고. 방해 없는.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">시작하기</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s, 다른 브라우저와 다릅니다.</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">추가적인 개인 정보 보호를 위해 앱을 닫으면 방문 기록이 삭제됩니다.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">링크를 열 때마다 내 데이터를 보호하려면 %1$s를 기본 브라우저로 설정하세요.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">기본 브라우저로 설정하기</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">건너뛰기</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">개인정보 보호 강화하기</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">한 단계 높은 개인 정보 보호 브라우징을 즐겨보세요. 사이트의 경계를 넘어 개인정보를 추적하거나, 페이지 로딩 속도를 늦추는 원인이 되는 광고 및 기타 콘텐츠를 자동으로 차단해 줍니다.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">검색을 내 입맛대로</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">다른 방식으로 검색을 원하세요? 설정에서 다른 검색 엔진을 기본값으로 선택할 수 있습니다.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">초기 화면에 바로 가기 추가</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">%1$s에서는 자주 방문하는 사이트로 빠르게 이동할 수 있습니다. %1$s 메뉴에서 \&quot;초기 화면에 추가하기\&quot; 를 이용하세요.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">사생활 보호를 습관처럼</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">%1$s 를 기본 브라우저로 설정하시면, 다른 앱에서 웹페이지를 열어볼 때 언제든지 개인 정보 보호의 혜택을 누릴 수 있습니다.</string>
+
+ <string name="firstrun_close_button">알겠습니다!</string>
+ <string name="firstrun_skip_button">건너뛰기</string>
+ <string name="firstrun_next_button">다음</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">추가</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">네</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">취소</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">아니오</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">바로 가기가 향상된 추적 방지 기능이 해제된 상태에서 열림</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">개인 정보 보호 브라우징 세션</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">알림에서는 %1$s 세션을 탭 한번으로 삭제할 수 있습니다. 앱을 실행하거나 브라우저에 열려 있는 세션을 확인할 필요가 없습니다.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">방문 기록 삭제</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox 다운로드</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s는 Mozilla와 다른 공헌자들이 만들고 배포하는 무료 오픈 소스 소프트웨어 입니다.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s는 <a href="%2$s">Mozilla 공개 라이선스</a> 및 기타 다른 오픈 소스 라이선스 이용 약관에 따라 제공됩니다.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[귀하는 Mozilla와 Firefox, %1$s 명칭이나 로고를 포함한 Mozilla 재단 및 다른 서비스 제공자 소유의 지적재산권으로 보호받는 권리나 라이선스가 부여되는 것이 아님을 인지하셔야 합니다. 추가적인 정보는 <a href="%2$s">다음</a>을 참고하시기 바랍니다.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[%1$s의 소스 코드는 기타 다양한 무료 및 오픈 소스 <a href="%2$s">라이선스</a> 계약에 따라 제공됩니다.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s는 Disconnect, Inc에서 제공하는 차단목록에서 <a href="%2$s">GNU General Public License v3</a>를 바탕으로 자체적으로 별도로 관리하는 차단목록을 사용합니다. 자세한 내용은 <a href="%3$s">다음</a>에서 확인할 수 있습니다.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">사용자명</string>
+ <string name="gv_prompt_password_hint">비밀번호</string>
+ <string name="gv_prompt_clear">지우기</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">안전한 연결</string>
+ <string name="security_popup_insecure_connection">안전하지 않은 연결</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">인증: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">사이트 보안</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL이 이미 존재함</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">페이지내 검색</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">페이지내 검색</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%2$d 중 %1$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">다음 결과 찾기</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">이전 결과 찾기</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">페이지에서 찾기 해제</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">데스크톱 사이트 요청</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">데스크톱 사이트</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL 복사됨</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">개발자 도구</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">앱에서 링크 열기</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">고급</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">사이트 권한</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">쿠키 배너 줄이기</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">켜기</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">끄기</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">쿠키 배너 줄이기</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">가능한 쿠키 요청을 자동으로 거부하여 배너를 덜 노출시킵니다.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">쿠키 배너 줄이기</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">이 사이트에서 켜짐</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">현재 지원되지 않는 사이트</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">이 사이트에서 꺼짐</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">쿠키 배너 줄이기</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">이 사이트에서 꺼짐</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">이 사이트에서 켜짐</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">%1$s에서 쿠키 배너 줄이기를 켜시겠습니까?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">%1$s에서 쿠키 배너 줄이기를 끄시겠습니까?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s가 이 사이트의 쿠키를 지우고 페이지를 새로고침할 것입니다. 모든 쿠키를 삭제하면 로그아웃되거나 장바구니 등이 비워질 수 있습니다.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s는 쿠키 요청을 자동으로 거부할 수 있습니다.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">이 사이트는 현재 Cookie Banner Reduction이 지원되지 않습니다. 저희 팀이 이 웹사이트를 검토하고 향후 지원을 추가하도록 요청하시겠습니까?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">취소</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">지원 요청</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">사이트 지원 요청이 제출되었습니다.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">사이트 지원 요청이 제출되었습니다.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s는 성가신 쿠키 배너를 닫기 위해 쿠키 요청을 거부하려고 시도합니다.\n\n%2$s에서 쿠키 배너 설정을 관리하세요.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">설정</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">자동 재생</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">허용하려면:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Android 설정으로 이동</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. <b>권한</b>을 탭]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">설정으로 이동</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. <b>%1$s</b>를 켜기로 전환]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">카메라</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">마이크</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">위치</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">알림</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM 제어 콘텐츠</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">허용 요청</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">차단됨</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">허용됨</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Android에 의해 차단됨</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">오디오 및 비디오 허용</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">오디오만 차단</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">추천</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">오디오 및 비디오 차단</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">연구</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox가 때때로 연구를 설치하고 실행할 수 있습니다.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">자세히 알아보기</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">변경 사항을 적용하기 위해 애플리케이션이 종료됩니다</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">삭제</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">활성화</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">완료</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">USB/Wi-Fi 원격 디버깅</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">잠금 해제</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">지문을 사용하여 확인</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">지문을 사용하여 현재 앱 세션을 계속할 수 있습니다.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">새 세션에서 링크 열기</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">지문 아이콘</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">지문이 인식되지 않았습니다. 다시 시도해 주세요.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">손가락을 너무 빨리 움직였습니다. 다시 시도해 주세요.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">추천 검색을 사용할까요?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">추천 검색을 사용하려면 %1$s가 주소창에 입력한 내용을 검색 엔진에 보내야 합니다.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">아니오</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">네</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">일부 검색 엔진은 추천을 표시할 수 없습니다.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">닫기</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">사이트가 잘 작동하지 않나요?\n 추적 방지를 꺼보세요</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[자주 사용하는 사이트를 탭 한번으로 여세요%1$s 메뉴 > 홈 화면에 추가]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">모든 링크를 %1$s에서 엽니다\n %1$s를 기본 브라우저로 설정</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">자주 사용하는 사이트 URL을 자동 완성합니다\n 주소창에서 URL을 길게 눌러 보세요</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">링크를 새 탭에서 엽니다\n 페이지의 링크를 길게 눌러 보세요</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">시작 화면에서 도움말 끄기</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">새 탭 열림</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">전환</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">전체 화면 모드로 들어가기</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">새탭의 링크로 즉시 전환</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">잠재적으로 위험한 사이트 및 사기성 사이트 차단</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">사기성 사이트나 공격 사이트, 악성코드 사이트, 원치 않는 소프트웨어 사이트를 차단합니다.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">HTTPS 전용 모드</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">보안 강화를 위해 HTTPS 암호화 프로토콜을 사용하여 사이트에 자동으로 연결을 시도합니다.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">예외</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">이 사이트에 대한 콘텐츠 차단을 비활성화 했습니다.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">삭제</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">모든 웹사이트 삭제</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">쿠키 차단</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">쿠키를 차단하시겠습니까?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">오류난 탭</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">죄송합니다. 이 탭에 문제가 있습니다.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">사생활 보호 브라우저여서 저장하지 않았기 때문에 이 탭을 복원할 수 없습니다.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">탭 닫기</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Mozilla에 충돌 보고서 보내기</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">%s 이후에 차단된 추적기</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">콘텐츠</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">광고</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">소셜</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">분석</string>
+
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">향상된 추적 방지 기능</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">이 사이트에서 보호 꺼짐</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">이 사이트에서 보호 켜짐</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">연결이 안전함</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">연결이 안전하지 않음</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">차단할 추적기 및 스크립트</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">뒤로 가기</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">제거</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">이름 변경</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">이름 변경</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">바로 가기 이름</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">%1$s 기록을 지울 때 저장 및 공유된 이미지는 &lt;b&gt;삭제되지 않습니다&lt;/b&gt;.</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">테마</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">밝은</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">어두운</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">절전 모드로 설정</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">기기 테마 따르기</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">이 사이트는 HTTPS를 지원하지 않습니다.</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s는 보안 강화를 위해 가능할 때마다 HTTPS 연결을 사용하려고 합니다.
+ <a href="%2$s">자세히 알아보기</a> <br/><br/>
+ 설정 > 개인 정보 보호 &amp; 보안 > 보안에서 이 설정을 바꿀 수 있습니다.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">안전하지 않은 연결</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ 이는 서버 구성에 문제가 있거나 서버를 사칭하려는 누군가일 수 있습니다. <br/><br/>
+ 과거에 이 서버에 성공적으로 연결했다면 일시적인 오류일 수 있습니다.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>누군가가 사이트를 사칭하려고 할 수 있으며 계속 진행하는 것은 위험할 수 있습니다.</label>
+ <br><br>
+ <label>%1$s는 인증서 발급자를 알 수 없거나 인증서가 자체 서명되었거나 서버가 올바른 중간 인증서를 전송하지 않기 때문에 <b>%2$s</b>를 신뢰하지 않습니다.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">탭 닫기</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">잡았다! %@가 사용자를 감시하는 이 사이트를 중지했습니다. 차단된 항목에 대한 정보를 보려면 방패를 탭하세요.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">팝업 닫기</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">보호되고 있습니다!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">이러한 기본 설정은 강력한 보호 기능을 제공합니다. 하지만 특정 요구 사항에 맞게 설정을 쉽게 수정할 수도 있습니다.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">닫기</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">여기를 클릭하여 방문 기록, 쿠키를 포함한 모든 것을 삭제하고 새 탭을 시작하세요.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">닫기</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">위젯 검색하기</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">웹 사이트 방문 기록이 삭제되었습니다! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">비공개 브라우저 세션을 시작해서 추적기 등 위험한 항목들을 차단하세요.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">개인 정보 보호 브라우저를 쓸 수 있지만, 홈 화면의 %1$s 위젯을 사용하면 다음에 브라우저를 더욱 빠르게 시작하실 수 있습니다.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">홈 화면에 위젯 추가하기</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">홈 화면에 위젯이 추가됨</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-kw/strings.xml b/mobile/android/focus-android/app/src/main/res/values-kw/strings.xml
new file mode 100644
index 0000000000..7bfcb59c18
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-kw/strings.xml
@@ -0,0 +1,1097 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Hedhi</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Gwitha</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Hwilas po entra trigva</string>
+
+ <string name="teaser">Peuri privedh awtomatek.\nPeuri. Dilea. Daswul.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Dha istori peuri re beu diles.</string>
+ <string name="feedback_erase2">Istori peuri diles</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Diles re beu istori peuri an tab.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Hwilas %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Kevrenna…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Derivas Kudyn an Wiasva</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Ygeri yn %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Ygeri yn…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Keworra dhe\'n skrin tre</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Keworra dhe skochfordhow</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Dilea a skochfordhow</string>
+
+ <string name="menu_settings">Dewisyow</string>
+ <string name="menu_about">A-dro</string>
+ <string name="menu_help">Gweres</string>
+ <string name="menu_rights">Dha Wiryow</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Helerghellow lettys</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Difudha hemma a yll martesen ewna nebes kudynnow an wiasva</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Lettya Dalgh</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Difudha dhe ewna nebes gwiasvaow</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Nerthys gans %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Kevrenna dre</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Dilea istori peuri</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Ygeri</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Dilea hag Ygeri</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Dilea</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Dilea istori peuri</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Dilea &amp; ygeri</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Dilea hag ygeri %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Hwilas yn Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Hwilas yn Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Hwilas yn Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Hwilas yn Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>Gans %1$s yth esos\'ta ow kul maystri.</p>
+<p>Gwra hy usya avel peurell brivedh:
+ <ul>
+ <li>Hwilas ha peuri a-berth y\'n dowlen</li>
+ <li>Lettya helerghellow (po nowedhi settyansow dhe amyttya helerghellow)</li>
+ <li>Dilea pastiow, keffrys hag istori hwilas ha peuri</li>
+ </ul>
+</p>
+<p>Askorrys gans Mozilla yw %1$s. Agan amkan yw maga kesrosweyth yagh hag ygor.<br/>
+<a href="%2$s">Dyski moy</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privetter &amp; Diogeledh</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Helerghi, pastiow, dewisyow kedhlow</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Settya skwir, eskowlwul</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">A-dro dhe %1$s, gweres</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Difresyans Gwellhes Rag Helerghi</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Dalgh an Wi</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Skwychya Appys</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Ollgemmyn</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Peurell, yeth skwir</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Kuntel Kedhlow &amp; Devnydh</string>
+
+ <string name="preference_category_search">Hwilas</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Kavos profyansow hwilas</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s a dhanvon an pyth a skrifydh y\'n barr trigva dhe\'th jynn hwilas</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Skwir</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Jynn hwilas</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Byw</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Marow</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Eskowlwul DAK</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Rag Gwiasvaow drudh</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Gweythresa dhe wul dhe %s kollenwel yn awtomatek moy es 450 URL gerys da y\'n barr trigva.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Rag gwiasvaow a Geworrydh</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Gweythresa dhe wul dhe %s eskollenwel dha DAKow drudh.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Menystra gwiasvaow</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Menystra gwiasvaow</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Keworra URL a-vusur</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Agas rol eskollenwel:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Keworra DAK</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Keworra DAK a-vusur</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Keworra DAK a-vusur</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Keworra kevren dhe eskowlwul</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Pastiow ha Kedhlow Gwiva</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Dewisyow Kedhlow</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Dilea DAKow a-vusur</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Dyski moy</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Keworra ha menystra DAKow eskollenwel a-vusur.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">DAK dhe geworra</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Glusa po gorra DAK</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Ensampel: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Ensampel: ensampel.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">DAK a-vusur nowydh keworrys.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Dilea</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Dilea</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Dascheck an DAK a wruss\'ta gorra..</string>
+
+ <string name="preference_language">Yeth</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Skwir an kevreyth</string>
+
+ <string name="preference_category_privacy">Privetter</string>
+ <string name="preference_privacy_block_ads">Lettya helerghellow argemynnow</string>
+ <string name="preference_privacy_block_ads_summary">Nebes argemynnow a helergh vysytyansow gwiasvaow, hwath mar ny glyckydh an argemynnow</string>
+ <string name="preference_privacy_block_analytics">Lettya helerghellow dielvenna</string>
+ <string name="preference_privacy_block_analytics_summary">Usys dhe guntel, dielvenna, ha musura gwriansow kepar ha tappya ha rolya</string>
+ <string name="preference_privacy_block_social">Lettya helerghellow sosyel</string>
+ <string name="preference_privacy_block_social_summary">Goworrys yn gwiasvaow dhe helerghi dha vysytyansow ha displetya nasweyth kepar ha botonys kevrenna </string>
+ <string name="preference_privacy_block_content">Lettya helerghellow dalgh erel</string>
+ <string name="preference_privacy_block_content_summary2">Gallosegi a yll lettya nebes folennow rag omdhegi yn hwaytyadow</string>
+ <string name="preference_privacy_category_cookies">Lettya pastiow</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Na, meur ras</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Lettya pastiow helerghi 3a-rannbarth yn unnik</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Pastiow 3a-rannbarth yn unnik</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Lettya pastiow treuswiva</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ya, mar pleg</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Usya ol bys dhe dhialhwedha app</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Dialhwedha gans ol bys mar kwruss\'ta keworra Skochfordhow po pan vo gwiasva ygor seulabrys yn %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Danngel</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Kudha gwiasvaow hag ow skwychya appys ha lettya tenna skrinskeusennow.</string>
+
+ <string name="preference_category_security">Diogeledh</string>
+
+ <string name="preference_category_performance">Performans</string>
+ <string name="preference_performance_block_webfonts">Lettya pryntolow an wi</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Y hyll sewya dhe avenyow po skeusennow a fyll</string>
+
+ <string name="preference_performance_block_javascript">Lettya JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Folennow a yll karga yn uskissa, mes ynwedh omdhegi yn anwaytyadow</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Gul dhe %1$s bos peurell skwir</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Danvon kedhlow devnydh</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Dyski moy</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla a veder orth kuntel an pyth yw res dhyn hepken dhe brovia ha gwellhe %1$s rag peub.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Deklaryans Privetter</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Kedhlow leshyans</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Kodguntellow a usyn</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Kodguntellow OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">A-dro dhe %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Jynnow-hwilas les</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Dewis jynn hwilas</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Daskavos jynnow hwilas skwir</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Keworra jynn hwilas aral</string>
+ <string name="preference_search_remove_title">Dilea jynnow hwilas</string>
+ <string name="preference_search_remove">Dilea</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Keworra jynn hwilas</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Dewis dha jynn drudh:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Keworra jynn hwilas</string>
+
+ <string name="search_add_manually_name_hint">Hanow an jynn hwilas</string>
+ <string name="search_add_manually_string">Tokyn hwilas dhe usya</string>
+ <string name="search_add_manually_save">Gwitha</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Ensampel: ensampel.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Jynn hwilas nowydh keworrys.</string>
+
+ <string name="search_add_error_empty_name">Gorra hanow an jynn hwilas</string>
+ <string name="search_add_error_duplicate_name">Yma jynn hwilas les owth usya an hanow na seulabrys.</string>
+
+ <string name="search_add_error_empty_search">Gorra tokyn hwilas</string>
+
+ <string name="search_add_error_format">Check bos an tokyn hwilas ow tesedha orth furvas Ensampel</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Dilea ynworrans</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Dyllo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Dilea istori peuri</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Tabys ygor: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Junyans diogel</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Ow karga</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Gwiasva gergys</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Dewisyow moy</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Boton dewisyow moy</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Gwaya war-rag</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Daskarga wiasva</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Gwaya war-gamm</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Hedhi karga wiasva</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Dehweles dhe app kyns</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Niver a helerghellow lettys</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Lettya helerghellow</string>
+
+ <string name="your_rights">Dha Wiryow</string>
+
+ <string name="external_app_prompt_title">Ygeri kevren yn app aral</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Ty a yll diberth a %1$s dhe ygeri an gevren ma yn %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Kavos app a yll ygeri an gevren ma</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Nyns eus app vyth yn dha dhevis a yll ygeri an gevren ma. Ty a yll diberth a %1$s dhe hwilas app a yll y wul yn %2$s.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Kwytya peuri privedh?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s gorfennys</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Ygeri</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Keworrys dhe skochfordhow!</string>
+
+ <string name="error_hostLookup_title">Ny veu servyer kevys</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Degea</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Dynnargh dhe %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Uskis. Privedh. Distennansow vyth.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Deus ha dalleth</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">Nyns yw %1$s kepar ha peurellow erel</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Ni a wra kartha dha istori hag ow tegea an app a-barth privetter.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Gwra dhe %1$s bos dha beurell skwir dhe dhifres dha dhata gans pub kevren ygerys.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Settya dhe beurell skwir</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Hepkor</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Kennerth dha brivetter</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Herdhya peuri privedh dres an kemmyn. Lettya argemynnow ha dalgh aral a yll dha holya dres gwivaow ha poshe prys karga folennow.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Dha hwilas, dha fordh</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Hwilas neppyth aral? Dewis jynn hwilas skwir aral yn Dewisyow.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Keworra skochfordhow dhe\'th pennskrin</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Dehweles dhe\'th re drudh yn %1$s yn uskis. Dewis \&quot;Keworra dhe Bennskrin\&quot; a\'n rol %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Gwra privetter dhe us</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Settya %1$s dhe beurell skwir dhe gavos an prowyow a beuri privedh pan ygerowgh gwiasvaow a appys erel.</string>
+
+ <string name="firstrun_close_button">DL, my a wel!</string>
+ <string name="firstrun_skip_button">Hepkor</string>
+ <string name="firstrun_next_button">Nessa</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Keworra</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">YA</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Hedhi</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NA</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Skochfordh a wra ygeri gans Difresyans Gwellhes rag Helerghi disweythresys</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Esedhek peuri privedh</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Gwarnyansow a\'th as dhe dhilea dha esedhek %1$s dre dapp. Nyns yw res dhis ygeri an app po gweles pyth usi ow resek y\'th peurell.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Dilea istori peuri</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Iskarga Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s yw medhelweyth rydh ha fenten ygor gwrys gans Mozilla ha kevriysi erel.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[Y hwrer %1$s kavadow dhis der ambosow an <a href="%2$s">Leshyans Poblek Mozilla</a> ha leshyansow fenten-ygor erel.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Nyns yw grontys dhis gwiryow po leshyansow vytholl dhe werthnosow an Fondyans Mozilla po py rannbarth pynag, ynna an henwyn po avenyow Mozilla, Firefox, po %1$s. Y hyllir kavos kedhlow ynwedhek <a href="%2$s">omma</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Kod pennfenten a %1$s yw kavadow yn-dann lies <a href="%2$s">leshyans</a> rydh ha fenten-ygor.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s a wra devnydh ynwedh a lies rol-lettya proviys gans Disconnect, Inc. avel oberennow dihaval hag anserghek yn-dann an <a href="%2$s">Leshyans Poblek Ollgemmyn GNU v3</a> ha kavadow <a href="%3$s">omma</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Hanow devnydhyer</string>
+ <string name="gv_prompt_password_hint">Ger tremena</string>
+ <string name="gv_prompt_clear">Dilea</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Junyans Diogel</string>
+ <string name="security_popup_insecure_connection">Junyans Andhiogel</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Gwirhes gans: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Diogeledh an wiasva</string>
+ <string name="preference_autocomplete_duplicate_url_error">Yma DAK seulabrys</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Hwilas y\'n Folen</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Kavos y\'n folen</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d a somm %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Kavos nessa sewyans</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Kavos kynsa sewyans</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Dyllo kavos y\'n folen</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Pysi a wiva dhesken</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Gwiva dhesken</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL dasskrifys</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Toulys displegyer</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Ygeri kevrennow yn appys</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avonsys</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Kumyasow gwiva</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Leheans Baneryow Pastiow</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Byw</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Marow</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Leheans Baneryow Pastiow</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Gweles le a vaneryow dre dhenagha govynnow pastiow yn awtomatek pan vo possybyl.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Leheans Baneryow Pastiow</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">BYW y\'n wiasva ma</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Nyns yw an wiasva skodhys y\'n eur ma</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">MAROW y\'n wiasva ma</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Leheans Baneryow Pastiow</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">MAROW y\'n wiasva ma</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">BYW y\'n wiasva ma</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Enowi Leheans Baneryow Pastiow rag %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Difudha Leheans Baneryow Pastow rag %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s a wra kartha pastiow an wiasva ma ha daskarga an folen. Possybyl yw kartha pastiow dh\'agas digelmi po gwakhe karigellow prenassa.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s a yll assaya denagha govynnow pastiow yn awtomatek.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Nyns yw skodhys an wiasva ma gans Leheans Baneryow Pastiow y\'n eur ma. A vynnsowgh ysi agan para a dhasweles an wiasva ma ha keworra skodhyans y\'n termyn a dheu?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Hedhi</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Pysi a skodhyans</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Govyn skodhya gwiasva derivys.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Govyn skodhya gwiasva derivys.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s a assay denagha govynnow pastiow dhe woheles baneryow pastiow anius.\n\nRestra dewisyow baneryow pastiow yn %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">dewisyow</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Esseni</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Dh\'y amyttya:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Ke dhe Dewisyow Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tapp war <b>Kumyasow</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Ke dhe Dewisyow</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Hig <b>%1$s</b> dhe BYW]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Korrgowsell</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Tyller</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Gwarnyans</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Dalgh maystrys gans DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Pysi a amyttya</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Lettys</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Amyttys</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Lettys gans Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Amyttya sonadow ha gwydhyow</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Lettya sonadow hepken</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Profys</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Lettya sonadow ha gwydhyow</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studhyansow</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Possybyl yw y hwra lea ha gweythresa Firefox studhyansow a dermyn dhe dermyn.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Dyski moy</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">An gweythyn a wra degea dhe weytha chanjyow</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Dilea</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Gweythresek</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Kowlwrys</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Dispryvya a-bell dre USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Dialhwedha</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Afydhya Dre\'th Vysol</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Ty a yll usya dha vysol dhe besya dha esedhek app a-lemmyn.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Ygeri Kevren yn Esedhek Nowydh</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Aven bysol</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Ny veu aswonnys an bysol. Assay arta.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Bys gwayys re uskis. Assay arta.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Diskwedhes profyansow hwilas?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Dhe gavos profyansow %1$s a wra danvon an pyth a skrifydh y\'n barr trigva dhe\'th jynn hwilas.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Na</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Ya</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Ny yll nebes jynnow hwilas diskwedhes profyansow hwilas.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Dyllo</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Gwiva owth omdhegi yn anwaytyadow?\n Assay disweythresa Difresyans Helerghi</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Kyrgh ragos hedhas unn-tapp dhe wivaow a usydh yn fenowgh%1$s Rol > Keworra dhe Bennskrin]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Ygeri pub kevren yn %1$s\n Sett %1$s avel peurell skwir</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Eskowlwul DAK rag gwivaow a usydh yn fenowgh %1$s Hirwask py DAK pynag y\'n barr trigva</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Ygeri kevren yn tab nowydh\nHirwask py kevren bynag yn folen</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Difudha hyntys y\'n skrin dalleth</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Tab nowydh ygerys</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Skwychya</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Gweythresa modh skrin leun</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Skwychya dhe gevren yn tab nowydh a-dhesempis</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Lettya gwivaow a yll bos peryllus ha tollus</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Lettya gwivaow gans derivas a vos tollus po omsettyans, gwivaow drogweyth, ha gwivaow a vedhelweyth anvodhek.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Modh HTTPS-Hepken</string>
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Yth assay yn awtomatek omjunya dhe wivaow der an arskwir argelans HTTPS rag diogeledh ynkressys.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Nammow</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Ty a dhisweythresas lettya dalgh y\'n gwiasvaow ma.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Dilea</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Dilea pub gwiasva</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Lettya Pastiow</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">A vynn\'ta lettya pastiow?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Tab Diskerys</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Diharesow. Yma kudyn genen ow karga an tab ma.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Avel peurell brivedh, ny withyn na gallos daskavos an tab ma.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Degea Tab</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Danvon derivas diskara dhe Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Helerghellow lettys a-dhia %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Dalgh</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Argemynna</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Sosyel</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Re Dielvennel</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Difresyans Gwellhes rag Helerghi</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Difresyans yw MAROW y\'n wiva ma</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Difresyans yw BYW y\'n wiva ma</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Junyans yw diogel</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Nyns yw junyans diogel</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Helerghellow ha Skrifedhow dhe Lettya</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Mos war-gamm</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Dilea</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Dashenwel</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Dashenwel</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Hanow skochfordh</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">&lt;b&gt;Ny vydh diles&lt;/b&gt; imajys gwithys ha kevrennys pan dhilei istori %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Thema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Golow</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Tewl</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Settys gans Gwither Batri</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Sewya thema devis</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Ny skoodh an wiasva ma HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s a assay usya junyans HTTPS peskweyth may fo possybyl a-barth gwell diogeledh.
+ <a href="%2$s">Dyski moy</a><br/><br/>
+ Chanjya an dewis ma yn Dewisyow >Privetter &amp; Diogeledh > Diogeledh.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Junyans andhiogel</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Martesen yth yw problem gans kefurvyans an servyer, po bos nebonan owth assaya omwul an servyer. <br/><br/>
+ Mar kwruss\'ta junya dhe\'n servyer ma yn sewen seulabrys, martesen yth yw an gwall anparghus.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Martesen yma nebonan owth assaya omwul an wiasva ha peryllus via pesya.</label>
+ <br><br>
+ <label>Ny wra %1$s trestya dhe <b>%2$s</b> rag bos anwodhvos y dyller y destskrif, bos omsinys an testskrif, po nag usi an servyer ow tanvon an testskrifow kresel ewn.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Degea tab</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">\'Mons genen! Ni a lettyas an wiasva ma rag dha aspia. Klyck an skoos p\'eurbynag dhe weles an pyth eson ow lettya.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Degea lammlen</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Difresys os!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">An dewisyow skwir ma a brof difresyans krev. Mes es yw godreylya an dewisyow dh\'aga dhesedha orth dha edhommow komparek.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Dyllo</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tapp omma dh\'y dewlel oll y\'n atal — istori, pastiow, puptra — ha dalleth gans tabb yr nowydh.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Degea</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Hwilas widget</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Istori peuri diles! 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Dalleth dha esedhek peuri privedh hag y fydhyn ow lettya helerghellow ha taklow drog erel y\'n fordh.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Ni a\'th as dhe\'th peuri privedh, mes ty a yll dalleth uskissa nessa tro gans widget %1$s y\'th skrin tre.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Keworra widget dhe skrin tre</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget keworrys dhe skrin tre</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-lo/strings.xml b/mobile/android/focus-android/app/src/main/res/values-lo/strings.xml
new file mode 100644
index 0000000000..787b72b4da
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-lo/strings.xml
@@ -0,0 +1,1121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">ຍົກເລີກ</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ຕົກລົງ</string>
+
+ <string name="action_save">ບັນທຶກ</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">ຄົ້ນຫາ ຫລື ປ້ອນທີ່ຢູ່ໃສ່ນີ້</string>
+
+ <string name="teaser">ການທ່ອງເວັບສ່ວນຕົວແບບອັດຕະໂນມັດ.\nທ່ອງເວັບ ແລະ ລົບລ້າງປະຫວັດການໃຊ້ງານອອກ.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">ປະຫວັດການທ່ອງເວັບຂອງທ່ານໄດ້ຖືກລຶບອອກແລ້ວ.</string>
+ <string name="feedback_erase2">ລຶບລ້າງປະຫວັດການທ່ອງເວັບແລ້ວ</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">ແທັບຂອງປະຫວັດການທ່ອງເວັບໄດ້ຖືກລຶບອອກແລ້ວ.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">ຄົ້ນຫາສຳລັບ %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">ແບ່ງປັນ…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">ລາຍງານບັນຫາໄຊ</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">ເປີດໃນ %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">ເປີດໃນ…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">ເພີ່ມເຂົ້າໄປຫນ້າຈໍຫລັກ</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">ເພີ່ມທາງລັດ</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">ລຶບອອກຈາກທາງລັດ</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">ການຕັ້ງຄ່າ</string>
+ <string name="menu_about">ກ່ຽວກັບ</string>
+ <string name="menu_help">ວິທີໃຊ້</string>
+ <string name="menu_rights">ສິດທິຂອງທ່ານ</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">ຕົວຕິດຕາມໄດ້ຖືກບັອກ</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">ການປິດສິງນີ້ອາດຈະຊ່ວຍແກ້ໄຂບັນຫາບາງຢ່າງຂອງເວັບໄຊທໄດ້</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">ການບັອກເນື້ອຫາ</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">ປິດເພື່ອແກ້ໄຂບາງບັນຫາຂອງເວັບໄຊທ</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">ຂັບເຄື່ອນໂດຍ %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">ແບ່ງປັນຜ່ານທາງ</string>
+
+ <string name="notification_erase_title_android_14">ລຶບປະຫວັດການທ່ອງເວັບ</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">ແຕະ ຫຼື ລຶບການແຈ້ງເຕືອນນີ້ເພື່ອລຶບປະຫວັດການທ່ອງເວັບຂອງທ່ານຢ່າງປອດໄພ.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">ແຕະ ຫຼື ປັດການແຈ້ງເຕືອນນີ້ເພື່ອລຶບປະຫວັດການທ່ອງເວັບຂອງທ່ານຢ່າງປອດໄພ.</string>
+
+ <string name="notification_erase_text">ລຶບປະຫວັດການທ່ອງເວັບ</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">ເປີດ</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">ລຶບ ແລະ ເປີດ</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">ລຶບ</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">ລຶບປະຫວັດການທ່ອງເວັບ</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">ລຶບແລ້ວເປີດ</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">ລຶບ ແລະ ເປີດ %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">ຊອກຫາຢູ່ໃນຈຸດສຸມ</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">ຊອກຫາຢູ່ໃນ Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">ຊອກຫາໃນ Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">ຊອກຫາໃນ Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s ເຮັດໃຫ້ທ່ານສາມາດຄວບຄູມໄດ້.</p>
+<p>ໃຊ້ເປັນແບບບຣາວເຊີສ່ວນຕົວ:
+ <ul>
+ <li>ຄົ້ນຫາ ແລະ ທ່ອງເວັບພາຍໃນແອັບ</li>
+ <li>ບັອກຕົວຕິດຕາມ (ຫລື ອັບເດດການຕັ້ງຄ່າເພື່ອອະນຸຍາດຕົວຕິດຕາມ)</li>
+ <li>ລຶບຄຸກກີ້ລວມທັງປະຫວັດການຄົ້ນຫາ ແລະ ການທ່ອງເວັບອອກ</li>
+ </ul>
+</p>
+<p>%1$s ໄດ້ຮັບການສ້າງຂື້ນມາຈາກ Mozilla. ພາລະກິດຂອງພວກເຮົາແມ່ນສົ່ງເສີມການນຳໃຊ້ອິນເຕີເນັດທີ່ສົມບູນ ແລະ ເປີດກ້ວາງ<br/>
+<a href="%2$s">ຮຽນຮູ້ເພີ່ມເຕີ່ມ</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">ຄວາມເປັນສ່ວນຕົວ ແລະ ຄວາມປອດໄພ</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">ການຕິດຕາມ, ຄຸກກີ້, ທາງເລືອກຂໍ້ມູນ</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">ຕັ້ງຄ່າເລີ່ມຕົ້ນ. ການຕື່ມຄຳອັດຕະໂນມັດ</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">ກ່ຽວກັບ %1$s, ຊ່ວຍເຫຼືອ</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">ເພີ່ມການປ້ອງກັນການຕິດຕາມ</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">ເນື້ອຫາເວັບ</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">ສະລັບແອັບ</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">ທົ່ວໄປ</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">ບຣາວເຊີຫລັກ, ພາສາ</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">ການເກັບຮວບຮວມ ແລະ ໃຊ້ຂໍ້ມູນ</string>
+
+ <string name="preference_category_search">ຊອກຫາ</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">ຮັບຂໍສະເໜີແນະການຄົ້ນຫາ</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s ຈະສົ່ງສິ່ງທີ່ທ່ານພີມໃນແຖບທີ່ຢູ່ໄປຍັງເຄື່ອງມືຄົ້ນຫາຂອງທ່ານ</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">ຄ່າພື້ນຖານ</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">ເຄື່ອງມືການຄົ້ນຫາ</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">ເປີດ</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">ປິດ</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">ການເຕີມ URL ແບບອັດຕະໂນມັດ</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">ສໍາລັບເວັບໄຊທຍອດນິຍົມ</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">ເປີດໃຊ້ງານເພື່ອໃຫ້ມີການເຕິມອັດຕະໂນມັດຂອງ %s ຜ່ານ 450 URLs ຍອດນິຍົມໃນແຖບທີ່ຢູ່</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">ສຳລັບເວັບໄຊທທີ່ທ່ານເພີ່ມ</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">ເປີດໃຊ້ເພື່ອໃຫ້ %s ຕື່ມຂໍ້ມູນ URLs ທີ່ທ່ານມັກໂດຍອັດຕະໂນມັດ.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">ຄຸ້ມຄອງເວັບໄຊທ</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">ຄຸ້ມຄອງເວັບໄຊທ</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ ເພີ່ມ URL ທີ່ກຳນົດເອງ</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">ລາຍຊື່ການຕື່ມຂໍ້ມູນອັດຕະໂນມັດຂອງທ່ານ:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">ເພີ່ມ URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">ເພີ່ມ URL ທີ່ກຳນົດເອງ</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">ເພີ່ມ URL ທີ່ກຳນົດເອງ</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">ເພີ່ມລີ້ງເຂົ້າໄປ autocomplete</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">ຄຸກກີ້ ແລະ ຂໍ້ມູນໄຊ</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">ທາງເລືອກຂໍ້ມູນ</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">ເອົາ URLs ທີ່ກຳນົດເອງອອກ</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">ຮຽນຮູ້ເພີ່ມເຕີມ</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">ເພີ່ມ ແລະ ຈັດການ URLs ທີ່ເຕີມແບບອັດຕະໂນມັດທີ່ກຳໜົດເອງ.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL ທີ່ຈະເພີ່ມ</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">ວາງ ຫລື ປ້ອນ URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">ຕົວຢ່າງ: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">ຕົວຢ່າງ: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">ເພີ່ມ URL ທີ່ກຳນົດເອງໃຫມ່ແລ້ວ.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">ລຶບ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">ລຶບ</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">ກວດສອບ URL ທີ່ທ່ານໄດ້ປ້ອນເຂົ້າໄປ.</string>
+
+ <string name="preference_language">ພາສາ</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">ຄ່າເລີ່ມຕົ້ນຂອງລະບົບ</string>
+
+ <string name="preference_category_privacy">ຄວາມເປັນສ່ວນຕົວ</string>
+ <string name="preference_privacy_block_ads">ບັອກຕົວຕິດຕາມຂອງການໂຄສະນາ</string>
+ <string name="preference_privacy_block_ads_summary">ມີໂຄສະນາບາງໂຕສາມາດຕິດຕາມການເຂົ້າໄປເວັບຕ່າງໆ ເຖິງແມ່ນວ່າທ່ານຈະບໍ່ໄດ້ຄິກໃສ່ໂຄສະນານັ້ນເລີຍ</string>
+ <string name="preference_privacy_block_analytics">ບັອກຕົວຕິດຕາມຂອງການວິເຄາະ</string>
+ <string name="preference_privacy_block_analytics_summary">ໃຊ້ເພື່ອເກັບກຳຮວບຮ່ວມ, ວິເຄາະ ແລະ ວັດແທກກິດຈະກຳເຊັນວ່າການແຕະ ແລະ ການເລື່ອນ</string>
+ <string name="preference_privacy_block_social">ບັອກຕົວຕິດຕາມຂອງສືສັງຄົມອອນໄລນ໌</string>
+ <string name="preference_privacy_block_social_summary">ຝັງໄວ້ຢູ່ໃນເວັບໄຊທ໌ເພື່ອຕິດຕາມເບິງການເຂົ້າມາເບິງຂອງທ່ານ ແລະ ເພື່ອສະແດງຟັງຊັນເຊັ່ນວ່າປຸ່ມແບ່ງປັນ</string>
+ <string name="preference_privacy_block_content">ບັອກຕົວຕິດຕາມຂອງເນື້ອຫາຕ່າງໆ</string>
+ <string name="preference_privacy_block_content_summary2">ການເປີດໃຊ້ງານອາດຈະເຮັດໃຫ້ບາງຫນ້າເຮັດວຽກຜຶດປົກກະຕິ</string>
+ <string name="preference_privacy_category_cookies">ລະງັບຄຸກກີ້</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">ບໍ່, ຂອບໃຈ</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">ບັອກຕົວຕິດຕາມຄຸກກີ້ຈາກບຸກຄົນທີ່ສາມເທົ່ານັ້ນ</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">ລະງັບຄຸກກີ້ພາຍນອກເທົ່ານັ້ນ</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">ບລັອກຄຸກກີຂ້າມເວັບໄຊ</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">ໂດຍ, ແມ່ນແລ້ວ</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">ນຳໃຊ້ລາຍນິ້ວມືເພື່ອປົດລ໋ອກແອັບ</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">ປົດລັອກໂດຍໃຊ້ລາຍນິ້ວມືຖ້າທ່ານໄດ້ເພີ່ມທາງລັດ ຫຼືເມື່ອເວັບໄຊທ໌ເປີດຢູ່ໃນ %s ແລ້ວ.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">ອຳພາງຕົວຕົນ</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">ເຊື່ອງຫນ້າເວັບເມື່ອສະລັບແອັບ ແລະ ລະງັບການຖ່າຍຮູບໜ້າຈໍ.</string>
+
+ <string name="preference_category_security">ຄວາມປອດໄພ</string>
+
+ <string name="preference_category_performance">ປະສິດທິພາບ</string>
+ <string name="preference_performance_block_webfonts">ບັອກຕົວອັກສອນເວັບ</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">ອາດຈະສົ່ງຜົນເຮັດໃຫ້ໄອຄອນ ຫລື ຮູບພາບຂາດຫາຍໄປ</string>
+
+ <string name="preference_performance_block_javascript">ລະງັບ JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">ໜ້າອາດໂຫຼດໄວຂື້ນ ແຕ່ອາດເຮັດວຽກຢ່າງບໍ່ຄາດຄິດ</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">ຕັ້ງ %1$s ໃຫ້ເປັນບຣາວເຊີຫລັກ</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">ສົ່ງຂໍ້ມູນການນຳໃຊ້</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">ຮຽນຮູ້ເພີ່ມເຕີມ</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla ພະຍາຍາມທີ່ຈະເກັບຮວບຮ່ວມສະເພາະສິ່ງທີ່ຈຳເປັນຕໍ່ການປັບປູງ %1$s ສຳລັບທຸກໆຄົນ.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">ນະໂຍບາຍຄວາມເປັນສ່ວນຕົວ</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">ຂໍ້ມູນກ່ຽວກັບລາຍເຊັນ</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">ໄລແບຣລີທີ່ພວກເຮົານຳໃຊ້</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | ໄລບຣາລີ OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">ກ່ຽວກັບ %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">ໄດ້ທຳການຕິດຕັ້ງເຄື່ອງມືການຄົ້ນຫາແລ້ວ</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">ເລືອກເຄື່ອງມືການຄົ້ນຫາ</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">ກູ້ຄືນເຄື່ອງມືພື້ນຖານຂອງການຄົ້ນຫາ</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ ເພີ່ມລະບົບການຊອກຫາຕົວອື່ນ</string>
+ <string name="preference_search_remove_title">ລຶບເຄື່ອງມືການຄົ້ນຫາ</string>
+ <string name="preference_search_remove">ລຶບ</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">+ ເພີ່ມລະບົບການຊອກຫາຕົວອື່ນ</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">ເລືອກລະບົບທີ່ທ່ານຕ້ອງການ:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">ເພີ່ມເຄື່ອງມືການຄົ້ນຫາ</string>
+
+ <string name="search_add_manually_name_hint">ຊື່ເຄື່ອງມືການຄົ້ນຫາ</string>
+ <string name="search_add_manually_string">ສະຕຣິງການຊອກຫາທີ່ຈະໃຊ້</string>
+ <string name="search_add_manually_save">ບັນທຶກ</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">ຕົວຢ່າງ: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">ໄດ້ເພີ່ມເຄືອງມີການຊອກຫາຕົວໃຫມ່ແລ້ວ</string>
+
+ <string name="search_add_error_empty_name">ປ້ອນຊື່ເຄື່ອງມືການຊອກຫາ</string>
+ <string name="search_add_error_duplicate_name">ເຄື່ອງມືຄົ້ນຫາທີ່ຕິດຕັ້ງໄວ້ກຳລັງໃຊ້ຊື່ນັ້ນຢູ່ແລ້ວ.</string>
+
+ <string name="search_add_error_empty_search">ປ້ອນສະຕຣິງການຊອກຫາ</string>
+
+ <string name="search_add_error_format">ກວດສອບວ່າສະຕິງການຄົ້ນຫາກົງກັບຮູບແບບຕົວຢ່າງ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">ລົບລ້າງຂໍ້ມູນທີ່ປ້ອນເຂົ້າ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">ຍົກເລີກ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">ລຶບປະຫວັດການທ່ອງເວັບ</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">ແທັບທີ່ເປີດ: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">ການເຊື່ອມຕໍ່ທີ່ປອດໄພ</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">ກຳລັງໂຫລດ</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">ໂຫລດເວັບໄຊທ໌ນີ້ແລ້ວ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">ຕົວເລືອກເພີ່ມເຕີມ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">ປຸ່ມຕົວເລືອກເພີ່ມເຕີມ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">ນຳທາງໄປທາງຫນ້າ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">ໂຫລດເວັບໄຊທ໌ຄືນໃຫມ່</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">ນຳທາງຍ້ອນກັບ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">ຢຸດການໂຫລດເວັບໄຊທ໌</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">ກັບໄປຫາແອັບກ່ອນຫນ້ານີ້</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">ຈຳນວນຕົວຕິດຕາມທີ່ຖືກລະງັບ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">ບັອກຕົວຕິດຕາມ</string>
+
+ <string name="your_rights">ສິດທິຂອງທ່ານ</string>
+
+ <string name="external_app_prompt_title">ເປີດລີ້ງນີ້ໃນແອັບອື່ນ</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">ທ່ານສາມາດອອກຈາກ %1$s ເພື່ອເປີດລີ້ງນີ້ໃນ %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">ຊອກຫາແອັບທີ່ສາມາດເປີດລີ້ງນີ້</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">ບໍ່ມີແອັບໃດເລີຍໃນອຸປະກອນຂອງທ່ານທີ່ຈະສາມາດເປີດລີ້ງນີ້ໄດ້. ທ່ານສາມາດອອກຈາກ %1$s ເພື່ອຄົ້ນຫາ %2$s ແອັບທີ່ສາມາດເປີດລີ້ງນີ້ໄດ້.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">ຕ້ອງການອອກຈາກການທອງເວັບແບບສ່ວນຕົວບໍ່?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">ສຳເລັດແລ້ວ %1$s</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">ເປີດ</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">ເພີ່ມໃສ່ທາງລັດແລ້ວ!</string>
+
+ <string name="error_hostLookup_title">ບໍ່ພົບເຊີເວີ</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">ປິດ</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">ຍິນດີຕ້ອນຮັບສູ່ %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">ໄວ. ສ່ວນຕົວ. ບໍ່ມີສິ່ງລົບກວນ.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">ເລີ່ມຕົ້ນໃຊ້ງານ</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s ບໍ່ຄືກັບຕົວທ່ອງເວັບອື່ນໆ</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">ພວກເຮົາລຶບລ້າງປະຫວັດຂອງທ່ານເມື່ອທ່ານປິດແອັບເພື່ອຄວາມເປັນສ່ວນຕົວເພີ່ມເຕີມ.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">ເຮັດໃຫ້ %1$s ເປັນຄ່າເລີ່ມຕົ້ນຂອງທ່ານເພື່ອປົກປ້ອງຂໍ້ມູນຂອງທ່ານດ້ວຍທຸກລິ້ງທີ່ທ່ານເປີດ.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">ຕັ້ງເປັນຕົວທ່ອງເວັບເລີ່ມຕົ້ນ</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">ຂ້າມ</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">ເພີ່ມຄວາມເປັນສ່ວນໂຕຂອງທ່ານ</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">ນຳການທ່ອງເວັບແບບສ່ວນຕົວໄປສູ້ລະດັບຖັດໄປ. ປິດກັ້ນໂຄສະນາແລະເນື້ອຫາອື່ນໆ ທີ່ສາມາດຕິດຕາມທ່ານລະຫວ່າງເວັບໄຊທ໌ແລະຫລຸດເວລາໃນການໂຫລດຫນ້າ,</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">ການຄົ້ນຫາໃນແບບຂອງທ່ານເອງ</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">ກຳລັງຊອກຫາບາງສິ່ງບາງຢ່າງທີ່ແຕກຕ່າງບໍ່? ເລືອກເອົາຕົວຄົ້ນຫາພື້ນຖານອື່ນໆໃນການຕັ້ງຄ່າ.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">ເພີ່ມທາງລັດໃນໜ້າຈໍຫຼັກຂອງທ່ານ</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">ກັບໄປທີ່ໄຊທີ່ທ່ານມັກໃນ %1$s ໄດ້ຢ່າງວ່ອງໄວ. ພຽງເລືອກ \&quot;ເພີ່ມໄປໜ້າຈໍຫຼັກ\&quot; ຈາກ %1$s ເມນູ.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">ສ້າງນິໄສຄວາມເປັນສ່ວນຕົວ</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">ຕັ້ງ %1$s ເປັນບຣາວເຊີຫລັກຂອງທ່ານ ແລະ ຮັບປະໂຫຍດຈາກການທ່ອງເວັບແບບສ່ວນຕົວເມື່ອທ່ານເປີດຫນ້າເວັບຈາກແອັບອື່ນໆ.</string>
+
+ <string name="firstrun_close_button">ຕົກລົງ, ເຂົ້າໃຈແລ້ວ!</string>
+ <string name="firstrun_skip_button">ຂ້າມໄປ</string>
+ <string name="firstrun_next_button">ຕໍ່ໄປ</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">ເພີ່ມ</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ແມ່ນແລ້ວ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">ຍົກເລີກ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">ບໍ່</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">ທາງລັດຈະເປີດພ້ອມປິດການໃຊ້ງານການປ້ອງກັນການຕິດຕາມ</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">&quot;ເຊສຊັນການທ່ອງເວັບແບບສ່ວນຕົວ &quot;</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">ການແຈ້ງເຕືອນຊ່ວຍໃຫ້ທ່ານລ້າງວາລະ %1$s ຂອງທ່ານດ້ວຍການແຕະ. ທ່ານບໍ່ຈຳເປັນຕ້ອງເປີດແອັບ ຫຼື ເບິ່ງສິ່ງທີ່ກຳລັງເຮັດວຽກໃນບາວເຊີຂອງທ່ານ.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">ລຶບປະຫວັດການທ່ອງເວັບ</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">ດາວໂຫລດ Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s ເປັນຊອບແວເສລີ ແລະ ເປີດຕົ້ນສະບັບທີ່ສ້າງຂຶ້ນໂດຍ Mozilla ແລະ ຜູ່ມີສ່ວນຮ່ວມອື່ນໆ.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s ໃຫ້ທ່ານໃຊ້ພາຍໃຕ້ເງື່ອນໄຂຂອງ <a href="%2$s"> Mozilla Public License</a> ແລະ ສັນຍາອະນຸຍາດໂອເພ່ນຊອດອື່ນໆ.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[ທ່ານບໍ່ໄດ້ຮັບສິດ ຫຼື ສັນຍາອະນຸຍາດໃດໆ ໃນເຄື່ອງໝາຍການຄ້າຂອງມູລະນີທິ Mozilla ຫຼື ບຸກຄົນໃດໆ ລວມທັງຊື່ ຫຼື ໂລໂກ້ Mozilla, Firefox ຫຼື %1$s. ຂໍ້ມູນເພີ່ມຕື່ມສາມາດພົບໄດ້ທີ່<a href="%2$s">ນີ້</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[ໂຄດຕົ້ນສະບັບເພີມຕື່ມສຳລັບ %1$s ໃຊ້ໄດ້ພາຍໃຕ້<a href="%2$s">ສັນຍາອະນຸຍາດ</a>ເສລີ ແລະ ໂອເພ່ນຊອດອື່ນໆ.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s ຍັງໃຊ້ລາຍການລະງັບທີ່ໃຫ້ບໍລິການໂດຍ Disconect, Inc. ເຊີ່ງເປັນງານແຍກ ແລະ ເປັນອິດສະຫຼະພາຍໃຕ້<a href="%2$s">GNU General Public License v3</a>, ແລະ ໃຊ້ໄດ້<a href="%3$s">ນີ້</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">ຊື່ຜູ້ໃຊ້</string>
+ <string name="gv_prompt_password_hint">ລະຫັດຜ່ານ</string>
+ <string name="gv_prompt_clear">ລ້າງ</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">ການເຊື່ອມຕໍ່ທີປອດໄພ</string>
+ <string name="security_popup_insecure_connection">ການເຊື່ອມຕໍ່ທີບໍ່ປອດໄພ</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">ກວດສອບໂດຍ: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">ຄວາມປອດໄພຂອງເວັບໄຊທ໌</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL ນີ້ມີຢູ່ແລ້ວ</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">ຄົ້ນຫາໃນເພຈ</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">ຄົ້ນຫາໃນເພຈ</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d ຈາກ %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">ຄົ້ນຫາຜົນລັບຕໍ່ໄປ</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">ຄົ້ນຫາຜົນລັບກ່ອນໜ້ານີ້</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">ຍົກເລີກການຄົ້ນຫາໃນໜ້າ</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">ຂໍໄຊສຳລັບເດສທອບ</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">ໂຫມດເດັກສທັອບ</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL ສຳເນົາແລ້ວ</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">ເຄື່ອງມືນັກພັດທະນາ</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">ເປີດລີ້ງໃນແອັບ</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">ຂັ້ນສູງ</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">ສິດທິໃນເວັບໄຊທ</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">ການຫຼຸດປ້າຍໂຄສະນາຄຸກກີ</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">ເປີດ</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">ປິດ</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">ການຫຼຸດປ້າຍໂຄສະນາຄຸກກີ</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">ເບິ່ງປ້າຍໂຄສະນາຫນ້ອຍລົງໂດຍການປະຕິເສດຄໍາຮ້ອງຂໍຄຸກກີໂດຍອັດຕະໂນມັດ, ເມື່ອເປັນໄປໄດ້.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">ການຫຼຸດປ້າຍໂຄສະນາຄຸກກີ</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ເປີດສໍາລັບເວັບໄຊທ໌ນີ້</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">ຕອນນີ້ບໍ່ຮອງຮັບເວັບໄຊ</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">ປິດສຳລັບເວັບໄຊນີ້</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">ການຫຼຸດປ້າຍໂຄສະນາຄຸກກີ</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">ປິດສຳລັບເວັບໄຊນີ້</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ເປີດສໍາລັບເວັບໄຊທ໌ນີ້</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">ເປີດໃຊ້ການຫຼຸດປ້າຍໂຄສະນາຄຸກກີສຳລັບ %1$s ບໍ?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">ປິດການຫຼຸດປ້າຍໂຄສະນາຄຸກກີສຳລັບ %1$s ບໍ?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s ຈະລຶບລ້າງຄຸກກີ້ຂອງເວັບໄຊນີ້ ແລະໂຫຼດໜ້ານີ້ຄືນໃໝ່. ການລຶບລ້າງຄຸກກີ້ທັງໝົດອາດເຮັດໃຫ້ເຈົ້າອອກຈາກລະບົບ ຫຼືກະຕ່າຊື້ເຄື່ອງຫວ່າງເປົ່າ.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s ສາມາດພະຍາຍາມປະຕິເສດການຮ້ອງຂໍຄຸກກີໂດຍອັດຕະໂນມັດ.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">ຕອນນີ້ເວັບໄຊນີ້ບໍ່ຮອງຮັບການຫຼຸດປ້າຍໂຄສະນາຄຸກກີ. ທ່ານຕ້ອງການຂໍໃຫ້ທີມງານຂອງພວກເຮົາທົບທວນຄືນເວັບໄຊທ໌ນີ້ແລະເພີ່ມການສະຫນັບສະຫນູນໃນອະນາຄົດບໍ?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">ຍົກເລີກ</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">ຮ້ອງຂໍການຊ່ວຍເຫຼືອ</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">ຮ້ອງຂໍໃຫ້ສະຫນັບສະຫນູນເວັບໄຊທີ່ສົ່ງ.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">ຮ້ອງຂໍໃຫ້ສະຫນັບສະຫນູນເວັບໄຊທີ່ສົ່ງ.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s ພະຍາຍາມປະຕິເສດການຮ້ອງຂໍຄຸກກີເພື່ອປິດປ້າຍໂຄສະນາຄຸກກີທີ່ໜ້າລຳຄານ.\n\nຈັດການການຕັ້ງຄ່າປ້າຍໂຄສະນາຄຸກກີໃນ %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">ການຕັ້ງຄ່າ</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">ຫຼິ້ນອັດຕະໂນມັດ</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">ເພື່ອຕ້ອງການອະນຸຍາດ:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. ໄປທີ່ການຕັ້ງຄ່າ Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. ແຕະທີ່ <b>ສິດ</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">ໄປທີ່ການຕັ້ງຄ່າ</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. ສະລັບ <b>%1$s</b> ເປັນເປີດ]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">ກ້ອງຖ່າຍຮູບ</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">ໄມໂຄຣໂຟນ</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">ຕຳແຫນ່ງທີ່ຕັ້ງ</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">ການແຈ້ງເຕືອນ</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">ເນື້ອຫາທີ່ຄວບຄຸມໂດຍ DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">ຖາມເພື່ອອະນຸຍາດ</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">ບັອກ</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">ອະນຸຍາດ</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">ຖືກບລັອກໂດຍ Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">ອະນຸຍາດສຽງ ແລະ ວິດີໂອ</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">ບັອກສຽງຢ່າງດ່ຽວ</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">ແນະນຳ</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">ບັອກສຽງ ແລະ ວິດີໂອ</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">ການສຶກສາ</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox ອາດຈະຕິດຕັ້ງແລະດໍາເນີນການສຶກສາເປັນບາງເວລາ.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">ຮຽນຮູ້ເພີ່ມເຕີມ</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">ແອັບພລິເຄຊັນຈະປິດເພື່ອນຳໃຊ້ການປ່ຽນແປງ</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">ລຶບ</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">ໃຊ້ງານຢູ່</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">ສຳເລັດແລ້ວ</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">ການດີບັກໄລຍະໄກຜ່ານ USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">ປົດລັອກ</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">ຢືນຢັນການໃຊ້ລາຍນິ້ວມືຂອງທ່ານ</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">ທ່ານສາມາດໃຊ້ລາຍນິ້ວມືຂອງທ່ານເພື່ອສືບຕໍ່ເຊດຊັນແອັບປັດຈຸບັນຂອງທ່ານໄດ້.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">ເປີດລິ້ງໃນເຊດຊັນໃໝ່</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">ໄອຄອນລາຍນິ້ວມື</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">ບໍ່ຮູ້ຈັກລາຍນິ້ວມືນີ້. ລອງໃໝ່.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">ຍັບນິ້ວໄວເກີນໄປ. ລອງອີກຄັ້ງ.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">ສະແດງຄຳແນະນຳໃນການຄົ້ນຫາບໍ?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> ເພື່ອຮັບເອົາຄຳແນະນຳ, %1$s ຕ້ອງການສົ່ງສິ່ງທີ່ທ່ານພິມໃນແຖບທີ່ຢູ່ໄປຫາເຄື່ອງມືຊອກຫາ.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">ບໍ່</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">ຕົກລົງ</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">ເຄື່ອງມືຄົ້ນຫາບາງໂຕບໍ່ສາມາດສະແດງຂໍ້ສະເໜີແນະໄດ້.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">ຍົກເລີກ</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">ໄຊເຮັດວຽກຢ່າງບໍ່ຄາດຄິດ?\n ລອງປິດການປົກປ້ອງການຕິດຕາມ</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA["ຮັບການເຂົ້າເຖິງດ້ວຍການແຕະຄັ້ງດຽວໄປຍັງໄຊທີ່ທ່ານໃຊ້ຫຼາຍທີ່ສຸດ %1$s ເມນູ > ເພີ່ມໄປສູ່ໜ້າຈໍຫຼັກ "]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">ເປີດທຸກລີ້ງໃນ%1$s\n ຕັ້ງ %1$s ເປັນບ່າວເຊີເລີ່ມຕົ້ນ</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">ເຕີມ URLs ໂດຍອັດຕະໂນມັດສຳລັບເວັບໄຊທີ່ທ່ານໃຊ້ຫຼາຍທີ່ສຸດ\n ແຕະຄ້າງທີ່ URL ໃດໆ ໃນແທບທີ່ຢູ່</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">ເປີດລີ້ງໃນແທບໃໝ່\n ແຕະຄ້າງທີ່ລີ້ງໃດໆໃນໜ້າ</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">ປິດເຄັດລັບໃນໜ້າຈໍເລີ່ມຕົ້ນ</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">ເປີດແທັບໃຫມ່ແລ້ວ</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">ສະລັບ</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">ເຂົ້າສູ່ໂມດເຕັມຫນ້າຈໍ</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">ສະລັບໄປຫາແທັບໃຫມ່ທັນທີ</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">ບັອກເວັບໄຊທທີ່ເປັນອັນຕະລາຍ ແລະ ຕົ້ມຕຸນ</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">ບັອກເວັບໄຊທຕົ້ມຕຸນ ແລະ ຈູ່ໂຈມ, ເວັບໄຊທີ່ມີມອລແວ ແລະ ເວັບໄຊທທີ່ມີຊັອບແວທີ່ບໍ່ຕ້ອງການຕາມທີ່ໄດ້ຮັບການລາຍງານ.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">ໂໝດ HTTPS ເທົ່ານັ້ນ</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">ພະຍາຍາມເຊື່ອມຕໍ່ຫາເວັບໄຊໂດຍອັດຕະໂນມັດໂດຍໃຊ້ໂປຣໂຕຄໍການເຂົ້າລະຫັດ HTTPS ເພື່ອຄວາມປອດໄພທີ່ເພີ່ມຂຶ້ນ.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">ຍົກເວັ້ນ</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">ທ່ານໄດ້ປິດຕົວບັອກເນື້ອຫາສຳລັບເວັບໄຊທເຫລົ່ານີ້.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">ລຶບ</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">ລຶບເວັບໄຊທທັງຫມົດ</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">ບລັອກຄຸກກີ້</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">ທ່ານຕ້ອງການບລັອກຄຸກກີບໍ?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">ແທັບຂັດຂ້ອງ</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">ຂໍອະໄພ ພວກເຮົາກຳລັງບັນຫາກັບແທັບນີ້</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">ໃນເວັບບຣາວເຊີແບບສ່ວນຕົວ ພວກເຮົາບໍ່ໄດ້ບັນທຶກ ແລະ ບໍ່ສາມາດກູ້ຄືນແທັບນີ້ໄດ້.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">ປິດແທັບ</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">ສົ່ງລາຍງານການຂັດຂ້ອງໄປຫາ Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">ບລັອກຕົວຕິດຕາມຕັ້ງແຕ່ %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">ເນື້ອຫາ</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">ການໂຄສະນາ</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">ສັງຄົມ</string>
+
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">ການວິເຄາະ</string>
+
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">ເພີ່ມການປ້ອງກັນການຕິດຕາມ</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">ການປົກປ້ອງຖືກປິດໄວ້ສຳລັບເວັບໄຊນີ້</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">ການປົກປ້ອງແມ່ນເປີດຢູ່ສຳລັບເວັບໄຊນີ້</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">ການເຊື່ອມຕໍ່ແມ່ນປອດໄພ</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">ການເຊື່ອມຕໍ່ບໍ່ປອດໄພ</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts"> ຕົວຕິດຕາມແລະສະຄິບຈະຖືກບ໋ອກ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">ກັບຄືນ</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">ລຶບ</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">ປ່ຽນ​ຊື່</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">ປ່ຽນ​ຊື່</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">ຊື່ທາງລັດ</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">&lt;b&gt;ຈະບໍ່ລຶບ&lt;/b&gt;ພາບທີບັນທືກໄວ້ ແລະ ແບ່ງປັນເມືອທ່ານລ້າງປະຫວັດຂອງ %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">ຊຸດປັບແຕ່ງ</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">ແຈ້ງ</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">ມືດ</string>
+
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">ຕັ້ງໂດຍຕົວປະຢັດແບດເຕີລີ່</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">ຕາມຊຸດຕົກແຕ່ງອຸປະກອນ</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">ເວັບໄຊນີ້ບໍ່ຮອງຮັບ HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s ພະຍາຍາມໃຊ້ການເຊື່ອມຕໍ່ HTTPS ທຸກຄັ້ງທີ່ເປັນໄປໄດ້ເພື່ອຄວາມປອດໄພຫຼາຍຂຶ້ນ.
+ <a href="%2$s">ສຶກສາເພີ່ມເຕີມ</a> <br/><br/>
+ ປ່ຽນການຕັ້ງຄ່ານີ້ໃນການຕັ້ງຄ່າ > ຄວາມເປັນສ່ວນຕົວ & amp; ຄວາມປອດໄພ > ຄວາມປອດໄພ.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">ການເຊື່ອມຕໍ່ບໍ່ປອດໄພ</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ສິງນີ້ອາດຈະເປັນບັນຫາທີ່ເກີດມາຈາກການຄອນຟິກເຊີເວີຜິດ ຫລື ມັນອາດຈະເກີດມາຈາກການທີ່ມີບາງຄົນພະຍາຍາມປອມແປງເຊີເວີ.<br/><br/>
+ຖ້າຫາກວ່າທ່ານເຄີຍເຊື່ອມຕໍ່ກັບເຊີເວີນີ້ໄດ້ສຳເລັດມາກ່ອນ ຂໍ້ຜິດພາດນີ້ອາດຈະເກີດຂື້ນພຽງຊົ່ວຄາວ ແລະ ທ່ານສາມາດລອງເຂົ້າໃຫມ່ໃນພາຍຫລັງ.
+]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>ມີບາງຄົນອາດຈະກຳລັງປອມແປງເວັບໄຊທ ແລະ ທ່ານບໍ່ຄວນຈະເຂົ້າໄປ.</label>
+ <br><br>
+ <label>ເວັບໄຊທຈະຢັ້ງຢືນຕົວຕົນຜ່ານທາງໃບຮັບຮອງ. %1$s ບໍ່ຫນ້າເຊື່ອຖື <b>%2$s</b> ເພາະວ່າຜູ້ອອກໃບຮັບຮອງຂອງພວກເຂົາແມ່ນບໍເປັນທີ່ຮູ້ຈັກ, ໃບຮັບຮອງແມ່ນສ້າງຂື້ນມາເອງ ຫລື ເຊີເວີບໍ່ໄດ້ສົ່ງໃບຮັບຮອງທີ່ຖືກຕ້ອງມາໃຫ້.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">ປິດແທັບ</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">ໄດ້​ແລ້ວ! ພວກ​ເຮົາ​ໄດ້​ຢຸດ​ເຊົາ​ເວັບ​ໄຊ​ນີ້​ຈາກການລັກຕິດຕາມກ່ຽວ​ກັບ​ທ່ານ. ແຕະໃສ່ໄສ້ໄດ້ທຸກເວລາເພື່ອເບິ່ງສິ່ງທີ່ພວກເຮົາຂັດຂວາງ.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">ປິດປັອບອັບ</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">ເຈົ້າໄດ້ຮັບການປົກປ້ອງ!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">ການຕັ້ງຄ່າເລີ່ມຕົ້ນເຫຼົ່ານີ້ໃຫ້ການປົກປ້ອງທີ່ເຂັ້ມແຂງ. ແຕ່ມັນງ່າຍທີ່ຈະປັບການຕັ້ງຄ່າເພື່ອຕອບສະໜອງຄວາມຕ້ອງການສະເພາະຂອງເຈົ້າ.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">ປິດ</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">ແຕະບ່ອນນີ້ເພື່ອຖິ້ມມັນທັງໝົດ — ປະຫວັດ, ຄຸກກີ້, ທຸກຢ່າງ — ແລະເລີ່ມໃໝ່ໃນແຖບໃໝ່.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">ປິດ</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">ຊອກຫາ widget</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">ລຶບລ້າງປະຫວັດການທ່ອງເວັບແລ້ວ! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">ເລີ່ມເຊດຊັນການທ່ອງເວັບສ່ວນຕົວຂອງເຈົ້າ, ແລະພວກເຮົາຈະບລັອກຕົວຕິດຕາມ ແລະສິ່ງບໍ່ດີອື່ນໆຕາມທີ່ເຈົ້າໄປ.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">ພວກເຮົາຈະປ່ອຍໃຫ້ທ່ານຊອກຫາແບບສ່ວນຕົວຂອງທ່ານ, ແຕ່ເລີ່ມຕົ້ນໄວຂຶ້ນໃນຄັ້ງຕໍ່ໄປດ້ວຍວິດເຈັດ %1$s ໃນໜ້າຈໍຫຼັກຂອງທ່ານ.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">ເພີ່ມ widget ໃສ່ຫນ້າຈໍຫຼັກ</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">ເພີ່ມວິດເຈັດໃສ່ໜ້າຈໍຫຼັກແລ້ວ</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-lt/strings.xml b/mobile/android/focus-android/app/src/main/res/values-lt/strings.xml
new file mode 100644
index 0000000000..3a35412da4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-lt/strings.xml
@@ -0,0 +1,841 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Atsisakyti</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Gerai</string>
+
+ <string name="action_save">Įrašyti</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Įveskite adresą arba paieškos žodžius</string>
+
+ <string name="teaser">Automatinis privatusis naršymas.\nNaršykite. Išvalykite. Kartokite.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Jūsų naršymo žurnalas išvalytas.</string>
+ <string name="feedback_erase2">Naršymo žurnalas išvalytas</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Kortelės naršymo žurnalas išvalytas.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Ieškoti „%1$s“</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Dalintis…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Pranešti apie svetainės problemą</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Atverti naudojant „%1$s“</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Atverti naudojant…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Įtraukti į pradžios ekraną</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Pridėti prie leistukų</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Pašalinti iš leistukų</string>
+
+ <string name="menu_settings">Nustatymai</string>
+ <string name="menu_about">Apie</string>
+ <string name="menu_help">Žinynas</string>
+ <string name="menu_rights">Jūsų teisės</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Užblokuoti sekimo elementai</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Išjungus gali būti išspręstos kai kurios svetainių problemos</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Turinio blokavimas</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Išjungus sutvarkysite kai kurias svetaines</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Įgalino „%1$s“</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Dalintis naudojant</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Valyti naršymo žurnalą</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Atverti</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Išvalyti ir atverti</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Valyti</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Valyti naršymo žurnalą</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Išvalyti ir atverti</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Išvalyti ir atverti „%1$s“</string>
+
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>„%1$s“ suteikia jums kontrolę.</p>
+<p>Naudokite ją kaip privačią naršyklę:
+ <ul>
+ <li>Ieškokite ir naršykite pačioje programoje</li>
+ <li>Blokuokite stebėjimo elementus (arba pakeiskite nustatymus, jeigu norite juos leisti)</li>
+ <li>Išvalykite, norėdami pašalinti slapukus, paieškos ir naršymo žurnalus</li>
+ </ul>
+</p>
+<p>„%1$s“ yra „Mozillos“ kūrinys. Mūsų misija yra skatinti sveiką, atvirą internetą.<br/>
+<a href="%2$s">Sužinoti daugiau</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privatumas ir saugumas</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Stebėjimas, slapukai, duomenų siuntimas</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Parinkite numatytąją, automatinio užbaigimo</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Apie „%1$s“, žinynas</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Išplėsta apsauga nuo stebėjimo</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Saityno turinys</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Programų perjungimas</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Bendrieji</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Numatytoji naršyklė, kalba</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Duomenų rinkimas ir naudojimas</string>
+
+ <string name="preference_category_search">Paieška</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Gauti paieškos žodžių siūlymus</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">„%1$s“ perduos jūsų ieškyklei tai, ką rašote adreso lauke</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Numatytoji</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Ieškyklė</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Taip</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Ne</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Automatinis URL adresų užbaigimas</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Lankomiausioms svetainėms</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Įjungus, „%s“ automatiškai adreso lauke užbaigs virš 450 populiarių URL adresų.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Svetainėms, kurias pridedate</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Įjungus, „%s“ automatiškai užbaigs jūsų mėgiamus adresus.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Tvarkyti svetaines</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Tvarkyti svetaines</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Pridėti savą adresą</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Jūsų automatinio užbaigimo sąrašas:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Pridėti URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Savo adreso pridėjimas</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Pridėti savą adresą</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Įtraukti saitą į automatinį užbaigimą</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Slapukai ir svetainių duomenys</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Duomenų siuntimas</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Savų adresų šalinimas</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Sužinoti daugiau</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Pridėkite ir valdykite savo automatinio užbaigimo adresus.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Pridedamas adresas</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Įdėkite arba įveskite URL adresą</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Pavyzdys: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Pavyzdys: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Pridėtas naujas adresas.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Pašalinti</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Pašalinti</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Patikrinkite įvestą URL adresą.</string>
+
+ <string name="preference_language">Kalba</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Sistemos numatytoji</string>
+
+ <string name="preference_category_privacy">Privatumas</string>
+ <string name="preference_privacy_block_ads">Blokuoti reklaminius stebėjimo elementus</string>
+ <string name="preference_privacy_block_ads_summary">Kai kurios reklamos stebi svetainių aplankymus, net jeigu ir nespustelite jų.</string>
+ <string name="preference_privacy_block_analytics">Blokuoti analizės stebėjimo elementus</string>
+ <string name="preference_privacy_block_analytics_summary">Naudojama rinkti, analizuoti ir matuoti tokias veiklas, kaip bakstelėjimai ir slinkimas</string>
+ <string name="preference_privacy_block_social">Blokuoti socialinius stebėjimo elementus</string>
+ <string name="preference_privacy_block_social_summary">Įterpiama svetainėse, norint stebėti jūsų apsilankymus ir rodyti tokį funkcionalumą, kaip dalinimosi mygtukai</string>
+ <string name="preference_privacy_block_content">Blokuoti kitus turinio stebėjimo elementus</string>
+ <string name="preference_privacy_block_content_summary2">Įjungus gali sutrikti kai kurių tinklalapių veikimas</string>
+ <string name="preference_privacy_category_cookies">Blokuoti slapukus</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ačiū, ne</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Blokuoti tik trečiųjų šalių stebėjimo slapukus</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Blokuoti tik trečiųjų šalių slapukus</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blokuoti tarp svetainių veikiančius slapukus</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Tikrai taip</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Atrakinti programą piršto atspaudu</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Slaptumas</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Slėpti tinklalapius pereinant tarp programų bei neleisti daryti ekrano nuotraukų.</string>
+
+ <string name="preference_category_security">Saugumas</string>
+
+ <string name="preference_category_performance">Našumas</string>
+ <string name="preference_performance_block_webfonts">Blokuoti saityno šriftus</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Galite nematyti kai kurių piktogramų arba paveikslų</string>
+
+ <string name="preference_performance_block_javascript">Blokuoti „JavaScript“</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Tinklalapiai bus įkeliami greičiau, tačiau gali sutrikti jų veikimas</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Paskirti „%1$s“ numatytąja naršykle</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Siųsti naudojimo duomenis</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Sužinoti daugiau</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">„Mozilla“ siekia rinkti tik tai, ko reikia norint pagerinti „%1$s“ visiems.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Privatumo pranešimas</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Apie „%1$s“</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Įdiegtos ieškyklės</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Pasirinkite ieškyklę</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Atkurti numatytąsias ieškykles</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Pridėti kitą ieškyklę</string>
+ <string name="preference_search_remove_title">Pašalinti ieškykles</string>
+ <string name="preference_search_remove">Pašalinti</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Pridėti kitą ieškyklę</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Pasirinkite norimą ieškyklę:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Pridėti ieškyklę</string>
+
+ <string name="search_add_manually_name_hint">Ieškyklės pavadinimas</string>
+ <string name="search_add_manually_string">Paieškos eilutės struktūra</string>
+ <string name="search_add_manually_save">Įrašyti</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Pavyzdys: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Pridėta nauja ieškyklė.</string>
+
+ <string name="search_add_error_empty_name">Įveskite ieškyklės pavadinimą</string>
+ <string name="search_add_error_duplicate_name">Jau yra įdiegta ieškyklė su tokiu pavadinimu.</string>
+
+ <string name="search_add_error_empty_search">Įveskite paieškos eilutę</string>
+
+ <string name="search_add_error_format">Pasitikrinkite, ar paieškos eilutė atitinka formatą iš pavyzdžio</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Išvalyti įvestą tekstą</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Paslėpti</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Valyti naršymo žurnalą</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Atverta kortelių: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Saugus ryšys</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Įkeliama</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Svetainė įkelta</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Daugiau parinkčių</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Mygtukas „Daugiau parinkčių“</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Eiti pirmyn</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Įkelti svetainę iš naujo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Grįžti atgal</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Nutraukti svetainės įkėlimą</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Grįžti į ankstesnę programą</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Viso užblokuotų elementų</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blokuokite stebėjimo elementus</string>
+
+ <string name="your_rights">Jūsų teisės</string>
+
+ <string name="external_app_prompt_title">Atverti saitą kitoje programoje</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Galite palikti „%1$s“, norėdami atverti šį saitą su „%2$s“.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Suraskite programą, kuri gali atverti saitą</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Nė viena iš jūsų įrenginyje esančių programų negali atverti šio saito. Galite palikti „%1$s“, norėdami ieškoti tinkamos programos per „%2$s“.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Baigti privatųjį naršymą?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s atsiųstas</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Atverti</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Nerastas serveris</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Pagerinkite savo privatumą</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Pereikite į aukštesnį privačiojo naršymo lygį. Blokuokite reklamas ir kitą jūsų naršymą galintį stebėti turinį, tuo pačiu sutrumpindami svetainių įkėlimo laiką.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Jūsų paieška, jūsų skoniui</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Ieškote kažko kito? Pasirinkite kitą numatytąją ieškyklę nustatymuose.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Pridėkite leistukų į savo pradžios ekraną</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Greitai grįžkite į savo mėgstamiausias svetaines „%1$s“ naršyklėje. Tiesiog pasirinkite „Įtraukti į pradžios ekraną“ iš „%1$s“ meniu.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Įpraskite prie privatumo</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Paskirkite „%1$s“ savo numatytąja naršykle ir naudokitės privačiojo naršymo privalumais atverdami svetaines iš kitų programų.</string>
+
+ <string name="firstrun_close_button">Gerai, supratau!</string>
+ <string name="firstrun_skip_button">Praleisti</string>
+ <string name="firstrun_next_button">Toliau</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">–</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Pridėti</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">TAIP</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Atsisakyti</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NE</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Leistukas bus atveriamas su išjungta išplėsta apsauga nuo stebėjimo</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Privačiojo naršymo seansas</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Pranešimai leidžia išvalyti jūsų „%1$s“ seansą bakstelėjus. Jums nereikia atverti programos ar matyti, kas atverta naršyklėje.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Valyti naršymo žurnalą</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Parsisiųsti „Firefox“</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[„%1$s“ yra laisvoji atviroji programa, kuriama „Mozillos“ ir kitų bendradarbių.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[Jums leidžiama naudotis „%1$s“ programa, vadovaujantis <a href="%2$s">„Mozillos“ viešąja licencija</a> ir kitomis atviromis licencijomis.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Jums nesuteikiamos jokios prekės ženklo teisės ar licencijos į „Mozilla Foundation“ ar kitų šalių prekės ženklus, tame tarpe – į „Mozilla“, „Firefox“ ar „%1$s“ vardus ar logotipus. Papildomą informaciją apie prekės ženklus galite rasti <a href="%2$s">čia</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Papildoma „%1$s“ pirminis kodas yra pateikiamas su įvairiomis kitomis, laisvomis ir atviromis <a href="%2$s">licencijomis</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[„%1$s“ naudoja blokavimo sąrašus, kuriuos teikia „Disconnect, Inc.“, kaip atskirus ir nepriklausomus darbus vadovaujantis <a href="%2$s">„GNU General Public License v3“</a> licencija, ir pasiekiamus <a href="%3$s">čia</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Naudotojo vardas</string>
+ <string name="gv_prompt_password_hint">Slaptažodis</string>
+ <string name="gv_prompt_clear">Išvalyti</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Saugus ryšys</string>
+ <string name="security_popup_insecure_connection">Nesaugus ryšys</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Tai liudija: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Svetainės saugumas</string>
+ <string name="preference_autocomplete_duplicate_url_error">Toks adresas jau pridėtas</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Rasti tinklalapyje</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Rasti tinklalapyje</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d iš %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Rasti tolesnį</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Rasti ankstesnį</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Paslėpti radimo funkcijas</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Prašyti ne mob. svetainės</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Komp. svetainė</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Adresas nukopijuotas</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Programuotojo priemonės</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Atverti saitus programose</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Kitkas</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Svetainių leidimai</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automatinis grojimas</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Leisti garsus ir vaizdo įrašus</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blokuoti tik garsus</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Rekomenduojama</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blokuoti garsus ir vaizdo įrašus</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Tyrimai</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">„Firefox“ retkarčiais gali įdiegti ir vykdyti tyrimus.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Sužinoti daugiau</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Norint pritaikyti pakeitimus, programa bus uždaryta</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Pašalinti</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktyvūs</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Užbaigti</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Nuotolinis derinimas per USB arba belaidį tinklą</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Atverti saitą naujame seanse</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Piršto atspaudo piktograma</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Neatpažintas piršto atspaudas. Bandykite dar kartą.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Pirštas sujudėjo per greitai. Bandykite dar kartą.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Rodyti paieškos žodžių siūlymus?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Kad gautų siūlymus, „%1$s“ turi persiųsti ieškyklei viską, ką rašote į adreso lauką.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ne</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Taip</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Kai kurios ieškyklės negali rodyti paieškos žodžių siūlymų.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Paslėpti</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Svetainė veikia netinkamai?\n Pabandykite išjungti apsaugą nuo stebėjimo</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Pasiekite lankomiausias svetaines vienu spustelėjimu%1$s Meniu > Įtraukti į pradžios ekraną]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Atverkite visus saitus „%1$s“ programoje\n Paskirkite „%1$s“ numatytąja naršykle</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Automatiškai užbaikite lankomiausių svetainių adresus\n Spustelėkite ir palaikykite bet kurį URL adresą adreso lauke</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Atverkite saitą naujoje kortelėje\n Spustelėkite ir palaikykite bet kurį saitą tinklalapyje</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Išjungti patarimus pradžios ekrane</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Atverta nauja kortelė</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Pereiti</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Pereiti į saitą naujoje kortelėje nedelsiant</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Blokuoti galimai pavojingas ir apgaulingas svetaines</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blokuoti žinomas apgaulingas, kenksmingas, nepageidaujamą programinę įrangą siūlančias svetaines.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Tik HTTPS veiksena</string>
+
+ <string name="preference_https_only_summary3">Siekiant didesnio saugumo, automatiškai bandoma jungtis prie svetainių naudojant šifruotą HTTPS protokolą.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Išimtys</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Šiose svetainėse esate išjungę turinio blokavimą.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Pašalinti</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Pašalinti visas svetaines</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blokuoti slapukus</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Ar norite blokuoti slapukus?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Kortelė užstrigo</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Atsiprašome. Su šia kortele yra problemų.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Kaip privačioji naršyklė, mes nesaugome ir negalime atkurti šios kortelės.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Užverti kortelę</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Pranešti apie strigtį „Mozillai“</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Stebėjimo elementai, užblokuoti nuo %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Turinio</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Reklaminiai</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Socialiniai</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analitikos</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Išplėsta apsauga nuo stebėjimo</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Apsaugos šioje svetainėje IŠJUNGTOS</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Apsaugos šioje svetainėje ĮJUNGTOS</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Ryšys saugus</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Ryšys nesaugus</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Blokuojami stebėjimo elementai ir scenarijai</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Eiti atgal</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Pašalinti</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Pervadinti</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Pervadinti</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Leistuko pavadinimas</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Įrašyti ir pasidalinti paveikslai &lt;b&gt;nebus&lt;/b&gt; pašalinti jums išvalius „%1$s“ žurnalą</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Grafinis apvalkalas</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Šviesus</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Tamsus</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Parinkti pagal baterijos lygį</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Naudoti įrenginio grafinį apvalkalą</string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Užverti kortelę</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-meh/strings.xml b/mobile/android/focus-android/app/src/main/res/values-meh/strings.xml
new file mode 100644
index 0000000000..827fc274cb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-meh/strings.xml
@@ -0,0 +1,1105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Ntuvi</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Chuva´a</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Nánuku a xíín chu´un iin nuu</string>
+
+ <string name="teaser">Nánuku yɨɨ yu´u.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Daa nnánukunu nnaá.</string>
+
+ <string name="feedback_erase2">Nná da a nnánukunu</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Daa nnánukunu nnaá nuu pestaña.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Nánuku %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Kua´a…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Iyo iin tixi nuu sitio ya´a</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Síne jii %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Síne jii…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Tee-ma nuu kajie´e</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Tee nuu acceso ñama</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Xita da acceso ñama</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Ke´i</string>
+ <string name="menu_about">Jiee ya´a</string>
+ <string name="menu_help">Chinei</string>
+ <string name="menu_rights">Daa tutu nichi no´o</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Daa a nita noo´o nxita</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Dee xita ya´a kuvi nuvi daa ntu iyo tiñu</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Nakasɨ contenido</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Xita ya´a saa kuvi nuvi daa sitios</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Ya´a nsa´a %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Kua´a jii</string>
+
+ <string name="notification_erase_title_android_14">Xiná daa nnánukunu?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Kuaxin a xíín xina notificación sa naa a nnánukunu.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Kuaxin a xíín xina notificación sa naa a nnánukunu.</string>
+
+ <string name="notification_erase_text">Xiná daa nnánukunu</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Síne</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Xiná jee síne</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Xiná</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Xiná daa nnánukunu</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Xita jee síne</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Xita jee síne %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Nánuku ji Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Nánuku ji Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Nánuku ji Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Nánuku ji Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s taji kajinu.</p>
+<p>Ni´ima kua iin nuu nánuku yu´u:
+ <ul>
+ <li>Nánuku jee kaka nuu ka̱a̱ ya´a</li>
+ <li>Chiyu´u daa a nita no´o (a xíín kaji kuvi kuntadaja noo´o)</li>
+ <li>Xina saa kuvi naá cokies jii daa tu´un nnánukunu</li>
+ </ul>
+</p>
+<p>%1$s kuviji iin nsa´a Mozilla. Nukudani iin internet vii jee va´a.<br/>
+<a href="%2$s">Ka´vi ku´eka</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privacidad jii seguridad</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Kaji kuntada noo´o, cookies jii datos</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Tee kua predeterminado</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Jiee ya´a %1$s, chineí</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Vitan jee vaji iin a kumi noo´o nkutada a sá´ánu</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Tu´un Web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Sama ka̱a̱</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Ntaka</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Ka̱a̱ kua vaji, tu´un</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Nastutu datos jii a ni´i</string>
+
+ <string name="preference_category_search">Nánuku</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Ni´in tu´un nánuku</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s chuichi a tenu nuu ka̱a̱ nánuku</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Kua vaji</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Ka̱a̱ nánuku</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Tɨɨn</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Xina´va</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL Tee ntu´u</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Daa sitios tuvika</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Ke´í saa %s kutuvi nuu ka̱a̱ nánuku kuaiyo da 450 URLs populares.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Nuu daa sitios chisonu</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Ke´i saa %s kutuvi da URLs favoritas.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Tetiñu daa sitios</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Tetiñu daa sitios</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+Tee a sá´á vii URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Lista noo´o autocompletado:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Tee URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Tee URL vii</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Tee a sá´á vii URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Tee enlace saa kuvi tee ntu´u</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies jii datos nuu ya´a</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Kaji datos</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Náxitá URLs a sá´ávii</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Kutu´va-ka</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Tee jee tetiñu de kuvi tee ntu´u URL sá´á vii.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL a tee</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Tee a xíín chu´un URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Kua: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Kua: nakuvi.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">A jíía vii URL ntee.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Xita</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Xita</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Natee tuku URL nteenu.</string>
+
+ <string name="preference_language">Tu´un</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Kua vaji ka̱a̱</string>
+
+ <string name="preference_category_privacy">Yɨ´ɨ yu´u</string>
+ <string name="preference_privacy_block_ads">Chiyu´u daa tutu xiko nantiñu</string>
+ <string name="preference_privacy_block_ads_summary">Daa tutu xiko, sunika ntu sinenuma, nitada noo´o daa nnánukunu nuu web</string>
+ <string name="preference_privacy_block_analytics">Chiyu´u daa ka̱a̱ nita noo´o</string>
+ <string name="preference_privacy_block_analytics_summary">Ni´idama jee xitutuda, jee chunku´va a sá´á jii a ke´i</string>
+ <string name="preference_privacy_block_social">Chiyu´u daa ka̱a̱ sociales</string>
+ <string name="preference_privacy_block_social_summary">Yɨ´ɨ nuu daa web saa kuvi kuntada noo´o jee kutuvi daa botones kuvi kua´a</string>
+ <string name="preference_privacy_block_content">Chiyu´u daa ka̱a̱ nita daa inka contenido</string>
+ <string name="preference_privacy_block_content_summary2">Dee tee ya´a kuvi sá´á daa web nsatiñu vii</string>
+ <string name="preference_privacy_category_cookies">Kasɨ cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ntuvi, kuta´vini</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Nakasɨ 3 cookies daa inka kuvi kuntada noo´o</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Nakasɨ ntu xini cookies daa inka</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Kasɨ cookies jíí da sitios</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Kuvi</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Ni´in ka̱a̱ na´a tɨɨ saa kuvi síne ka̱a̱ ya´a</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Síne jíí na\'a tiin noo\'o de nchisonu accesos directos a xíín sa íyo nune iin sitio jíí %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Ntu tuvi</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Chiyu´u daa tutu web saa sama ka̱a̱ jee chiyu´u ka̱a̱ natava.</string>
+
+ <string name="preference_category_security">Kumiji noo´o</string>
+
+ <string name="preference_category_performance">Naja satiñu</string>
+ <string name="preference_performance_block_webfonts">Chiyu´u tu´un web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Kuvi tuvi íconos a xíín nkutuvi tutu natava</string>
+
+ <string name="preference_performance_block_javascript">Kasɨ JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Daa página kuvi kivu ñama, jee kuvi nsatiñu vii</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Sá´á %1$s navegador xinañu´u ya´a</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Chu´uichí datos a ni´í</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Ka´vi kue´eka</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla nake´e sani daa a íyo tiñu jee jia´a va´a %1$s nuu kuaiyo daa yo.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Tutu xítu</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Tutu nákani saa kuantiñunu ya´a</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliotecas a ni´idani</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Bibliotecas OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Jiee ya´a %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Ka̱a̱ nánuku yɨ´ɨ</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Kaji inka ka̱a̱ nánuku</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Na tee tuku ka̱a̱ nánuku kua vaji</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Tee inka ka̱a̱ nánuku</string>
+ <string name="preference_search_remove_title">Xita ka̱a̱ nánuku</string>
+ <string name="preference_search_remove">Xita</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Tee inka ka̱a̱ nánuku</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Kaji ka̱a̱ nánuku kuvi ni´inu:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Chisó ka̱a̱ nánuku</string>
+
+ <string name="search_add_manually_name_hint">Sivɨ ka̱a̱ nánuku</string>
+ <string name="search_add_manually_string">Nuku tu´un saa ni´ima</string>
+ <string name="search_add_manually_save">Chuva´a</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Kua: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">A jíía ka̱a̱ nánuku ntee.</string>
+
+ <string name="search_add_error_empty_name">Tee sivɨ ka̱a̱ nánuku</string>
+ <string name="search_add_error_duplicate_name">Iin ka̱a̱ nánuku a ni´i sivɨ ya´a.</string>
+
+ <string name="search_add_error_empty_search">Tee a nánukunu</string>
+
+ <string name="search_add_error_format">Kune´ya dee tu´un nánukunu íyo kua vají nuu ya´a</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Xinó tu´u nchu´u</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Chiyu´u</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Xinó daa nnánuku noo´o</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Pestañas nune: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Conexión vatu</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Kunetu</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Nuu web kuvi tuvi</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Kue´e-ka nuu kají</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Botón nuu kaji</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Kaka ichí nuu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Na chisó tuku web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Niko yata</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Kunetu nee kutuvi web ya´a</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Niko nuu ka̱a̱ a nee yata</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Tuni daa nita noo´o nxita</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Chiyu´u daa web nita noo´o</string>
+
+ <string name="your_rights">Tutu nichí noo´o</string>
+
+ <string name="external_app_prompt_title">Síne link nuu inka ka̱a̱</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Kuvi kenenu nuu %1$s jee síne link ya´a nuu %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Nánuku iin ka̱a̱ nuu kuvi síne link ya´a</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ni´i daa ka̱a̱ nuu ka̱a̱ noo´o kuvi síne link ya´a. Kuvi kenenu nuu %1$s saa kuvi nánukunu iin ka̱a̱ kuvi koo inu jii %2$s.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Kene nuu nánuku daa yɨ´ɨ yu´u?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s nnɨ´ɨ</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Síne</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Tee nuu acceso ñama!</string>
+
+ <string name="error_hostLookup_title">Ntu nani´í ka̱a̱ servidor</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Nakasɨ</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Kusɨɨ inidáni nkantanu nu %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Ñama. Iyo yu´u. Ntu iyo tixi.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Kajie´e</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s ntu kuviji kua da inka ka̱a̱ nánuku</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Xinadani a nnánukunu ntaka ichi nakasɨnɨ ka̱a̱</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Tee %1$s kua predeterminado saa kuvi chuva´a da datos noo´o jii ntaka enlace sinenu.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Sá´á ka̱a̱ ya´a iin a ni´inu ntaka íchi</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Nava</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Sika privacidad noo´o</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Ni´i nánuku yu´u inka nivel. Xita daa tutu kuvi xiko a xíín daa nita noo´o, saa´a ntu jika ñama ka̱a̱ nánuku.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Nánuku, kua kachi noo´o</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Nánukunu inka tu´un? Kaji inka ka̱a̱ nánuku nuu daa ke´í.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Tee a kivu ñama nuu kajie´e</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Niko ñama nuu daa sitios ta´a ini noo´o %1$s. Kaji \&quot;tee nuu kajie´e\&quot; nu %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Kino jii privacidad</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Tee %1$s kua ka̱a̱ xinañu´u jee kune´ya a taji saa nánuku yu´unu saa sinenu nuu daa inka ka̱a̱.</string>
+
+ <string name="firstrun_close_button">OK, vatu!</string>
+ <string name="firstrun_skip_button">Nava</string>
+ <string name="firstrun_next_button">Inka</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Tee</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">KUVI</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Nkuvi</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NTUVI</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Ya´a kune jíí iin a kumi nkutadaja a sá´ánu</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Nánuku yu´u</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Daa notificación kuvi xita daa sesión nuu %1$s nejika kuaxinu. Ntu nejika sinenu ka̱a̱ saa kune´yanu a nune nu ka̱a̱ nánuku.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Náxitá sɨ´ɨ nnánuku</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Xinuun Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s kuviji iin ka̱a̱ ntu íyo ya´vi jee kuviji iin código nune a sa´a Mozilla jii inka ñivɨ.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s kuvi ni´inuma jiee <a href="%2$s"> tutu xitu Mozilla </a> jíí da inka tutu código nune.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Ntu taji tutu xitu a xíín daa inka tutu xitu Mozilla a xíín inka vetiñu nuu noo\'o, vani kuviji logos a xiin sivɨ Mozilla, Firefox a xiin %1$s. Kuvi nani\'inu kue\'eka jiee <a href="%2$s">ya\'a</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Código da fuente adicional %1$s íyo jíí <a href="%2$s"> licencias </a> nune jee kuvi sama código.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s ni´i lista ntɨ tuvi a taji Disconnect, Inc. jiee <a href="%2$s"> tutu xitu ntaka GNU v3 </a> jee kuvi nani´inuma <a href="%3$s"> ya´a </a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Sivɨ</string>
+ <string name="gv_prompt_password_hint">Contraseña</string>
+ <string name="gv_prompt_clear">Xinoo</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Conexión vatu</string>
+ <string name="security_popup_insecure_connection">Ntu va´a conexion</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Nne´ya: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Seguridad nuu ya´a</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL ya´a a íyo</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Nánuku nuu página</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Nánuku nuu página</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d de %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Nánuku inka tu´un</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Nuku tu´un ichi yata</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Nakasɨ nnánukunu</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Síne ñama ya´a</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Sitio de escritorio</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL ntɨ</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Ka̱a̱ ñɨvɨ ke´i ya´a</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Síne enlaces jíí aplicaciones</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">A biji</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Permisos del sitio</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reducción de banner de cookies</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Tɨɨn</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Xina´va</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reducción de banner de cookies</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Kune´ya mati´i banners de kuvi nkua´anu jia´a da cookies.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reducción de banner de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ACTIVADO nu sitio ya´a</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Sitio ntu satiñu vatu ntañu´u</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">DESACTIVADO nu sitio ya´a</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reducción de banner de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">DESACTIVADO nu sitio ya´a</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ACTIVADO nu sitio ya´a</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">¿A kuvi sa´a reducción banner da cookies nu %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">¿A kuvi sa´a reducción banner da cookies nu %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s Naa daa cookies sitio ya\'a jee nakajie\'e tuku tutu. Dee naa kuaiyo daa cookies kuvi nakasɨ sesión noo\'o a xíín naa daa ka̱a̱ nuu ke\'en.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s kuvi sá´á njia´a da solicitudes jikan cookies.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Ntañu\'un, nuu ya\'a ntu satiñu va\'a jíí reducción banner jíí cookies. ¿A kuvinu kakanu nuu daa nuu\'u kune\'yadani nuu web ya\'a saa kuvi satiñu va\'a íchi nuu?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Nkuvi</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Chinei nuu´u</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Tutu a chineida noo´o nchu´un ichi</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Tutu a chineida noo´o nchu´un ichi</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s Nkua\'anu jia\'a daa solicitudes cookies saa naa daa banners cokies.\n
+\n Ke\'i daa preferencias banners cookies nu %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">Da nu ke´i</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Reproducción automática</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Sa kuvi:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Kua´an nuu ke´i Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Kuaxin <b>Permisos</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Kua´an nuu da ke´i</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Sama <b>%1$s</b> a stuu]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Ka̱a̱ natava</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Micrófono</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Nuu iñɨnu</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notificación</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Contenido controlado por DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Kakan permiso</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Nasɨ</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Kuvi</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Nasɨ jiee Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Kuvi koo nasun ji tutu kana</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Kasɨ ntuxini nasun</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Recomendado</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Kasɨ nasun ji tutu kana</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Estudios</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox kuvi chu´un je sá´á estudios ntaka ichi.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Kuni kue´eka</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Aplicación nejika nakasɨ sa kuvi tuvi a jíía</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Xita</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Activo</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Completados</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Depuración remota jii USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Sine tuku</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Kachi de kuvi jii huella digital</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Kuvi niínu huella digital sa kuvi kaji´enu sesión nu ka̱a̱</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Síne enlace nuu a jíía sesión</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Tutu huella digital</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Ntu nnakuni huella digital. Tee ichika.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Xinti nkana ñama. Tee ichika.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">¿Xituvi da sugerencias a nnánuku?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Saa kuvi ni´inu tu´un chineí nánuku, %1$s nejika chu´un ichinu daa a teenu nu chu´un direcciones jii ka̱a̱ nánuku.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ntuvi</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Kuvi</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Daa ka̱a̱ nánuku ntu nkuvi xituvi daa tu\'un chineí nánukunu.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Xita</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">¿Ntu satiñu vii sitio ya´a?\n Xita a kumi nkuntada-ja noo´o</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Kuaxin ntu ichi jee kivu nuu daa sitios ni´inu ntaka ichi %1$s Kaji > Tee nuu kajie´e]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Sine daa enlace nuu %1$s\n Tee %1$s kua ka̱a̱ xinañu´u</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Tee saa kuvi naku´un ini kaa daa URLs\n Kuaxin iin URL nuu chu´un daa direcciones</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Sine iin enlace nuu pestaña jíía\n Kuaxin iin enlace nuu página</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Xita tu´un chineí nánukunu nuu kajie´e</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">A jíía pestaña nsine</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Sama</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Kivunɨ nu pantalla ka´nu</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Sama kuvi chunta´a pestaña jíía ñama</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Tee ntuvi daa sitios tixin jiin sitios kantu´un</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Tee ntuvi daa sitios kuvi sa´a xeen, jee daa sitios kumi ka̱a̱ ntu íyo vatu.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Ntu xini HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Nakivɨ tuku nuu daa sitio jee ni\'i protocolo encriptación HTTPS saa koo kue\'eka a kumiji noo\'o saa jikanu nuu ka̱a̱ ya\'a.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Exceptions</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Nxitanu nkutuvi tu´un nuu daa sitios ya´a.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Xita</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Xita kuaiyo daa sitios</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Kasɨ cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">¿A kuvinu kasɨ da cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Ntivu pestaña</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Nei koo ini-nu. Iyo iin tixi jiin pestaña ya´a.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Ka̱a̱ ya´a. ntu chuva´a jee nkuvi sine pestaña ni´inu ichi yata.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Nakasɨ pestaña</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Chu´un ichi saa tivu ya´a nuu Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Rastreadores nnakasɨ ne %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Contenido</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Tutu xiko</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analítica</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Vitan jee vaji iin a kumi noo´o nkutada a sá´ánu</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Da a kumi noo´o ntu iyo activo nu sito ya´a</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Da a kumi noo´o iyo activo nu sito ya´a</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Conexión va´a</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Conexión ntu va´a</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Rastreadores y scripts a nejika nakasɨ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Xniko</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Xita</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Natee</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Natee</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Sivɨ acceso ñama</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Da tutu nátava a nchuva´a je nsajia&lt;b&gt;nná&lt;/b&gt; de xinanu da tu´un nnánukunu %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Niji</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Teku tun</string>
+
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Tee sa ntaxin bateria</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Ni´i tema ka̱a̱</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Ntu satiñu vatu jii HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s Ni\'i iin conexión HTTPS ntaka kuvinu koo kue\'e a kumiji noo\'o
+ <a href="%2$s">Kuni kue\'eka jiee</a> <br/><br/>
+ Sama configuración nuu ajustes > Privacidad &amp; Seguridad > Seguridad.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Conexión ntu va´a</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Sa̱na kuvi iin problema jii configuración ka̱a̱ servidor a xíín íyo neva kuvi sa´a xeen.<br/><br/>
+ Dee a kivɨ-nu servidor ya´a íchi yata sa̱naan kuvi iin error nkene ntañu\'u, kuvi nakivɨ-nu íchika dee nníní.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Sana íyo ñivɨ kuvi kantu\'un noo\'o nuu sitio ya\'a de jia\'nu kuvi koo tixi.</label>
+ <br><br>
+ <label>%1$s no confía en <b>%2$s</b> porque el emisor del certificado es desconocido, el certificado está autofirmado o el servidor no envía los certificados intermedios correctos.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Nakasɨ pestaña</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">¡Vatu! Nsá´ádani a página web ya´a nkune´ya a sá´ánu. Kuaxin nu escudo saa kuvi kuninu da a nakasɨdani.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Nakasɨ elemento emergente</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">¡Kumidani noo´o!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Configuración predeterminada jia\'a iin a kumi. Ntu viji kuvi kei\'o saa kuvi koo kua kuvinu ni\'inuma</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Xita</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Kuaxin ya´a sa kuvi xina kuaiyo — a nánukunu, cookies, je da inka — kajie´e nu iin pestaña jíía.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Nakasɨ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget a nánuku</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">¡Nná da a nnánukunu! 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Kajie´e sesión yi yu\'u jee nakasɨdani rastreadores jíí inka amenazas ntaka jikanu nuu ka̱a̱ ya\'a.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Xinodani jíí navegación yu\'u, je kajie\'e ñama inka íchi jíí widget %1$s nuu pantalla xinañu\'u.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Chisó ya´a nuu kajie´e xinañu´un</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget nte nu pantalla xinañu´u</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-mix/strings.xml b/mobile/android/focus-android/app/src/main/res/values-mix/strings.xml
new file mode 100644
index 0000000000..03d0e45ea3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-mix/strings.xml
@@ -0,0 +1,1072 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Kuntyatu</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Va\'a</string>
+
+ <string name="action_save">Tyika vaà</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Ndukú a tyaa ña kunu kuncheu</string>
+
+ <string name="teaser">Ndukù Sèè. Kunchee. Sto\'o. Ntakua.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Sto\'i ña ntsinu.</string>
+
+ <string name="feedback_erase2">Stoo ña ntsinu</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Stoi ña ntsinu ña ntsika nu xikua.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Ndukù %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Stucha…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Ka tu\'un ña kue va\'a yee sitio\'yo</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Kuna tsi %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Kuna tsi…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Chika\'a nu pantalla xina</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Tyika xina</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Stoó ña xina</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Nu samu</string>
+ <string name="menu_about">Tsaa ña</string>
+ <string name="menu_help">Chinchee</string>
+ <string name="menu_rights">Yee yu\'u</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Ntasi nu kuu snuu kue ña\'a</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Ndavi tatu kue ku nduva sitio yo</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Kasi kontenido</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Ndavi takua ku nduvaa sitio yoo</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Nikuvai tsi %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Kua’a nu\'u</string>
+
+ <string name="notification_erase_title_android_14">Stòo ña ndúkuku sata</string>
+
+ <string name="notification_erase_text">Stòo ña ntukuku sata</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Kuna</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Stoo cha Kuna</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Stoo</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Stòo ña ndukuku sata</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Stoo ra kuna</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Stoo tsi kuna %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Nduku nu Focus </string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Nduku nu Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Nduku tsi Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Nduku tsi Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s te da el control.</p>
+<p>Usalo como navegador privado:
+ <ul>
+ <li>Buscar y navegar directamente en la aplicación</li>
+ <li>Bloquear rastreadores (o actualizar los ajustes para permitir rastreadores)</li>
+ <li>Borrar para eliminar cookies e historial de búsqueda y navegación</li>
+ </ul>
+</p>
+<p>%1$s es producido por Mozilla. Nuestra misión es promover una Internet saludable y abierta.<br/>
+<a href="%2$s">Conocer más</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Ña i\'í tsi Ña kunka vai</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Lista ña rastreo, cookies tsi tutu</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Chikai tana xina, cha ntacha\'a mií ña</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Tu\'un tsa %1$s, ña chinhe\'e yo</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Protección de rastreo aumentada</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Tutu web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Sama kue aplicacion</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Ntií</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Navegador xina, tu un</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Satutu kue tutu cha nchi vai</string>
+
+ <string name="preference_category_search">Nduku</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">A Kuncheu nixi ndukuku</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s ku chachuin nchi ña ku nchau nu barra de direcciones tsi ña ku ndukuku</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Tsa sa\'an yee</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Ña nduku</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Kuna</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Kasi</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Chaa URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Sitio kua ncheu</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Habilitar para que %s autocomplete más de 450 URLs populares en la barra de direcciones.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Sitio chikau</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Habilitar para que %s autocomplete tus URLs favoritas.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Kunche sitio</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Kunche sitio</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Chaa URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Tu lista de autocompletado:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Tyika URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Chaa URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Chaa URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Chika enlace takua na tsinu mitu’ìn</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies tsi tutu sitio</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Katsi tutù</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Stòo URLs nchau</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Skua\'a kuakaa</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Chaa a sama URLs tana kuni meu.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Chaa URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Chistiin a chaa URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Tana: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Kua: sivi.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Ntutsaa URL nchau.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Xitaá</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Xitaá</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Chaa va\'a URL.</string>
+
+ <string name="preference_language">Tu\'un</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Nkoi ta xi’na</string>
+
+ <string name="preference_category_privacy">Sèè</string>
+ <string name="preference_privacy_block_ads">Kasi ña ndukuyo</string>
+ <string name="preference_privacy_block_ads_summary">Yee tu\'un nduku ña tsinu, vasu ma katavu ña</string>
+ <string name="preference_privacy_block_analytics">Kasi ña ndukuyo</string>
+ <string name="preference_privacy_block_analytics_summary">Kuachu\'un ña tava satutuku tsi chikuau ña sau tana katavu tsi samu</string>
+ <string name="preference_privacy_block_social">Kasi ña ndukuyo</string>
+ <string name="preference_privacy_block_social_summary">Ntachiiaña nu ke sitiotava ntanii ña ntsinu cha snai boton tana kua\'á</string>
+ <string name="preference_privacy_block_content">Kasi ña ndukuyo inka tsio</string>
+ <string name="preference_privacy_block_content_summary2">Tatu na Kuachu\'un ña ku kueva\'a nuna pàguina</string>
+ <string name="preference_privacy_category_cookies">Kasi cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ti tsavu</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Kasi cookies ña inka nivi</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Kasi cookies ña inkana</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Bloquear cookies de sitios cruzados</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Va´a</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Kuchun huella digital tava kunu aplicación</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Desbloqueá usando la huella digital si agregaste accesos directos o cuando un sitio web ya está abierto en %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Sèè</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Chika sèè pagina ta ku samu aplicaciòn cha casi ña ndatava.</string>
+
+ <string name="preference_category_security">Vaá</string>
+
+ <string name="preference_category_performance">Nixi sachu\'in</string>
+ <string name="preference_performance_block_webfonts">Makuau kuni siin ña\'a</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Kuu kuncheu ika ña\'a icono a tutu ndatavana ña tsa koo</string>
+
+ <string name="preference_performance_block_javascript">Kasi JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Ku yàchika kitsa kue página, ti ku ma nuna va’i</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Saa %1$s navegador xinaa</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Chachu\'un tu\'un nchachu\'un</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Skua\'a kuakaa</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla ndaki\'an ña vaa tava na koo vaa %1$s ntio.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Nixi inka vaa tutu\'ku</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Información de licencia</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliotecas que usamos</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Bibliotecas OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Tsaa ña\'a%1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Ndu tsaa ña nda nduku</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Katsi buscador</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Ndu tsaa ña nda ntuku</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Chika´a inka motor nduku</string>
+ <string name="preference_search_remove_title">Sto\'o ña ntuku</string>
+ <string name="preference_search_remove">Xitaá</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Tyika inka buscador</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Katsi buscador va´á:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Chikaa tsi ña ndukuku</string>
+
+ <string name="search_add_manually_name_hint">SIvi ña nduku</string>
+ <string name="search_add_manually_string">Nduku tu\'un kunu kuachu\'un</string>
+ <string name="search_add_manually_save">Chika vaà</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Sa\'an chau\'ña: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Ntu tsa\'a tsi ña ndukuku.</string>
+
+ <string name="search_add_error_empty_name">Chaa sivi ña kunu nduku</string>
+ <string name="search_add_error_duplicate_name">Tsa inka\'a iin ña nduku tsi sivi yoo.</string>
+
+ <string name="search_add_error_empty_search">Chaa tu\'un kunu ndukuku</string>
+
+ <string name="search_add_error_format">Ckunche\'e a vaà nchau ña ku ndukuku</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Stoo nu nikivu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Nkucha\'a su\'u</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Stòo ña ntukuku sata</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Xikua nuna: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Kuu kivu</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Saa ki tsai</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Kunchatu saa ku ki\'tsai</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Kunchee nu ndasamu kue ñaa</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Botón kuá’á</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Nduku chinuu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Ntu tsaa pagina web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Nduku sata</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Ma ntu tsaa pagina web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Nchiko sata</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Kavi nisa rastreador ndasia</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Kasi ña ndukuyo</string>
+
+ <string name="your_rights">Yee yu\'u</string>
+
+ <string name="external_app_prompt_title">Kuna nu ndukuku inka tsio</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Kuu siau %1$s cha kuu kunu nu ndukuku yoo%2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Nduku inka nu kuu kuncheu ña kunu</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ni iin nu sachuun kúú kunaku tsi enlace yó’o. Kuu ketu %1$s tatu kunu ndukukuv%2$s inka nu kuu sachuun.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">A keu nu nduku seu ñaa?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s ntsinu</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Kuna</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Tyika xina</string>
+
+ <string name="error_hostLookup_title">Kòo servidor ni ntanèe</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Kasi</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">A nikitsau nu %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rápido. Privado. Sin distracciones.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Ki tsaà</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s kue inui tsi inka la nduku</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Borramos tu historial cuando cerrás la aplicación para mayor privacidad.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Poné a %1$s como predeterminado para proteger tus datos con cada enlace que abrás.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Tyika Tana ña nduku xina</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Kanta</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Saa kanu ña sèè</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Nduku sèè ña kunu. Kasi tu\'un va\'a tsi siin ñaa va\'a sa\'a kue pagina.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Nduku ña kunu, nixi kunu</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">¿Nudukuku si\'in ña\'a? katsi inka tsiña ndukuku inka nu sama ntii ñaa yo.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Chikaa nixi kitsau nu pantalla xinaa</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Nchiko nu inka pagina %1$s katavi. Nu xikua %1$s \&quot; Chikaa nu pantalla xinaa \&quot;.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Ka\'un ña see</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Chikaa %1$s nu ndukuku xina cha kunchee nixi nduku seu ta tsunaku pagina web inka tsio.</string>
+
+ <string name="firstrun_close_button">Va\'a, tsa ntakii ña!</string>
+ <string name="firstrun_skip_button">Kanta</string>
+ <string name="firstrun_next_button">Nuu</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Chikaa</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">Va´a</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Kunchatu</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">Va´á</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">El acceso directo se abrirá con la protección de rastreo aumentada desactivada</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Nikitsa seu</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Tu\'un kuu stoi nu nikitsau %1$s ta katavu. ke tsiniñu\'u kunakuña ni kuncheu ta sachuùn navegador.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Stòo ña ntukuku sata</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Snuu Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s software kuachu\'un ntiina ni kuu vaa saa Mozilla tsi nivi sachu\'un chi\'an.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s está disponible para ti bajo los términos de la <a href="%2$s">Licencia Pública de Mozilla</a> y otras licencias de código abierto.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Ma ku kuatyu´un marca a licencia tsa fundación Mozilla a inka ña´a, tana logos a sivi Mozilla, Firefox a %1$s. kuntyee nu <a href="%2$s">aquí</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[El código fuente adicional para %1$s está disponible bajo varias otras <a href="%2$s">licencias</a> gratuitas y de código abierto.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s también usa listas de bloqueo provistas por Disconnect, Inc. como trabajos separados e independientes bajo la <a href="%2$s">GPLv3 (GNU General Public License v3)</a>, y se encuentra disponible <a href="%3$s">aquí</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Sivìi</string>
+ <string name="gv_prompt_password_hint">Tu\'un seè</string>
+ <string name="gv_prompt_clear">Stòo</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Mani\'ku Chitai\'ña</string>
+ <string name="security_popup_insecure_connection">Ma kuu Chitai\'ña</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verificado por: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Vaa sitio yoo</string>
+ <string name="preference_autocomplete_duplicate_url_error">Tsa inka URL</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Ndaduku yo\'o</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Nduku nu página</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d a %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Nduku tu\'un nu\'u</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Nduku tu\'un sata</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Kasi nu ndukuku</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Kaka sitio nu escritorio</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Xina</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Ndatava URL</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Nu ndasamu</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Kuna tsi aplicación</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Nchichi</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Kuna sitio</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reducción de anuncios de cookies</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Kuna</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Kasi</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reducción de anuncios de cookies</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Vea menos anuncios rechazando automáticamente las solicitudes de cookies cuando sea posible.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reducción de anuncios de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ACTIVADA para este sitio</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">El sitio actualmente no es compatible</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">DESACTIVADA para este sitio</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reducción de anuncios de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">DESACTIVADA para este sitio</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ACTIVADA para este sitio</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">¿Habilitar reducción de mensajes de cookies para %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">¿Habilitar reducción de mensajes de cookies para %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s borrará las cookies de este sitio y actualizará la página. Borrar todas las cookies puede cerrar la sesión o vaciar los carritos de compras.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s puede intentar rechazar automáticamente las solicitudes de cookies.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Este sitio actualmente no soporta la reducción de mensajes de cookies. ¿Querés pedirle a nuestro equipo que revise este sitio web y agregue soporte en el futuro?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Kunchatu</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Katu un</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Pedido para soporte del sitio enviado.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Pedido para soporte del sitio enviado.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s trata de rechazar los pedidos de cookies para descartar pancartas de cookies molestos.\n\nAdministrar preferencias de mensajes de cookies en %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">Ndasama</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Ndatu´un</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Kuna tsi:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Kuna nu ndasama Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Katavi <b>Sama</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Kua´an nu ku ndasamu</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Ndatu´un <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Cámara</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Micrófono</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Ubicación</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notificación</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Contenido controlado por DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Kaka permiso</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Ndakasi</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Va’a</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Android ntsasia</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Kuna ndusu tsi ña ndatavana</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Kasi ndusu</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Recomendado</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Kasi ndusu tsi ña ndatavana</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Skua</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox ku tyikai la skua ya kunu.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Skua´a kuakaa</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">La aplicación se cerrará para aplicar los cambios</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Xitaá</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Va´a </string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Va´a </string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Nta sa vaà tsi USBWi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Kuna</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Confirmar usando tu huella digital</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Kuvi niínu huella digital sa kuvi kaji´enu sesión nu ka̱a̱</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Kuna nu xikua tsàa</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Huellas digitales</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Kue ndakuinia huella digital. Kitsa tuku.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Vichi nchua ni kanta ndau. Kitsa tuku.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">A Kuncheu nixi ndukuku</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Para obtener sugerencias de búsqueda, %1$s necesita enviar lo que ingreses en la barra de direcciones al motor de búsqueda.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">No</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Va\'a</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Yee kue motor de búsqueda kue ku snai ña ku kuncheu.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Chika seé</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">¿Ntu satiñu vii sitio ya´a?\n Xita protección de rastreo </string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[kuntyee sitio ña tyeu ndikii nu %1$s Menú > Tyika xina]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Kuna iin enlace tsi %1$s\n Chikay %1$s tana navegador xina</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Ntasa URLs ña sitio ña kuaka chichu\'un\n Katavi URL niku nu barra ña direcciones</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Kuna enlace nu xikua tsaá\n Katavi nchi enlace niku nu página</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Xita tu´un xina ya kitsau</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Ndutsa xikua nuna</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Sama</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Sama pantalla kanu</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Sama enlazar nu xikua tsaa vityi</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Kasi sitio vaa tsi ña stavi</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Kasi sitio vaa tsi ña stavi, sitio nu inka kue aplicaciones tsi software vaa.</string>
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title"> HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Kunu kuntyeu sitio tatyu un protocolo HTTPS cifrado.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Excepciones</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Xitaá</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Atoo ntii pagina web</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Kasi cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">¿A kunu kasú cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Vaa Xikua</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Kue ku nuna xikua yoo</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Ña Ntukú sèè, kue nchikavai ña ntsinu tsi xikua ntsinu sata.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Kasi xikua</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Tachu\'un tu\'un ña vai nu Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note"> Ntsasia reatreador nu%s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Contenido</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Publicidad</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analítica</string>
+
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Chikavaa ña sau</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Las protecciones están desactivadas para este sitio</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Las protecciones están activadas para este sitio</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Conexión va´a</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Conexión va´a</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Rastreadores y scripts a bloquear</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Satà</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Xitaá</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Tya sivu</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Tya sivu</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Sivi siki</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Tutu ndatavu ña inka vaa compartidas &lt;b&gt;ma&lt;/b&gt; sntoi ta ku stuu ña ntsinu nu %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Yaa</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Ntyai</string>
+
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Ntyai bateria</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Tatyu´un ña inka nu kaa ndusu ku</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Sitio yo kue ku kuni HTTPS</string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Conexión ntu va´a</string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Kasi xikua</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Kasi popup</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">¡A yee vaa!</string>
+
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Tyika seé</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Kasi</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Dnuku Widget </string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">¡Koo ña ntsinu ! 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Kitsa tsi sesión ku ntyeé seé tya ku kasiko ku rastreador tsi ntyi ka ña\'a.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Te dejaremos con tu navegación privada, pero podés conseguir un inicio más rápido la próxima vez con el widget de %1$s en la pantalla de inicio.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Chika\'a nu pantalla xina</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Tyika Widget xina</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-mr/strings.xml b/mobile/android/focus-android/app/src/main/res/values-mr/strings.xml
new file mode 100644
index 0000000000..801d8b028b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-mr/strings.xml
@@ -0,0 +1,680 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">रद्द करा</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ठीक आहे</string>
+
+ <string name="action_save">साठवा</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">शोधा किंवा पत्ता द्या</string>
+
+ <string name="teaser">स्वयंचलित खाजगी ब्राउझिंग.\nब्राउझ करा. मिटवा. पुन: करा.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">आपला ब्राउझिंग इतिहास मिटवला आहे.</string>
+ <string name="feedback_erase2">ब्राउझिंग इतिहास नष्ट</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">टॅबचा ब्राउझिंग इतिहास मिटविला गेला आहे.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s करिता शोधा</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">शेअर करा…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">साइट समस्येचा अहवाल द्या</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s मध्ये उघडा</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">मध्ये उघडा…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">मुख्य पटलावर जोडा</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">शॉर्टकट मध्ये जोडा</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">शॉर्टकट मधून हटवा</string>
+
+ <string name="menu_settings">सेटिंग</string>
+ <string name="menu_about">याबद्दल</string>
+ <string name="menu_help">मदत</string>
+ <string name="menu_rights">आपले अधिकार</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">मागोवा यंत्रणा अडवली</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">हे बंद केल्याने कदाचित काही साईट समस्या सुटू शकतील</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">मजकूर अवरोधन</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">साईट ठीक करण्यासाठी बंद करा</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s द्वारे समर्थित</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">याद्वारे शेअर करा</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">ब्राउझिंग इतिहास खोडा</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">उघडा</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">खोडा व उघडा</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">खोडा</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">ब्राउझिंग इतिहास खोडा</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">मिटवा आणि उघडा</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">मिटवा आणि %1$s उघडा</string>
+
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s आपल्याला नियंत्रण देतो.</p>
+<p>खाजगी ब्राउझर म्हणून वापरा:
+<ul>
+<li>अँप मध्येच शोध व ब्राउझ करा</li>
+<li>मागोवा यंत्रणा अडवा(किंवा सेटिंग बदलून मागोवा यंत्रणेला परवानगी द्या)</li>
+<li>कुकीज, सर्च व ब्राऊझिंग इतिहास नष्ट करण्यासाठी खोडून टाका</li>
+</ul>
+</p>
+<p>%1$s Mozilla ने उत्पादित केला आहे. खुले व सुधृढ इंटरनेट जोपासणे आमचे ध्येय आहे.<br/>
+<a href="%2$s">अधिक जाणून घ्या</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">गोपनीयता आणि सुरक्षा</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">ट्रॅकिंग, कुकीज, डाटा पर्याय</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">पूर्वनिर्धारित ठरवा, ऑटोकंप्लिट</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s बद्दल, मदत</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">वेब मजकूर</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">अँप बदलताना</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">सर्वसाधारण</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">माहिती संकलन आणि वापर</string>
+
+ <string name="preference_category_search">शोधा</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">शोध सूचना मिळवा</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">आपण जे पत्ता पट्टी मध्ये टाईप कराल ते %1$s आपल्या शोध इंजिनला पाठवेल</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">पूर्वनिर्धारीत</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">शोध इंजिन</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">चालू</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">बंद</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL स्वयंपूर्ण</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">टॉप साईट करिता</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">आपण जोडलेल्या साईट करिता</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">साईट व्यवस्थापित करा</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">साईट व्यवस्थापित करा</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ सानुकूल URL जोडा</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">आपली स्वयंपूर्णता यादी:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL जोडा</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">सानुकूल URL जोडा</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">सानुकूल URL जोडा</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">स्वयंपूर्ण करण्यासाठी दुवा जोडा</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">कूकीज आणि संकेतस्थळाची माहिती</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">माहिती पर्याय</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">सानुकूल URLs काढा</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">अधिक जाणा</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">सानुकूल स्वयंपूर्ण URLs जोडा आणि व्यवस्थापित करा.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">जोडायची URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">चिकटवा किंवा URL प्रविष्ट करा</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">उदाहरण: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">उदाहरण: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">नवीन सानुकूल URL समाविष्ट केली.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">काढून टाका</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">काढून टाका</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">आपण प्रविष्ट केलेली URL दोनदा तपासा.</string>
+
+ <string name="preference_language">भाषा</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">पूर्वनिर्धारीत प्रणाली</string>
+
+ <string name="preference_category_privacy">गुप्तता</string>
+ <string name="preference_privacy_block_ads">जाहिरात मागोवा यंत्रणा अवरोधित करा</string>
+ <string name="preference_privacy_block_ads_summary">काही जाहिराती संकेतस्थळावरील भेटीची नोंद करून ठेवतात, जरी तुम्ही जाहिरातीवर क्लिक केले नाही तरी</string>
+ <string name="preference_privacy_block_analytics">विश्लेषणात्मक ट्रॅकर्स अवरोधित करा</string>
+ <string name="preference_privacy_block_analytics_summary">टॅपिंग आणि स्क्रोलिंगसारख्या क्रियाकलाप एकत्रित करण्यासाठी, मोजमापआणि विश्लेषण करण्यासाठी वापरला जातो</string>
+ <string name="preference_privacy_block_social">सामाजिक ट्रॅकर अवरोधित करा</string>
+ <string name="preference_privacy_block_social_summary">आपल्या भेटींचा मागोवा घेण्यासाठी आणि शेअर बटन सारखी सुविधा दर्शवण्यासाठी साईट वर ठेवले आहे</string>
+ <string name="preference_privacy_block_content">इतर मजकूर ट्रॅकर्स अवरोधित करा</string>
+ <string name="preference_privacy_block_content_summary2">सक्षम करण्यामुळे काही पृष्ठ अनपेक्षितरित्या वागू शकतात</string>
+ <string name="preference_privacy_category_cookies">कुकीज अवरोधित करा</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">नाही धन्यवाद</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">केवळ तृतीय-पक्ष ट्रॅकर कुकीज अवरोधित करा</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">केवळ तृतीय-पक्षाच्या कुकीज अवरोधित करा</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">कृपया हो</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">अँप उघडण्यासाठी बोटाचा ठसा वापरा</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">स्टेल्थ</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">अँप बदलताना वेब पृष्ठे लपवा आणि स्क्रीनशॉट घेणे आडवा.</string>
+
+ <string name="preference_category_security">सुरक्षा</string>
+
+ <string name="preference_category_performance">कार्यक्षमता</string>
+ <string name="preference_performance_block_webfonts">वेब फॉन्ट अवरोधित करा</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">याचा परिणाम हरवलेल्या प्रतिमा किंवा चिन्हांमध्ये होऊ शकतो</string>
+
+ <string name="preference_performance_block_javascript">JavaScript अवरोधित करा</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">पृष्ठे जलद लोड होतील पण अनपेक्षित वर्तणूक दाखवू शकतात</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">मुलभूत ब्राउझर म्हणून %1$s वापरा</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">वापर डेटा पाठवा</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">अधिक जाणा</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">सर्वांसाठी %1$s उपलब्ध करण्यासाठी व सुधारण्यास जी गरजेची आहे फक्त तीच माहिती जमा करण्यास Mozilla तत्पर आहे.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">गोपनीयता सूचना</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s विषयी</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">स्थापित केलेले शोध इंजिन</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">शोध इंजिन निवडा</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">डीफॉल्ट शोध इंजिन पुनर्संचयित करा</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ अजून एक शोध इंजिन जोडा</string>
+ <string name="preference_search_remove_title">शोध इंजिने काढून टाका</string>
+ <string name="preference_search_remove">काढून टाका</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">अजून एक शोध इंजिन जोडा</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">आपले पसंतीचे इंजिन निवडा:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">शोध इंजीन जोडा</string>
+
+ <string name="search_add_manually_name_hint">शोध इंजिनचे नाव</string>
+ <string name="search_add_manually_string">शोधण्यास वापरायची अक्षरमाळ</string>
+ <string name="search_add_manually_save">जतन करा</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">उदाहरण: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">नवीन शोध इंजिन जोडले.</string>
+
+ <string name="search_add_error_empty_name">शोध इंजिनाचे नाव प्रविष्ट करा</string>
+ <string name="search_add_error_duplicate_name">एक स्थापित शोध इंजिन आधीपासून त्या नावाचा वापर करीत आहे.</string>
+
+ <string name="search_add_error_empty_search">सर्च स्ट्रिंग प्रविष्ट करा</string>
+
+ <string name="search_add_error_format">शोध अक्षरमाळ उदाहरणाच्या स्वरूपात आहे का ते तपासा</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">इनपुट साफ करा</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">बरखास्त करा</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">ब्राऊझिंग इतिहास खोडून टाका</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">उघडलेले टॅब: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">सुरक्षित कनेक्शन</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">लोड करत आहे</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">वेबसाइट लोड केली</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">आणखी पर्याय</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">अधिक पर्याय बटण</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">पुढे नेव्हिगेट करा</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">वेबसाइट रीलोड करा</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">मागे नॅव्हिगेट करा</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">वेबसाइट लोड करणे थांबवा</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">मागील अॅप वर परत या</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">अवरोधित मागोवा यंत्रणा संख्या</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">मागोवा यंत्रणा अवरोधित करा</string>
+
+ <string name="your_rights">आपले हक्क</string>
+
+ <string name="external_app_prompt_title">दुसर्या अॅपमध्ये दुवा उघडा</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">दुआ %2$s मध्ये उघडण्यासाठी आपण %1$s सोडू शकता.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">दुवा उघडू शकणारा अॅप शोधा</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">आपल्या उपकरणातील कोणतीही अँप ही दुवा उघडू शकत नाही. ही दुवा उघडू शकणारी अँप %2$s वर शोधण्यासाठी आपण %1$s सोडून जाऊ शकता.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">खाजगी ब्राउझिंगच्या बाहेर पडायचे आहे का?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s समाप्त</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">उघडा</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">सर्व्हर आढळला नाही</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">आपली गोपनीयता वाढवा</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">खाजगी ब्राऊझिंग पुढच्या स्तरावर न्या. जाहिराती आणि इतर मजकूर अवरोधित करा जो आपला विविध साईट वरून मागोवा घेऊ शकतो आणि पृष्ठ लोड वेळ कमी करू शकतो.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">आपला शोध, आपल्या पद्धतीने</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">काही वेगळे शोधत आहात का? सेटिंग मधून अन्य पूर्वनिर्धारित शोध इंजिन ठरवा.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">आपल्या मुख्य पटलावर शॉर्टकट जोडा</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">%1$s मध्ये आपल्या आवडत्या साईट्स वर त्वरित परत जा. फक्त %1$s मेनू मधुन \&quot;मुख्य पृष्ठात जोडा\&quot; निवडा.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">गोपनीयता एक सवय बनवा</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">%1$s हा आपला पूर्वनिर्धारित ब्राउझर म्हणून निवडा आणि इतर अँप मधून वेब पृष्ठ उघडताना खाजगी ब्राऊझिंग चा फायदा घ्या.</string>
+
+ <string name="firstrun_close_button">ठीक आहे, समजले!</string>
+ <string name="firstrun_skip_button">वगळा</string>
+ <string name="firstrun_next_button">पुढे</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">जोडा</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">हो</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">रद्द करा</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">नाही</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">खाजगी ब्राऊझिंग सत्र</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">सूचनेवरून आपले %1$s सत्र एका टॅप मध्ये नष्ट करता येते. आपल्या ब्राउझर मध्ये काय चालू आहे हे पाहायला किंवा अँप उघडावे लागत नाही.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">ब्राऊझिंग इतिहास नष्ट करा</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox डाउनलोड करा</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s Mozilla आणि इतर योगदानकर्त्यांनी बनवलेले मोफत आणि खुल्या स्रोताचे सॉफ्टवेअर आहे.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s आपल्याला <a href="%2$s">Mozilla Public License</a> आणि इतर खुल्या स्त्रोत परवान्यांच्या नियमांतर्गत उपलब्ध करून दिले गेले आहे.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Mozilla, Firefox किंवा %1$s यांचे नाव किंवा चिन्हांसह Mozilla Foundation किंवा कोणत्याही पक्षाच्या व्यापारचिन्हाचे अधिकार किंवा परवाने आपल्याला दिले गेले नाहीत. अधिक माहिती <a href="%2$s">इथे</a> मिळू शकते.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[%1$s साठी अधिक स्रोत कोड इतर अनेक मुक्त आणि खुल्या स्त्रोताच्या <a href="%2$s">परवान्यांतर्गत</a> उपलब्ध आहे.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[Disconnect, inc. यांनी पुरवलेल्या अडवणूक याद्या सुद्धा <a href="%2$s">GNU General Public License v3</a> अंतर्गत एक विभक्त आणि स्वतंत्र संसाधन म्हणून %1$s वापरते, ज्या <a href="%3$s">इथे</a> उपलब्ध आहेत.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">वापरकर्त्याचे नाव</string>
+ <string name="gv_prompt_password_hint">पासवर्ड</string>
+ <string name="gv_prompt_clear">पुसा</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">सुरक्षित जोडणी</string>
+ <string name="security_popup_insecure_connection">असुरक्षित जोडणी</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">%1$s द्वारे तपसालेले</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">साइट सुरक्षा</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL आधिपासूनच अस्तित्वात आहे.</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">पृष्ठामध्ये शोधा</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">पृष्ठामध्ये शोधा</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%2$d पैकी %1$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">पुढील परिणाम शोधा</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">मागील परिणाम शोधा</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">पृष्ठावर शोधणे रद्द करा</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">डेस्कटॉप साइटची विनंती करा</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">डेस्कटॉप साइट</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL ची प्रत बनवली</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">डेव्हलपर साधने</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">प्रगत</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Wi-Fi द्वारे दूरस्थ डीबगिंग</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">नवीन सत्रात दुवा उघडा</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">बोटाच्या ठश्याचे चिन्ह</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">बोटाचा ठसा ओळखला नाही. पुन्हा प्रयत्न करा.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">बोट पटकन हलवले. पुन्हा प्रयत्न करा.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">शोध सूचना दाखवायच्या?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">सूचना मिळवण्यासाठी, %1$s ला आपण निवडलेल्या शोध इंजिनला आपण पत्ता पट्टीमध्ये काय टाईप करता ते पाठवावे लागेल.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">नाही</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">होय</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">काही शोध इंजिन सूचना दाखवू शकत नाहीत.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">रद्द करा</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">साइट अनपेक्षितरित्या वागत आहे?\n ट्रॅकिंग संरक्षण बंद करण्याचा प्रयत्न करा</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[आपण सर्वात जास्त वापरता त्या साईट एका टॅप मध्ये मिळवा%1$sमेनू > मुख्य पृष्ठावर जोडा]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">प्रत्येक दुवा %1$s मध्ये उघडा\n%1$s ला पूर्वनिर्धारित ब्राउझर करा</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">सर्वात जास्त वापरलेल्या साईट च्या URL स्वयंपूर्ण करा\nकोणतीही URL पत्ता पट्टी मध्ये दीर्घकाळ दाबून धरा</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">एका नवीन टॅबमध्ये एक दुवा उघडा\n एका पृष्ठावर कोणताही दुवा दीर्घ-दाबून ठेवा</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">आरंभ पटलावर सूचना बंद करा</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">नवीन टॅब उघडले</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">स्विच करा</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">नवीन टॅबमध्ये दुवा त्वरित स्विच करा</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ms/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ms/strings.xml
new file mode 100644
index 0000000000..9a83b39902
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ms/strings.xml
@@ -0,0 +1,403 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <string name="action_cancel">Batal</string>
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Simpan</string>
+
+ <string name="urlbar_hint">Cari atau masukkan alamat</string>
+
+ <string name="teaser">Pelayaran peribadi automatik.\nLayar. Buang. Ulang.</string>
+
+ <string name="feedback_erase">Sejarah pelayaran anda telah dibuang.</string>
+
+ <string name="feedback_erase_custom_tab">Sejarah pelayaran tab telah dibuang.</string>
+
+ <string name="search_hint">Cari %1$s</string>
+
+ <string name="menu_share">Kongsi…</string>
+
+ <string name="menu_report_site_issue">Laporkan Isu Laman</string>
+
+ <string name="menu_open_with_default_browser2">Buka dalam %1$s</string>
+
+ <string name="menu_open_with_a_browser2">Buka dalam…</string>
+
+ <string name="menu_add_to_home_screen">Tambah ke Skrin Halaman utama</string>
+
+ <string name="menu_settings">Tetapan</string>
+ <string name="menu_about">Perihal</string>
+ <string name="menu_help">Bantuan</string>
+ <string name="menu_rights">Hak Anda</string>
+
+ <string name="menu_trackers_blocked_title">Penjejak disekat</string>
+
+ <string name="menu_trackers_blocked_subtitle">Menyahaktifkan ini boleh membetulkan beberapa masalah laman</string>
+
+ <string name="menu_content_blocking">Sekatan Kandungan</string>
+ <string name="menu_content_blocking_subtitle">Nyahaktifkan untuk membetulkan beberapa laman</string>
+
+ <string name="menu_custom_tab_branding">Dikuasakan oleh %1$s</string>
+
+ <string name="share_dialog_title">Kongsi via</string>
+
+ <string name="notification_erase_text">Buang sejarah pelayaran</string>
+
+ <string name="notification_action_open">Buka</string>
+
+ <string name="notification_action_erase_and_open">Buang dan Buka</string>
+
+ <string name="shortcut_erase_short_label">Buang</string>
+
+ <string name="shortcut_erase_long_label">Buang sejarah pelayaran</string>
+
+
+ <string name="shortcut_erase_and_open_short_label">Buang &amp; buka</string>
+
+ <string name="shortcut_erase_and_open_long_label">Buang dan buka %1$s</string>
+
+ <string name="preference_privacy_and_security_header">Privasi &amp; Keselamatan</string>
+
+ <string name="preference_privacy_and_security_summary">Penjejakan, kuki, pilihan data</string>
+
+ <string name="preference_search_summary">Tetapkan piawai, autolengkap</string>
+
+ <string name="preference_mozilla_summary">Perihal %1$s, bantuan</string>
+
+ <string name="preference_category_web_content">Kandungan Web</string>
+
+ <string name="preference_category_switching_apps">Aplikasi Penukaran</string>
+
+ <string name="preference_category_general">Umum</string>
+
+ <string name="preference_category_data_collection_use">Pengumpulan Data &amp; Penggunaan</string>
+
+ <string name="preference_category_search">Carian</string>
+
+ <string name="preference_show_search_suggestions">Dapatkan cadangan carian</string>
+ <string name="preference_show_search_suggestions_summary">%1$s akan menghantar apa yang anda taip dalam bar alamat kepada enjin carian</string>
+
+ <string name="preference_search_engine_default">Piawai</string>
+
+ <string name="preference_search_engine_label">Enjin carian</string>
+
+ <string name="preference_state_on">Aktif</string>
+
+ <string name="preference_state_off">Nyahaktif</string>
+
+ <string name="preference_subitem_autocomplete">Auto-lengkap URL</string>
+
+ <string name="preference_switch_autocomplete_topsites">Untuk Laman Teratas</string>
+
+ <string name="preference_switch_autocomplete_user_list">Untuk Laman Yang Anda Tambah</string>
+
+ <string name="preference_category_autocomplete_manage_sites">Urus laman</string>
+
+ <string name="preference_autocomplete_subitem_manage_sites">Urus laman</string>
+
+ <string name="preference_autocomplete_action_add">+ Tambah URL penyesuaian</string>
+
+ <string name="preference_autocomplete_title_add">Tambah URL penyesuaian</string>
+
+ <string name="custom_autocomplete_quick_add">Tambah URL penyesuaian</string>
+
+ <string name="add_custom_autocomplete_label">Tambah pautan untuk autolengkap</string>
+
+ <string name="preference_category_cookies">Kuki dan Data Laman</string>
+
+ <string name="preference_category_data_choices">Pilihan Data</string>
+
+ <string name="preference_autocomplete_title_remove">Buang URLs penyesuaian</string>
+
+ <string name="preference_autocomplete_learn_more">Ketahui selanjutnya</string>
+
+ <string name="preference_autocomplete_custom_summary">Tambah dan urus penyesuaian URL auto-lengkap.</string>
+
+ <string name="preference_autocomplete_add_title">URL untuk ditambah</string>
+
+ <string name="preference_autocomplete_add_hint">Tampal atau masukkan URL</string>
+
+ <string name="preference_autocomplete_add_example2">Contoh: mozilla.org</string>
+
+ <string name="preference_autocomplete_add_example">Contoh: example.com</string>
+
+ <string name="preference_autocomplete_add_confirmation">Penyesuaian URL baru ditambah.</string>
+
+ <string name="preference_autocomplete_menu_remove">Buang</string>
+
+ <string name="preference_autocomplete_action_remove_content_description">Buang</string>
+
+ <string name="preference_autocomplete_add_error">Semak semula URL yang anda masukkan.</string>
+
+ <string name="preference_language">Bahasa</string>
+ <string name="preference_language_systemdefault">Piawai sistem</string>
+
+ <string name="preference_category_privacy">Privasi</string>
+ <string name="preference_privacy_block_ads">Sekat penjejak iklan</string>
+ <string name="preference_privacy_block_ads_summary">Sesetengah iklan menjejaki lawatan anda dalam laman, walaupun anda tidak klik iklan</string>
+ <string name="preference_privacy_block_analytics">Sekat penjejak analitik</string>
+ <string name="preference_privacy_block_analytics_summary">Digunakan untuk mengumpul, menganalisis dan menilai aktiviti, seperti klik dan skrol</string>
+ <string name="preference_privacy_block_social">Sekat penjejak sosial</string>
+ <string name="preference_privacy_block_social_summary">Disisipkan di dalam laman untuk menjejaki lawatan anda dan memaparkan fungsi seperti butang kongsi</string>
+ <string name="preference_privacy_block_content">Sekat penjejak kandungan lain</string>
+ <string name="preference_privacy_block_content_summary2">Sesetengah halaman mungkin tidak berfungsi dengan sempurna jika ciri ini diaktifkan</string>
+ <string name="preference_privacy_category_cookies">Sekat kuki</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Sekat kuki penjejak pihak ke-3 sahaja</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Sekat kuki pihak ke-3 sahaja</string>
+
+ <string name="preference_security_biometric">Guna cap jari untuk membuka aplikasi</string>
+
+ <string name="preference_privacy_secure_mode">Halimunan</string>
+ <string name="preference_privacy_stealth_summary">Sorok halaman web apabila bertukar aplikasi dan sekat mengambil skrinsyot.</string>
+
+ <string name="preference_category_security">Keselamatan</string>
+
+ <string name="preference_category_performance">Prestasi</string>
+ <string name="preference_performance_block_webfonts">Sekat fon Web</string>
+ <string name="preference_performance_block_webfonts_summary">Boleh menyebabkan imej atau ikon hilang</string>
+
+ <string name="preference_performance_block_javascript">Sekat JavaScript</string>
+ <string name="preference_performance_block_javascript_summary">Halaman dimuatkan lebih cepat, tetapi mungkin ada yang tidak dijangka</string>
+
+ <string name="preference_default_browser2">Jadikan %1$s pelayar piawai</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Hantar data penggunaan</string>
+
+ <string name="preference_mozilla_telemetry_summary">Ketahui selanjutnya</string>
+
+ <string name="preference_mozilla_telemetry_summary2">Mozilla mengumpulkan hanya yang diperlukan untuk menyedia dan meningkatkan %1$s.</string>
+
+ <string name="preference_privacy_notice">Notis Privasi</string>
+
+ <string name="preference_about">Perihal %1$s</string>
+
+ <string name="preference_search_installed_search_engines">Enjin carian dipasang</string>
+
+ <string name="preference_search_restore">Pulih enjin carian piawai</string>
+
+ <string name="preference_search_add2">+ Tambah enjin carian lain</string>
+ <string name="preference_search_remove_title">Buang enjin carian</string>
+ <string name="preference_search_remove">Buang</string>
+
+ <string name="action_option_add_search_engine">Tambah enjin carian</string>
+
+ <string name="search_add_manually_name_hint">Nama enjin carian</string>
+ <string name="search_add_manually_string">Cari string yang mahu digunakan</string>
+ <string name="search_add_manually_save">Simpan</string>
+
+ <string name="search_add_manually_example">Contoh: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Enjin carian baru sudah ditambah.</string>
+
+ <string name="search_add_error_empty_name">Masukkan nama enjin carian</string>
+ <string name="search_add_error_duplicate_name">Enjin carian yang dipasang sudah menggunakan nama itu.</string>
+
+ <string name="search_add_error_empty_search">Masukkan string carian</string>
+
+ <string name="search_add_error_format">Pastikan string carian sepadan format contoh</string>
+
+ <string name="content_description_clear_input">Hapuskan input</string>
+
+ <string name="content_description_dismiss_input">Abai</string>
+
+ <string name="content_description_erase">Buang sejarah pelayaran</string>
+
+ <string name="content_description_tab_counter">Tab terbuka: %1$s</string>
+
+ <string name="content_description_lock">Sambungan selamat</string>
+
+ <string name="accessibility_announcement_loading">Memuatkan</string>
+
+ <string name="accessibility_announcement_loading_finished">Laman web dimuatkan</string>
+
+ <string name="content_description_menu">Pilihan lain</string>
+
+ <string name="indicator_content_description_menu">Butang pilihan lain</string>
+
+ <string name="content_description_forward">Navigasi depan</string>
+
+ <string name="content_description_reload">Muat semula laman web</string>
+
+ <string name="content_description_back">Navigasi undur</string>
+
+ <string name="content_description_stop">Hentikan memuat laman web</string>
+
+ <string name="content_description_customtab_exit">Kembali ke aplikasi dahulu</string>
+
+ <string name="content_description_trackers_blocked">Bilangan penjejak disekat</string>
+
+ <string name="content_description_blocking_switch">Sekat penjejak</string>
+
+ <string name="your_rights">Hak Anda</string>
+
+ <string name="external_app_prompt_title">Buka pautan guna aplikasi lain</string>
+ <string name="external_app_prompt">Anda boleh keluar dari %1$s untuk membuka pautan ini dalam %2$s.</string>
+ <string name="external_app_prompt_no_app_title">Cari aplikasi yang boleh buka pautan</string>
+ <string name="external_app_prompt_no_app">Tiada aplikasi pada peranti anda dapat membuka pautan ini. Anda boleh tinggalkan %1$s untuk mencari %2$s aplikasi yang boleh melaksanakannya.</string>
+ <string name="external_multiple_apps_matched_exit">Tamatkan Pelayaran Peribadi?</string>
+
+ <string name="download_snackbar_finished">%1$s sudah siap</string>
+
+ <string name="download_snackbar_open">Buka</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Pelayan tidak ditemui</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <string name="firstrun_defaultbrowser_title">Tingkatkan privasi anda</string>
+ <string name="firstrun_defaultbrowser_text2">Membawa pelayaran peribadi ke tahap seterusnya, Sekat iklan dan kandungan lain yang menjejaki anda di serata laman dan melambatkan tempoh memuatkan halaman.</string>
+
+ <string name="firstrun_search_title">Carian anda, cara anda</string>
+ <string name="firstrun_search_text">Mencari sesuatu yang berlainan? Pilih enjin piawai lain dalam Tetapan.</string>
+
+ <string name="firstrun_shortcut_title">Letakkan pintasan dalam skrin utama</string>
+ <string name="firstrun_shortcut_text">Kembali ke laman kegemaran anda dalam %1$s dengan pantas. Hanya pilih \&quot;Tambah ke skrin Utama\&quot; dari dalam menu %1$s.</string>
+
+ <string name="firstrun_privacy_title">Jadikan privasi satu tabiat</string>
+ <string name="firstrun_privacy_text">Tetapkan %1$s sebagai pelayar piawai anda dan dapatkan manfaat daripada pelayaran peribadi apabila anda buka pautan halaman web dari aplikasi lain.</string>
+
+ <string name="firstrun_close_button">OK, faham!</string>
+ <string name="firstrun_skip_button">Langkau</string>
+ <string name="firstrun_next_button">Seterusnya</string>
+
+ <string name="content_blocking_disabled">-</string>
+
+ <string name="dialog_addtohomescreen_action_add">Tambah</string>
+
+ <string name="dialog_addtohomescreen_action_cancel">Batal</string>
+
+ <string name="notification_browsing_session_channel_name">Sesi pelayaran peribadi</string>
+
+ <string name="notification_browsing_session_channel_description">Anda boleh buang sesi %1$s dengan menekan notifikasi. Tidak perlu buka aplikasi atau lihat kandungan dalam pelayar.</string>
+
+ <string name="tabs_tray_action_erase">Buang sejarah pelayaran</string>
+
+ <string name="download_firefox">Muat turun Firefox</string>
+
+ <string name="your_rights_content1">%1$s adalah perisian percuma dan sumber terbuka yang dihasilkan oleh Mozilla dan para penyumbang lain.</string>
+
+
+
+
+ <string name="gv_prompt_username_hint">Nama pengguna</string>
+ <string name="gv_prompt_password_hint">Kata laluan</string>
+ <string name="gv_prompt_clear">Buang</string>
+
+ <string name="security_popup_secure_connection">Sambungan Selamat</string>
+ <string name="security_popup_insecure_connection">Sambungan Tidak Selamat</string>
+ <string name="security_popup_security_verified">Disahkan oleh: %1$s</string>
+
+ <string name="site_security_icon_content_description">Keselamatan Laman</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL sudah wujud</string>
+
+ <string name="find_in_page">Cari dalam Halaman</string>
+
+ <string name="find_in_page_input">Cari dalam halaman</string>
+
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <string name="accessibility_find_in_page_result">%1$d daripada %2$d</string>
+
+ <string name="accessibility_next_result">Cari hasil seterusnya</string>
+ <string name="accessibility_previous_result">Cari hasil dahulu</string>
+ <string name="accessibility_dismiss_find_in_page">Batal cari dalam halaman</string>
+
+
+
+ <string name="preference_performance_request_desktop_site">Pinta laman desktop</string>
+
+ <string name="custom_tab_copy_url_action">URL disalin</string>
+
+ <string name="preference_advanced_summary">Alatan pembangun</string>
+
+ <string name="preference_category_advanced">Lanjutan</string>
+
+ <string name="preference_remote_debugging">Nyahpepijat jauh via USB/Wi-Fi</string>
+
+ <string name="biometric_auth_image_description">Ikon cap jari</string>
+
+ <string name="biometric_auth_not_recognized_error">Cap jari tidak dikenali. Cuba lagi.</string>
+
+ <string name="biometric_auth_moved_too_quickly">Jari digerak terlalu pantas. Cuba lagi.</string>
+
+ <string name="enable_search_suggestions_no">Tidak</string>
+
+ <string name="enable_search_suggestions_yes">Ya</string>
+
+ <string name="no_suggestions_message">Sesetengah enjin carian tidak dapat menunjukkan cadangan.</string>
+
+ <string name="dismiss_no_suggestions_prompt_button">Abai</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <string name="tip_disable_tracking_protection">Laman berkelakuan tidak dijangka?\n Cuba nyahaktifkan Perlindungan Penjejakan</string>
+
+ <string name="tip_add_to_homescreen">Dapatkan akses sekali-sentuh ke laman yang kerap dilawati%1$s Menu &gt; Tambah ke skrin Utama</string>
+
+ <string name="tip_set_default_browser">Buka pautan dalam %1$s\n Tetapkan %1$s sebagai pelayar piawai</string>
+
+ <string name="tip_autocomplete_url">Autolengkap URL untuk laman yang kerap dilawati\n Tekan lama-lama URL dalam bar alamat</string>
+
+ <string name="tip_open_in_new_tab">Buka pautan dalam tab baru\n Tekan lama-lama pautan atau halaman</string>
+
+ <string name="tip_disable_tips2">Nyahaktifkan panduan pada skrin mula</string>
+
+ <string name="new_tab_opened_snackbar">Tab baru dibuka</string>
+
+ <string name="open_new_tab_snackbar">Tukar</string>
+
+ <string name="preference_open_new_tab">Tukar ke pautan dalam tab baharu dengan segera</string>
+
+ <string name="preference_safe_browsing_title">Sekat laman yang berpotensi berbahaya dan menipu</string>
+ <string name="preference_safe_browsing_summary">Sekat laman yang dilaporkan menipu dan menyerang, laman perisian hasad dan laman perisian yang tidak diingini.</string>
+
+ <string name="preference_exceptions">Pengecualian</string>
+ <string name="preference_exceptions_description">Anda telah nyahaktifkan Sekatan Kandungan untuk laman web ini.</string>
+ <string name="preference_exceptions_menu_remove">Buang</string>
+ <string name="preference_exceptions_remove_all_button_label">Buang semua laman web</string>
+
+ <string name="tab_crash_report_title">Tab Ranap</string>
+ <string name="tab_crash_report_headline">Maaf. Kami ada masalah dengan tab ini.</string>
+ <string name="tab_crash_report_description">Sebagai pelayar peribadi, kami tidak pernah menyimpan dan tidak boleh memulihkan tab ini.</string>
+ <string name="tab_crash_report_close_tab_button_label">Tutup Tab</string>
+
+
+
+
+ <string name="crash_report_send_crash_label">Hantar laporan ranap ke Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-my/strings.xml b/mobile/android/focus-android/app/src/main/res/values-my/strings.xml
new file mode 100644
index 0000000000..6d7813f453
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-my/strings.xml
@@ -0,0 +1,634 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">မလုပ်ဆောင်တော့ပါ</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ကောင်းပြီ</string>
+
+ <string name="action_save">သိမ်းရန်</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">ရှာဖွေပါ သို့မဟုတ် လိပ်စာရိုက်ပါ</string>
+
+ <string name="teaser">အလိုအလျောက် တစ်ကိုယ်ရေသုံး၊ \nသုံးပြီးဖျက်</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">သင့် ဘယောက်ဆာသုံး မှတ်တမ်းဖျက်ပြီး</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">ကြည့်ရှုမှတ်တမ်းကို ရှင်းလင်းထားသည်။</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s ကိုရှာမယ်</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">မျှဝေပါ…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">ဆိုက်ပြဿနာကို သတင်းပို့ရန်</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s တွင်ဖွင့်ပါ</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">…တွင် ဖွင့်ရန်</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">ပင်မစာမျက်နှာသို့ ထည့်ပါ</string>
+
+ <string name="menu_settings">အပြင်အဆင်များ</string>
+ <string name="menu_about">အကြောင်း</string>
+ <string name="menu_help">အကူအညီ</string>
+ <string name="menu_rights">သင်၏ အခွင့်အရေးများ</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">နောက်ယောင်ခံများကို တားဆီးထား</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">ယခုလုပ်ဆောင်ချက်ကို ပိတ်ခြင်းသည် အချို့သော ဝဘ်ဆိုက်များကို ကောင်းမွန်စွာ ဆောင်ရွက်နိုင်စေသည်</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">အကြောင်းအရာ ပိတ်ပင်ခြင်း</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">အချို့သောဝဘ်ဆိုက်များအတွက် ပိတ်ပါ</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s ထောက်ပံ့ပေးထားတယ်</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">မျှဝေရန်</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">ကြည့်ရှုမှုမှတ်တမ်းကို ရှင်းလင်းရန်</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">ဖွင့်ပါ</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">ဖျက်ပြီး ဖွင့်ပါ</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">ရှင်းလင်းရန်</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">ကြည့်ရှုမှုမှတ်တမ်းကို ရှင်းလင်းရန်</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">ဖျက်ပြီးဖွင့်ပါ</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">%1$s ကို ဖျက်ပြီး ဖွင့်ပါ</string>
+
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">ကိုယ်ရေးကာကွယ်မှုနှင့် လုံခြုံရေး</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">ကွတ်ကီးများ ခြေရာခံခြင်း နှင့် ဒေတာအသုံးပြုခြင်းဆိုင်ရာ ရွေးချယ်မှုများ</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">ပုံသေထား၊ အလိုအလျောက်ဖြည့်စွက်</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s အကြာင်း၊ ကူညီမှု</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">ဝတ်ဘ်စာကိုယ်</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">အက်ပ်များ ဖွင့်ခြင်း</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">အထွေထွေ</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">ဒေတာစုစည်းမှုနှင့်အသုံးပြုမှု</string>
+
+ <string name="preference_category_search">ရှာဖွေရန်</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">ရှာဖွေရေး အကြံပေးချက်များ ရယူရန်</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">လိပ်စာဘားတန်းတွင် ရိုက်သမျှကို %1$s သည် ရှာဖွေရေးယန္တရားသို့ ပေးပို့ပါမည်။</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">မူလသတ်မှတ်ချက်</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">ရှာဖွေရေး ယန္တရား</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">ဖွင့်ပါ</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">ပိတ်ပါ</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL အလိုအလျောက်ဖြည့်စွက်</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">ထိပ်တန်းဆိုက်များအတွက်</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">သင်ရွေးချယ်ထားသော ဝဘ်ဆိုက်များအတွက်</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">ဝဘ်ဆိုက်များကို စီမံရန်</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">ဝဘ်ဆိုက်များကို စီမံရန်</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ စိတ်ကြိုက် URLs တိုးရန်</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">စိတ်ကြိုက် URLs တိုးရန်</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">စိတ်ကြိုက် URLs တိုးရန်</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">အလိုအလျက်ဖြည့်ရန် လင့်ကို ထည့်ပေးပါ</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">ကွတ်ကီးများနှင့် ဝဘ်ဆိုက် အချက်အလက်</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">ဒေတာအသုံးပြုရန် ရွေးချယ်မှုများ</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">စိတ်ကြိုက် URLs ဖယ်ရှားရန်</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">ပိုမိုလေ့လာရန်</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">URLs ကို စိတ်ကြိုက် ပေါင်းထည့် စီမံပါ</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">တိုးမဲ့ URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">URL ကို ကူးယူ သို့မဟုတ် ဝင်ပါ</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Example: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Example: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">စိတ်ကြိုက်အသစ် URL ပေါင်းထည့်ခဲ့သည်</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">ဖယ်ရှားပါ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">ဖယ်ရှားပါ</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">ဝင်ထားသော URL ကို ပြန်လည်စစ်ဆေးပါ</string>
+
+ <string name="preference_language">ဘာသာစကား</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">စနစ် သတ်မှတ်ချက်</string>
+
+ <string name="preference_category_privacy">ကိုယ်ပိုင်လွတ်လပ်ခွင့်</string>
+ <string name="preference_privacy_block_ads">ကြော်ငြာနောက်ယောက်ခံ ကိရိယာများကို ပိတ်ပင်ပါ</string>
+ <string name="preference_privacy_block_ads_summary">အချို့သော ကြော်ငြာများသည် ၎င်းတို့ကို ကလစ်နှိပ်ခြင်း မပြုလုပ်ပါပဲနှင့် ဆိုက်များကြည့်ရှုခြင်းကို မှတ်သားသည်။</string>
+ <string name="preference_privacy_block_analytics">သရုပ်ခွဲလေ့လာသည့် နောက်ယောင်ခံကိရိယာများကို ပိတ်ပင်ပါ</string>
+ <string name="preference_privacy_block_analytics_summary">တို့ထိခြင်း၊ အထက်/အောက်ရွှေ့ခြင်း စသည့် လှုပ်ရှားမှုများကို စုဆောင်းရန်၊ ပိုင်းခြားစိတ်ဖြာရန်နှင့် တိုင်းတာရန်အတွက် အသုံးပြုသည်။</string>
+ <string name="preference_privacy_block_social">လူမှုမီဒီယာ နောက်ယောင်ခံကိရိယာများကို ပိတ်ပင်ပါ</string>
+ <string name="preference_privacy_block_social_summary">ဝဘ်ဆိုက်များတွင် မြှုပ်ထည့်ထားခြင်းသည် လည်ပတ်ခြင်းကို မှတ်သားရန်နှင့် မျှဝေခလုတ်များကဲသို့ လုပ်ဆောင်မှုများကို ပြသရန်အတွက် ဖြစ်သည်။</string>
+ <string name="preference_privacy_block_content">အခြားသော အကြောင်းအရာနောက်ယောက်ခံကိရိယာများကို ပိတ်ပင်ပါ</string>
+ <string name="preference_privacy_block_content_summary2">လုပ်ဆောင်ချက်ကို ဖွင့်လိုက်ခြင်းသည် အချို့သော ဝဘ်စာမျက်နှာများ၏ လုပ်ဆောင်ချက်များကို ထိခိုက်စေနိုင်သည်။</string>
+ <string name="preference_privacy_category_cookies">ကွတ်ကီးများကို ဖျောက်ထားပါ</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">အခြားသူများ၏ နောက်ယောင်ခံ ကိရိယာများကိုသာ တားဆီးပါ</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">ပြင်ပကွက်ကီးများကို မသိမ်းပါနှင့်</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">အက်ပ်ကို ဖွင့်ရန် လက်ဗွေကို အသုံးပြုပါ</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">တိတ်တဆိတ်အသုံးပြုမှု</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">အက်ပ်များကို ပြောင်းလဲအသုံးပြုနေစဉ် ဝဘ်စာမျက်နှာများကို မပြပါနှင့်။ ထို့ပြင် မျက်နှာပြင်ပုံရိပ်ဖမ်းခြင်းကို တားဆီးပါ။</string>
+
+ <string name="preference_category_security">လုံခြုံရေး</string>
+
+ <string name="preference_category_performance">လုပ်ဆောင်မှု</string>
+ <string name="preference_performance_block_webfonts">ဝဘ်ဖောင့်များကို ပိတ်ပင်ပါ</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">အိုင်ကွန်များ သို့မဟုတ် ရုပ်ပုံများမပေါ်ခြင်း ဖြစ်စေနိုင်သည်</string>
+
+ <string name="preference_performance_block_javascript">JavaScript ကိုပိတ်ဆို့ရန်</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">စာမျက်နှာများ မြန်ဆန်စွာ ဆွဲတင်သော်လည်း မှန်ကန်စွာ အလုပ်မလုပ်ပါ</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s ကို ပုံသေအသုံးပြုမည့် ဘရောင်ဇာအဖြစ် သတ်မှတ်ပါ</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">အသုံးပြုမှုဆိုင်ရာ အချက်အလက်များကို ပေးပို့ရန်</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">ပိုမိုလေ့လာရန်</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla သည် လူတိုင်းအတွက် %1$s ကို ပေးစွမ်းရန်နှင့် တိုးတက်ကောင်းမွန်စေရန်အတွက်သာ ကောက်ခံမှုပြုခြင်း ဖြစ်ပါသည်။</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">ကိုယ်ရေးကာကွယ်မှု သတိပေးချက်</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s အကြောင်း</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">သွင်းထားသော ရှာဖွေအင်ဂျင်များ</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">ပုံသေ ရှာဖွေအင်ဂျင်များကို မူလအတိုင်း ပြန်သတ်မှတ်ပါ</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ အခြားရှာဖွေအင်ဂျင်ကို ထပ်ထည့်ပါ</string>
+ <string name="preference_search_remove_title">ရှာဖွေအင်ဂျင်များ ဖယ်ရှားပါ</string>
+ <string name="preference_search_remove">ဖယ်ရှားပါ</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">ရှာဖွေရေး အင်ဂျင် တိုးရန်</string>
+
+ <string name="search_add_manually_name_hint">အင်ဂျင်နာမည် ရှာဖွေပါ</string>
+ <string name="search_add_manually_string">အသုံးပြုရန် စာကြောင်းရှာဖွေပါ</string>
+ <string name="search_add_manually_save">သိမ်းဆည်းပါ</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Example: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">ရှာဖွေအင်ဂျင်အသစ် ထည့်ခဲ့သည်</string>
+
+ <string name="search_add_error_empty_name">ရှာဖွေအင်ဂျင်နာမည် ဝင်ပါ</string>
+ <string name="search_add_error_duplicate_name">သွင်းပြီးရှာဖွေအင်ဂျင်ကို ဒီနာမည်ဖြင့် အသုံးပြုပြီးဖြစ်သည်</string>
+
+ <string name="search_add_error_empty_search">စာကြောင်းဖြင့် ရှာဖွေဝင်ရောက်ပါ</string>
+
+ <string name="search_add_error_format">ရှာဖွေစာကြောင်း ဥပမာပုံစံဖြင့် ကိုက်ညီမှုရှိမရှိ စစ်ဆေးပါ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Input ကို ရှင်းလင်းရန်</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">ပိတ်ရန်</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">ကြည့်ရှုမှုမှတ်တမ်းကို ရှင်းလင်းရန်</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">ဖွင့်ထားသော တပ်ဗ်များ။ %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">လုံခြုံသော ချိတ်ဆက်မှု</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">ဆောင်ရွက်နေသည်</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">ဝဘ်ဆိုက်ကို ဖွင့်ပြီးပြီ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">နောက်ထပ် ရွေးချယ်စရာများ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">အခြားဆောင်ရွက်နိုင်သည်များ ခလုတ်</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">ရှေ့သို့ သွားပါ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">ဝဘ်ဆိုက်ကို ပြန်ဖွင့်ပါ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">နောက်သို့ သွားပါ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">ဝဘ်ဆိုက်ဖွင့်ခြင်းကို ရပ်ပါ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">အရင်ကအက်ပ်သို့ သွားပါ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">တားဆီးထားသော ခြေရာခံကိရိယာ အရေအတွက်</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">နောက်ယောင်ခံများကို တားဆီးပါ</string>
+
+ <string name="your_rights">သင်၏ အခွင့်အရေးများ</string>
+
+ <string name="external_app_prompt_title">အခြားအက်ပ်တွင် လင့်ခ်ကို ဖွင့်ပါ</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">%2$s တွင် ယခုလင့်ခ်ကို ဖွင့်ရန် %1$s ထံမှ ထွက်ခွာနိုင်ပါသည်။</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">လင့်ခ်ကို ဖွင့်နိုင်သော အက်ပ်ကို ရှာပါ</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">ယခုလင့်ခ်ကို ကိရိယာရှိ မည်သည့်အက်ပ်မျှ မဖွင့်နိုင်ပါ။ ၎င်းကို ဖွင့်နိုင်သည့်အက်ပ် %2$s တွင် ရှာဖွေရန် %1$s ထံမှ ထွက်ခွာနိုင်ပါသည်။</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">လုံခြုံစွာ ဝဘ်ဆိုက်ကြည့်ရှုခြင်းမှ ထွက်ပါမည်လား။</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s ကို ဆွဲယူခြင်း ပြီးဆုံးပါပြီ</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">ဖွင့်ပါ</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">ဆာဗာကို မတွေ့ပါ</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">ကိုယ်ရေးကာကွယ်မှုကို တိုးမြှင့်ပါ</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">သီးသန့်ကြည့်ရှုမှုကို ပိုမိုကောင်းမွန်စေပါ။ စာမျက်နှာဖွင့်ချိန်ကို ကြာမြင့်စေနိုင်သော ကြော်ငြာများနှင့် ဆိုက်များကတဆင့် နောက်ယောင်ခံနိုင်သော အကြောင်းအရာတို့ကို ပိတ်ပင်တားဆီးပါ။</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">ကိုယ့်နည်းကိုယ့်ဟန် အသုံးပြုမည်</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">အခြား မူသေရှာဖွေရေးယန္တရားကို အသုံးပြုလိုပါသလား။ အပြင်အဆင်များတွင် နှစ်သက်ရာကို ရွေးပါ။</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">အမြန်သုံးလင့်ခ်ကို မူလစာမျက်နှာသို့ ထည့်ပါ</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">%1$s တွင် သင်နှစ်သက်သော ဆိုက်များသို့ လျင်မြန်စွာ ပြန်လည်သွားရောက်နိုင်ပါသည်။ %1$s မီနူးထဲမှ \&quot;မူလစာမျက်နှာသို့ ထည့်ပါ\&quot; ကို ရွေးရန်သာ ဖြစ်သည်။</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">ကိုယ်ရေးလုံခြုံမှုကို နေ့စဉ် ဆောင်ရွက်ပါ</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">%1$s ကို မူသေဘရောင်ဇာအဖြစ် သတ်မှတ်ပါ။ ထို့ပြင် အခြားအက်ပ်များကနေ ဝဘ်စာမျက်နှာများ ကြည့်ရှုသည့်အခါ သီးသန့်လည်ပတ်ခြင်း၏ အကျိုးကျေးဇူးများကို ရယူအသုံးပြုပါ။</string>
+
+ <string name="firstrun_close_button">ကောင်းပြီ၊ ရပါပြီ။</string>
+ <string name="firstrun_skip_button">ကျော်ရန်</string>
+ <string name="firstrun_next_button">ရှေ့သို့</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">ထည့်ရန်</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">မလုပ်ဆောင်တော့ပါ</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">သီးသန့်ကြည့်နေစဉ်ကာလ</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">အသိပေးချက်များသည် သင့် %1$s အသုံးပြုကာလကို တို့ထိရုံဖြင့် ဖယ်ရှားနိုင်စေသည်။ အက်ပ်ကို ဖွင့်ရန် သို့မဟုတ် ဘရောင်ဇာထဲတွင် ဖွင့်ထားသည်များကို ကြည့်ရန် မလိုအပ်ပါ။</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">လည်ပတ်မှတ်တမ်းကို ရှင်းလင်းရန်</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox ကို ဆွဲယူရန်</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s သည် Mozilla နှင့် အခြားကူညီပံ့ပိုးသူများက ပြုလုပ်ထားသော အခမဲ့နှင့် ပွင့်လင်းရင်းမြစ်ဆော့ဖ်ဝဲလ် ဖြစ်ပါသည်။]]></string>
+
+
+
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">သုံးစွဲသူ အမည်</string>
+ <string name="gv_prompt_password_hint">စကားဝှက်</string>
+ <string name="gv_prompt_clear">ရှင်းလင်းပါ</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">လုံခြုံသော ချိတ်ဆက်မှု</string>
+ <string name="security_popup_insecure_connection">မလုံခြုံသော ချိတ်ဆက်မှု</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">%1$s မှစစ်ဆေးပြီး</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">ဆိုက် လုံခြုံရေး</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL ရှိပြီးပြီ။</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">စာမျက်နှာထဲတွင် ရှာပါ</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">စာမျက်နှာထဲတွင် ရှာပါ</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%2$d ရဲ့ %1$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">နောက်ထပ်ရလဒ် ရှာပါ</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">ပြီးခဲ့သည့်ရလဒ် ရှာပါ</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">စာမျက်နှာတွင် ရှာဖွေမှု ဖယ်ထုတ်ပါ</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">ဒတ်စ်တောခ့်ဆိုက်ကို တောင်းပါ</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL ကူးခဲ့သည်</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">ကျွမ်းကျင်သူသုံး ကိရိယာ</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">အဆင့်မြင့်</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">USB/Wi-Fi မှတဆင့် Remote debugging</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">လက်ဗွေပုံငယ်</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">လက်ဗွေကို မသိပါ။ ထပ်မံ ကြိုးစားကြည့်ပါ။</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">လက်ချောင်းရွှေ့ခြင်း မြန်လွန်းသည်။ ထပ်မံ ကြိုးစားကြည့်ပါ။</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">မလုပ်တော့ပါ</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">လုပ်မည်</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">အချို့သော ရှာဖွေရေးအင်ဂျင်များသည် အကြံပေးချက်များကို မပြသပေးနိုင်ပါ။</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">ဖြုတ်ရန်</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">ဝဘ်ဆိုက်သည် မူမမှန်ဖြစ်နေပါသလား။\n ခြေရာခံကာကွယ်မှုစနစ်ကို ပိတ်ပြီး ပြန်စမ်းကြည့်ပါ။</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[အသုံးများသောဆိုက်များကို တစ်ကြိမ်နှိပ်ပြီး သွားရောက်နိုင်ရန် %1$s မီနူး > စတင်အသုံးပြုရာ ဖန်သားပြင်သို့ ပို့ပါ]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">%1$s ရှိ လင့်ခ်တိုင်းကို ဖွင့်ပါ\n %1$s ကို မူသေဘရောက်ဇာအဖြစ် သတ်မှတ်ပါ</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">သင်အသုံးပြုများသော ဆိုက်များ၏ URLs ကို အလိုအလျောက်ဖြည့်ပါမည်\n လိပ်စာဘားတန်းထဲတွင် မည်သည့် URL ကိုမဆို ကြာကြာဖိပြီး ဖွင့်နိုင်သည်</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">လင့်ခ်ကို တဗ်ပ်အသစ်တွင် ဖွင့်ပါ\n စာမျက်နှာရှိ မည်သည့်လင့်ခ်တွင်မဆို ကြာကြာဖိပြီး ဖွင့်နိုင်သည်</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">စတင်အသုံးရန် မျက်နှာပြင်တွင် အကြံပြုချက်များ ပြသခြင်းကို ပိတ်ပါ</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">တပ်ဗ်အသစ် ဖွင့်ထားသည်</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">ပြောင်းလဲအသုံးပြုရန်</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">လင့်ခ်ကို ချက်ခြင်း တပ်ဗ်အသစ်ထဲတွင် အသုံးပြုရန်</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">အန္တရာယ်ရှိပြီး လှည့်ဖြားတတ်သည့် ဝဘ်ဆိုက်များကို တားဆီးပါ</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">အစီရင်ခံစာတင်ထားသော တိုက်ခိုက်မှုပြုတတ်သည့်ဆိုက်များကို ဖျောက်ပါ</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">ခြွင်းချက်များ</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">သင်သည် ထိုဝဘ်ဆိုက်များအတွက် Content Blocking ကို ပိတ်ထားသည်။</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">ဖယ်ရှားပါ</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">ဝဘ်ဆိုက်အားလုံးကို ဖယ်ရှားပါ</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">တပ်ဗ် ရပ်ဆိုင်းသွားသည်</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">ဝမ်းနည်းပါတယ်။ ယခုတပ်ဗ်တွင် ပြဿနာတစ်ခု ရှိနေပါသည်။</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">တစ်ကိုယ်ရေသုံး ဘရောင်ဇာတစ်ခု ဖြစ်သည့်အတွက် ယခုတပ်ဗ်ဆိုင်ရာ မှတ်တမ်းများကို မသိမ်းပါ၊ ထို့ပြင် ၎င်းတပ်ဗ်ကို ပြန်၍ဖွင့်မရနိုင်ပါ။</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">တပ်ဗ်ကို ပိတ်ပါ</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Mozillaသို့ ပျက်စီးမှုအစီရင်ခံစာပို့ပါ</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-nb-rNO/strings.xml b/mobile/android/focus-android/app/src/main/res/values-nb-rNO/strings.xml
new file mode 100644
index 0000000000..ad4b98e217
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-nb-rNO/strings.xml
@@ -0,0 +1,1117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Avbryt</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Lagre</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Søk eller oppgi adresse</string>
+
+ <string name="teaser">Automatisk privat nettlesing.\nSurf. Slett. Gjenta.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Din nettleserhistorikk har blitt slettet.</string>
+ <string name="feedback_erase2">Nettleserhistorikk er slettet</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Fanens nettleserhistorikk har blitt slettet.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Søk etter %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Del …</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Rapporter problem med nettsted</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Åpne i %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Åpne i…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Legg til på startskjermen</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Legg til i snarveier</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Fjern fra snarveier</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Innstillinger</string>
+ <string name="menu_about">Om</string>
+ <string name="menu_help">Hjelp</string>
+ <string name="menu_rights">Dine rettigheter</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Sporere blokkert</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Hvis du slår av dette, kan det løse noen problemer med nettsiden</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Innholdsblokkering</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Slå av for å fikse noen nettsteder</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Drevet av %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Del via</string>
+
+ <string name="notification_erase_title_android_14">Slett nettleserhistorikk?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Trykk eller fjern dette varselet for å slette nettleserhistorikken din på en sikker måte.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Trykk eller sveip dette varselet for å slette nettleserhistorikken din på en sikker måte.</string>
+
+ <string name="notification_erase_text">Slett nettleserhistorikk</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Åpne</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Slett og åpne</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Slett</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Slett nettleserhistorikk</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Slett og åpne</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Slett og åpne %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Søk med Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Søk med Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Søk med Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Søk med Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s gir deg kontroll.</p>
+<p>Bruk den som en privat nettleser:
+ <ul>
+ <li>Søk og surf rett i appen</li>
+ <li>Blokker sporere (eller oppdater innstillingene for å tillate sporere)</li>
+ <li>Slett for å fjerne infokapsler samt søk- og nettleserhistorikk</li>
+ </ul>
+</p>
+<p>%1$s er produsert av Mozilla. Vårt oppdrag er å fremme et sunt, åpent Internett.<br/>
+<a href="%2$s">Les mer</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Personvern og sikkerhet</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Sporing, infokapsler, datavalg</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Sett standard, autofullfør</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Om %1$s, hjelp</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Utvidet sporingsbeskyttelse</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Nettinnhold</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Bytte mellom apper</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Generelt</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Standard nettleser, språk</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Datainnsamling og bruk</string>
+
+ <string name="preference_category_search">Søk</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Få søkeforslag</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s sender det du skriver i adressefeltet til din søkemotor</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Standard</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Søkemotor</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">På</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Av</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Autofullfør nettadresse</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">For toppnettsteder</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Aktiver at %s autofullfører over 450 populære nettadresser i adressefeltet.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">For nettsteder du legger til</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Aktiver for å få %s til å autofullføre dine foretrukne nettadresser.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Behandle nettsteder</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Behandle nettsteder</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Legg til tilpasset nettadresse</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Din liste over autofullføringer:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Legg til URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Legg til tilpasset nettadresse</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Legg til tilpasset nettadresse</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Legg til lenke til autofullfør</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Infokapsler og nettstedsdata</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Datavalg</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Fjern tilpassede nettadresser</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Les mer</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Legg til og administrer tilpassede nettadresser for autofullføring.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Nettadresse å legge til</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Lim inn eller skriv inn nettadresse</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Eksempel: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Eksempel: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Ny tilpasset nettadresse lagt til.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Fjern</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Fjern</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Dobbeltsjekk nettadressen du skrev inn.</string>
+
+ <string name="preference_language">Språk</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Systemstandard</string>
+
+ <string name="preference_category_privacy">Personvern</string>
+ <string name="preference_privacy_block_ads">Blokker reklamesporere</string>
+ <string name="preference_privacy_block_ads_summary">Noen annonser sporer nettstedbesøk, selv om du ikke klikker på annonsene</string>
+ <string name="preference_privacy_block_analytics">Blokker analysesporere</string>
+ <string name="preference_privacy_block_analytics_summary">Brukt for å samle inn, analysere og måle aktiviteter som tastetrykk og rulling</string>
+ <string name="preference_privacy_block_social">Blokker sosiale media-sporere</string>
+ <string name="preference_privacy_block_social_summary">Innebygd på nettsteder for å spore besøkene dine og å vise funksjonalitet som dele-knapper</string>
+ <string name="preference_privacy_block_content">Blokker andre innholdssporere</string>
+ <string name="preference_privacy_block_content_summary2">Aktivering kan føre til at noen sider oppfører seg uventet</string>
+ <string name="preference_privacy_category_cookies">Blokker infokapsler</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Nei takk</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Blokker bare tredjepartssporingsinfokapsler</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Blokker bare tredjepartsinfokapsler</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blokker infokapsler på tvers av nettsteder</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ja takk</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Bruk fingeravtrykk til å låse opp appen</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Lås opp med fingeravtrykk hvis du har lagt til snarveier eller når et nettsted allerede er åpent i %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Usynlig</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Skjul nettsider når du bytter apper og unngå at det tas skjermbilder.</string>
+
+ <string name="preference_category_security">Sikkerhet</string>
+
+ <string name="preference_category_performance">Ytelse</string>
+ <string name="preference_performance_block_webfonts">Blokker nettfonter</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Kan resultere i at ikon eller bilder mangler</string>
+
+ <string name="preference_performance_block_javascript">Blokker JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Sider kan lastes raskere, men kan også oppføre seg uventet</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Bruk %1$s som standard nettleser</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Send bruksdata</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Les mer</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla strever etter å bare samle inn det vi trenger for å tilby og forbedre %1$s for alle.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Personvernbestemmelser</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Lisensinformasjon</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliotek som vi bruker</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS-bibliotek</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Om %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Installerte søkemotorer</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Velg søkemotor</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Gjenopprett standard søkemotorer</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Legg til en annen søkemotor</string>
+ <string name="preference_search_remove_title">Fjern søkemotorer</string>
+ <string name="preference_search_remove">Fjern</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Legg til en annen søkemotor</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Velg ønsket søkemotor:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Legg til søkemotor</string>
+
+ <string name="search_add_manually_name_hint">Søkemotornavn</string>
+ <string name="search_add_manually_string">Søkestreng å bruke</string>
+ <string name="search_add_manually_save">Lagre</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Eksempel: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Ny søkemotor lagt til.</string>
+
+ <string name="search_add_error_empty_name">Skriv inn søkemotornavn</string>
+ <string name="search_add_error_duplicate_name">En installert søkemotor bruker allerede det navnet.</string>
+
+ <string name="search_add_error_empty_search">Skriv inn søkestreng</string>
+
+ <string name="search_add_error_format">Kontroller at søkestrengen passer med eksempelformatet</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Tøm skrivefeltet</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Lukk</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Slett nettleserhistorikk</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Åpn faner: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Sikker tilkobling</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Laster</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Nettside lastet</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Flere innstillinger</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Knappen flere alternativer</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Naviger fremover</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Last siden på nytt</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Naviger tilbake</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Stopp lasting av nettside</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Gå tilbake til forrige app</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Antall blokkerte sporings-tjenester</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blokker sporere</string>
+
+ <string name="your_rights">Dine rettigheter</string>
+
+ <string name="external_app_prompt_title">Åpne lenke i en annen app</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Du kan gå ut av %1$s for å åpne denne lenken i %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Finn en app som kan åpne lenken</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ingen av appene på din enhet kan åpne denne lenken. Du kan gå ut av %1$s for å søke på %2$s etter en app som kan gjøre dette.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Avslutt privat nettlesing?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s ferdig</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Åpne</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Lagt til i snarveier!</string>
+
+ <string name="error_hostLookup_title">Fant ikke serveren</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Lukk</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Velkommen til %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rask. Privat. Ingen distraksjoner.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Kom i gang</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s er ikke som andre nettlesere</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Vi sletter loggen din når du lukker appen for ekstra personvern.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Gjør %1$s til standard for å beskytte dine data med hver lenke du åpner.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Bruk som standard nettleser</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Hopp over</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Styrk personvernet ditt</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Ta privat nettlesing til neste nivå. Blokker annonser og annet innhold som kan spore deg på tvers av nettsteder og som kan gjøre nedlasting av nettsider tregere.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Ditt søk på din måte</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Søker du etter noe annet? Velg en annen standard søkemotor i innstillinger.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Legg til snarveier på startskjermen</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Gå raskt tilbake til favorittnettstedene dine i %1$s. Velg «Legg til på startskjermen» fra %1$s-menyen.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Gjør personvern til en vane</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Velg %1$s som standardnettleser, og få fordelene med privat nettlesing når du åpner nettsider fra andre apper.</string>
+
+ <string name="firstrun_close_button">OK, jeg forstår det!</string>
+ <string name="firstrun_skip_button">Hopp over</string>
+ <string name="firstrun_next_button">Neste</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Legg til</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">JA</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Avbryt</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NEI</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Snarveien vil bli åpnet med utvidet sporingsbeskyttelse avslått</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Privat nettlesingsøkt</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Med varsel kan du slette økten din i %1$s med ett klikk. Du trenger ikke å åpne appen, eller å se hva som kjører i nettleseren din.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Slett nettleserhistorikk</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Last ned Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s er fri og åpen kildekode-programvare laget av Mozilla og andre bidragsytere.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s er gjort tilgjengelig for deg under vilkårene i <a href="%2$s">Mozilla Public License</a> og andre lisenser for åpen kildekode.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Du får ikke noen rettigheter eller lisenser til varemerkene til Mozilla Foundation eller noen part, inkludert Mozilla, Firefox eller %1$s navn eller logoer. Ytterligere informasjon kan bli funnet <a href="%2$s">her</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Ytterligere kildekode for %1$s er tilgjengelig under ulike andre frie og åpne kildekode-<a href="%2$s">lisenser</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s bruker også blokklister fra Disconnect, Inc. som separate og uavhengige verk under <a href="%2$s">GNU General Public License v3</a>, og er tilgjengelig <a href="%3$s">her</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Brukernavn</string>
+ <string name="gv_prompt_password_hint">Passord</string>
+ <string name="gv_prompt_clear">Tøm</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Sikker tilkobling</string>
+ <string name="security_popup_insecure_connection">Usikker tilkobling</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Bekreftet av: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Nettstedssikkerhet</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL-en finnes allerede</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Søk på siden</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Søk på siden</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d av %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Søk etter neste</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Søk etter forrige</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Lukk søk på siden</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Vis skrivebordsversjon</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Datamaskinversjon</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL kopiert</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Utviklerverktøy</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Åpne lenker i apper</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avansert</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Nettstedstillatelser</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Redusering av infokapselbanner</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">På</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Av</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Redusering av infokapselbanner</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Se færre bannere ved å automatisk avvise forespørsler om infokapsler, når det er mulig.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Redusering av infokapselbanner</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">På for dette nettstedet</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Nettstedet støttes for øyeblikket ikke</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Av for dette nettstedet</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Redusering av infokapselbanner</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Av for dette nettstedet</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">På for dette nettstedet</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Vil du slå på reduksjon av infokapselbannere for %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Vil du slå av reduksjon av infokapselbannere for %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s vill slette infokapsler og oppdatere siden. Sletting av alle infokapsler kan føre til at du blir logget ut eller at handlekurver blir tømt.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s kan prøve å automatisk avvise infokapselforespørsler.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Dette nettstedet er for tiden ikke støttet av Redusering av infokapselbanner. Vil du be om at teamet vårt vurderer denne nettsiden og legger til støtte i fremtiden?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Avbryt</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Be om støtte</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Forespørsel om støtte av nettsted er sendt inn.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Forespørsel om støtte av nettsted er sendt inn.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s prøver å avvise infokapsellforespørsler for å avvise irriterende infokapselbannere.\n\nAdministrer innstillinger for infokapselbanner i %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">innstillinger</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automatisk avspilling</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">For å tillate det:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Gå til Android-innstillinger</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Trykk på <b>Tillatelser</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Gå til Innstillinger</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Slå <b>%1$s</b> PÅ]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Plassering</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Varsel</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-kontrollert innhold</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Be om å tillate</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blokkert</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Tillatt</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blokkert av Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Tillat lyd og video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blokker bare lyd</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Anbefalt</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blokker lyd og video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Undersøkelser</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox kan installere og kjøre studier fra tid til annen.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Les mer</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Applikasjonen avsluttes for å iverksette endringer</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Fjern</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktiv</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Fullført</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Ekstern debugging via USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Lås opp</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Bekreft ved bruk av fingeravtrykket ditt</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Du kan bruke fingeravtrykket for å fortsette den nåværende appøkten.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Åpne lenke i ny økt</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Fingeravtrykkikon</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Fingeravtrykk ikke gjenkjent. Prøv igjen.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Fingeren rørte seg for fort. Prøv igjen.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Vise søkeforslag?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> For å få forslag må %1$s sende det du skriver i adressefeltet til søkemotoren.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Nei</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Ja</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Noen søkemotorer kan ikke vise forslag.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Ignorer</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Oppfører siden seg uventet?\n Prøv å deaktivere sporingsbeskyttelse</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Få tilgang de meste besøkte nettstedene med et knapptrykk%1$s Meny > Legg til på startskjermen]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Åpne hver link i %1$s\n Angi %1$s som standardnettleser</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Autofullfør nettadresser for nettsteder du bruker mest\n Trykk og hold på en nettadresse i adressefeltet</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Åpne en lenke i en ny fane\n Trykk og hold på en lenke på en side</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Slå av tips på startskjermen</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Ny fane åpnet</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Bytt</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Starter fullskjermmodus</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Bytt til lenke i ny fane med en gang</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Blokker potensielt farlige og villedende nettsteder</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blokker rapporterte villedende- og angrepsnettsteder, skadeprogram-nettsteder og uønskede programvarenettsteder.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Kun-HTTPS-modus</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Forsøker automatisk å koble til nettsteder ved hjelp av HTTPS-krypteringsprotokollen for økt sikkerhet.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Unntak</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Du har slått av innholdsblokkering for disse nettstedene.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Fjern</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Fjern alle nettsteder</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blokker infokapsler</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Vil du blokkere infokapsler?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Fane krasjet</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Beklager. Vi har et problem med denne fanen.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Som en privat nettleser lagrer vi aldri og kan ikke gjenopprette denne fanen.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Lukk fane</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Send krasjrapport til Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Sporere blokkert siden %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Innhold</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Reklame</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Sosialt</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analyse</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Utvidet sporingsbeskyttelse</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Beskyttelser er slått AV for dette nettstedet</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Beskyttelse er slått PÅ for dette nettstedet</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Tilkoblingen er sikker</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Tilkoblingen er ikke sikker</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Sporere og skript å blokkere</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Gå tilbake</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Fjern</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Endre navn</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Endre navn</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Navn på snarvei</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Lagrede og delte bilder &lt;b&gt;vil ikke bli&lt;/b&gt; fjernet når du sletter %1$s-historikken</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Lyst</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Mørk</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Innstilt av strømstyring</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Følg enhetens tema</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Dette nettstedet støtter ikke HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s prøver å bruke en HTTPS-tilkobling når det er mulig for mer sikkerhet.
+ <a href="%2$s">Les mer</a> <br/><br/>
+ Endre denne innstillingen i Innstillinger > Personvern og sikkerhet > Sikkerhet.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Tilkoblingen er ikke sikker</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Dette kan være på grunn av et problem med serverens konfigurasjon, eller det kan være fordi noen forsøker å forfalske tilkoblingen til serveren. <br/><br/>
+ Dersom du har klart å koble til serveren tidligere kan problemet være midlertidig, og du kan prøve igjen senere.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Noen kan prøve å etterligne nettstedet, og det kan være risikabelt å fortsette.</label>
+ <br><br>
+ <label>%1$s stoler ikke på <b>%2$s</b> fordi sertifikatutstederen er ukjent, sertifikatet er selvsignert, eller serveren sender ikke de riktige mellomsertifikatene.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Lukk fane</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Fikk dem! Vi stoppet denne siden fra å spionere på deg. Trykk på skjoldet når som helst for informasjon om hva vi blokkerte.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Lukk sprettoppvindu</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Du er beskyttet!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Disse standardinnstillingene gir sterk beskyttelse. Men det er enkelt å tilpasse innstillingene for å møte dine spesifikke behov.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Ignorer</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Trykk her for å kaste alt — historikk, infokapsler, alt — og begynne på nytt på en ny fane.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Lukk</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Søke-widget</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Nettleserhistorikk er slettet! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Start din private nettlesingsøkt, så blokkerer vi sporere og andre dårlige ting mens du surfer.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Vi overlater deg til din private nettlesing, men får en raskere start neste gang med %1$s-widgeten på startskjermen.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Legg til widget på startskjermen</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget lagt til på startskjermen</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ne-rNP/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ne-rNP/strings.xml
new file mode 100644
index 0000000000..67b579d608
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ne-rNP/strings.xml
@@ -0,0 +1,574 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">रद्द गर्नुहोस्</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ठीक छ</string>
+
+ <string name="action_save">बचत गर्नुहोस्</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">खोज्नुहोस् वा ठेगाना प्रबिष्ट गर्नुहोस्</string>
+
+ <string name="teaser">स्वचालित निजी ब्राउजिङ्ग।\nब्राउज गर्नुहोस् । मेटाउनुहोस् । दोहोर्याउनुहोस् ।</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">तपाईंको ब्राउजिङ्ग इतिहास मेटाइयो।</string>
+
+ <string name="feedback_erase2">ब्राउजिङ्ग इतिहास खाली गरियो</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">ट्याबको ब्राउजिङ्ग इतिहास मेटाइएको छ।</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s को लागि खोज्नुहोस्</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">सेयर…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">साइट समस्या दर्ता गर्नुहोस्‌</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s मा खोल्नुहोस्</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">…मा खोल्नुहोस्</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">गृह स्क्रिनमा थप्नुहोस्</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">सर्टकटहरुमा थप्नुहोस्</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">सर्टकटहरुबाट हटाउनुहोस्</string>
+
+ <string name="menu_settings">सेटिङ्गहरू</string>
+ <string name="menu_about">बारेमा</string>
+ <string name="menu_help">सहयोग</string>
+ <string name="menu_rights">तपाईंका अधिकारहरु</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">ट्राकरहरु अवरुद्ध गरियो</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">यसलाई बन्द गर्नाले केही साइटका समस्याहरू समाधान गर्न सक्छ</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">सामग्री ब्लकिङ्ग</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">केहि साइटहरु ठीक गर्न यसलाई बन्द गर्नुहोस्</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s द्वारा सञ्चालित</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">मार्फत सेयर गर्नुहोस्</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">ब्राउजिङ्ग इतिहास खाली गर्नुहोस्</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">खोल्नुहोस्</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">मेटाउनुहोस् र खोल्नुहोस्</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">मेटाउनुहोस्</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">ब्राउजिङ्ग इतिहास खाली गर्नुहोस्</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">मेटाउनुहोस् र खोल्नुहोस्</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">मेटाउनुहोस् र %1$s खोल्नुहोस्</string>
+
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s ले तपाईंलाई नियन्त्रणमा राख्छ।</p>
+<p>यसलाई निजी ब्राउजरको रूपमा प्रयोग गर्नुहोस्:
+ <ul>
+ <li>एपमानै खोज्नुहोस् र ब्राउज गर्नुहोस्</li>
+ <li>ट्र्याकरहरू रोक्नुहोस् (वा ट्र्याकरहरूलाई अनुमति दिन सेटिङ्गहरू अपडेट गर्नुहोस्)</li>
+ <li>कुकीजहरू मेटाउनका साथै खोज र ब्राउजिङ्ग इतिहास मेटाउनुहोस्</li>
+ </ul>
+</p>
+<p>%1$s Mozilla द्वारा उत्पादन गरिएको हो। हाम्रो लक्ष्य भनेको स्वस्थ, खुला इन्टरनेटको विकास गर्नु हो।<br/>
+<a href="%2$s">थप जान्नुहोस्</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">गोपनीयता र सुरक्षा</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">ट्रयाकिङ, कुकीजहरू, डाटा विकल्पहरु</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">पूर्वनिर्धारित सेट गर्नुहोस्, स्वत: पूर्ण</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s को बारेमा, सहयोग</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">परिष्कृत ट्र्याकिङ्ग सुरक्षा</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">वेब सामग्री</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">एपहरु बदलिँदै</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">सामान्य</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">पूर्वनिर्धारित ब्राउजर, भाषा</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">डेटा सङ्कलन र प्रयोग</string>
+
+ <string name="preference_category_search">खोजी गर्नुहोस्</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">खोजी सुझावहरू प्राप्त गर्नुहोस्</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s ले तपाईले ठेगाना पट्टीमा टाइप गर्नुभएका कुराहरुलाई तपाईको खोज इन्जिनमा पठाउनेछ।</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">पूर्वनिर्धारित</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">खोजी इन्जिन</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">खुल्ला</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">बन्द</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL स्वत: पूर्ण</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">शीर्ष साइटहरूको लागि</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">ठेगाना पट्टीमा %s 450 भन्दा बढी लोकप्रिय URLs हरू स्वत: पूर्ण गर्न यसलाई सक्षम गर्नुहोस्।</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">तपाईले थप्नुभएका साइटहरुको लागि</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">आफ्नो मनपर्ने URLs हरू %s स्वतः पूरा गर्न सक्षम गर्नुहोस्।</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">साइटहरू प्रबन्ध गर्नुहोस्</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">साइटहरू प्रबन्ध गर्नुहोस्</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ अनुकूल URL थप्नुहोस्</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">तपाईंको स्वत: पूर्ण सूची:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL थप्नुहोस्</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">+ अनुकूल URL थप्नुहोस्</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">अनुकूल URL थप्नुहोस्</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">स्वत: पुरा गर्न लिङ्क थप्नुहोस्</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">कुकीजहरु र साइट डेटा</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">डाटा विकल्पहरू</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">अनुकूल URLs हटाउनुहोस्</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">थप जान्नुहोस्</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">स्वत: पूर्ण URLहरू थप्नुहोस र व्यवस्थापन गर्नुहोस् ।</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">थप्नु पर्ने URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">URL टाँस्नुहोस् वा प्रविष्ट गर्नुहोस्</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">उदाहरण: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Example: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">नयाँ अनुकुल URL थपियो ।</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">हटाउनुहोस्</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">हटाउनुहोस्</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">तपाइँले प्रविष्ट गर्नुभएको URL पुन: जाँच गर्नुहोस् ।</string>
+
+ <string name="preference_language">भाषा</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">पूर्वनिर्धारित प्रणाली</string>
+
+ <string name="preference_category_privacy">गोपनीयता</string>
+ <string name="preference_privacy_block_ads">विज्ञापन ट्रयाकरहरू अवरुद्द गर्नुहोस्</string>
+ <string name="preference_privacy_block_ads_summary">यदि तपाइँ विज्ञापनहरूमा क्लिक गर्नुहुन्न भने पनि, केहि विज्ञापनहरूले साइट भ्रमणहरू ट्र्याक गर्छन्</string>
+ <string name="preference_privacy_block_analytics">विश्लेषणात्मक ट्रयाकहरू अवरुद्द गर्नुहोस्</string>
+ <string name="preference_privacy_block_analytics_summary">ट्याप गर्ने र स्क्रोल गर्ने जस्ता क्रियाकलापहरू संकलन, विश्लेषण र माप गर्न प्रयोग गरियो</string>
+ <string name="preference_privacy_block_social">सामाजिक ट्रयाकहरू अवरुद्द गर्नुहोस्</string>
+ <string name="preference_privacy_block_social_summary">तपाईंको भ्रमणहरू ट्र्याक गर्न र साझेदारी बटनहरू जस्तै कार्यक्षमता प्रदर्शन गर्न साइटहरूमा स्थापना गरिएको</string>
+ <string name="preference_privacy_block_content">अन्य सामग्री ट्रयाकरहरू ब्लक गर्नुहोस्</string>
+ <string name="preference_privacy_block_content_summary2">सक्षम पार्नाले केहि पृष्ठहरू अनपेक्षित रूपमा व्यवहार गर्न सक्छन्</string>
+ <string name="preference_privacy_category_cookies">कुकीहरु ब्लक गर्नुहोस्</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">पर्दैन, धन्यबाद</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">तेस्रो-पक्ष ट्र्याकर कुकीजहरू मात्र रोक्नुहोस्</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">3rd-party कुकीहरू मात्र ब्लक गर्नुहोस्</string>
+
+ <string name="preference_privacy_should_block_cookies_yes_option2">हुन्छ</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">एप अनलक गर्न फिङ्गरप्रिन्टको प्रयोग गर्नुहोस्</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">चुपचाप</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">अनुप्रयोगहरू स्विच गर्दा वेबपेजहरू लुकाउनुहोस्</string>
+
+ <string name="preference_category_security">सुरक्षा</string>
+
+ <string name="preference_category_performance">कार्यसम्पादन</string>
+ <string name="preference_performance_block_webfonts">वेब फन्टहरू अवरुद्ध गर्नुहोस्</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">प्रतीकहरू वा तस्विरहरु हराउन सक्छन्</string>
+
+ <string name="preference_performance_block_javascript">JavaScript ब्लक गर्नुहोस्</string>
+
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">पृष्ठहरू छिटो लोड हुन सक्छ, तर अप्रत्याशित रूपमा व्यवहार पनि गर्न सक्छ</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s लाई पूर्वनिर्धारित ब्राउजर बनाउनुहोस्</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">उपयोग डाटा पठाउनुहोस्</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">अझ जान्नुहोस्</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla सबैको लागि %1$s प्रदान र सुधार गर्न आवश्यक कुरा मात्र संकलन गर्ने प्रयास गर्दछ ।</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">गोपनीयता नीति</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s बारेमा</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">स्थापित खोज इन्जिनहरू</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">खोज इन्जिन छान्नुहोस्</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">पूर्वानिर्धारीत खोज इन्जिन पुनर्स्थापना गर्नुहोस्</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ अ‌र्को खोजी इन्जिन थप्नुहोस्</string>
+ <string name="preference_search_remove_title">खोजी इन्जिनहरू हटाउनुहोस्</string>
+ <string name="preference_search_remove">हटाउनुहोस्</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">अर्को खोज इन्जिन थप्नुहोस्</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">आफ्नो मनपर्ने इन्जिन छनौट गर्नुहोस्:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">खोज इन्जिन थप्नुहोस्</string>
+
+ <string name="search_add_manually_name_hint">खोजी इन्जिनको नाम</string>
+ <string name="search_add_manually_string">प्रयोग गर्न स्ट्रिङ खोजी गर्नुहोस्</string>
+ <string name="search_add_manually_save">सङ्ग्रह गर्नुहोस्</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Example: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">नयाँ खोजी इन्जिन थपियो ।</string>
+
+ <string name="search_add_error_empty_name">खोजी इन्जिनको नाम प्रविष्ट गर्नुहोस्</string>
+ <string name="search_add_error_duplicate_name">एक स्थापित खोजि इन्जिनले पहिले नै त्यो नाम प्रयोग गरिरहेको छ ।</string>
+
+ <string name="search_add_error_empty_search">खोजी स्ट्रिङ प्रविष्ट गर्नुहोस्</string>
+
+ <string name="search_add_error_format">जाँच गर्नुहोस् कि, खोज अक्षर उदाहरणको ढाँचा सङ्ग मेल खान्छ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">आगत खाली गर्नुहोस्</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">खारेज गर्नुहोस्</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">ब्राउजिङ्ग इतिहास खाली गर्नुहोस्</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">खुला ट्याबहरु: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">सुरक्षित जडान</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">लोड हुँदैछ</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">वेबसाइट लोड भयो</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">थप विकल्पहरू</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">थप बिकल्पहरु बटन</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">अगाडि जानुहोस्</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">वेबसाइट पुन: लोड गर्नुहोस्</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">पछाडि जानुहोस्</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">वेबसाइट लोड गर्न रोक्नुहोस्</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">पहिलेको एपमा फर्कनुहोस्</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">अवरुद्ध गरिएका ट्रयाकरहरुको सङ्ख्या </string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">ट्रयाकरहरू अवरुद्द गर्नुहोस्</string>
+
+ <string name="your_rights">तपाईँका अधिकारहरु</string>
+
+ <string name="external_app_prompt_title">लिङ्कलाई अर्को अनुप्रयोगमा खोल्नुहोस्</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">तपाईं %2$s मा यो लिङ्क खोल्नका लागि %1$s छोड्न सक्नुहुन्छ।</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">लिङ्क खोल्न सक्ने अनुप्रयोग खोज्नुहोस्</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">तपाईँको उपकरणमा कुनै पनि एपले यो लिङ्क खोल्न सक्षम छैन। %2$s खोल्न सक्ने एउटा एपको खोज्नका लागि, तपाईंले %1$s छोड्न सक्नुहुन्छ।</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">निजी ब्राउजिङ्ग बन्द गर्न चाहनुहुन्छ ?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s सकियो</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">खोल्नुहोस्</string>
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">सर्भर फेला परेन</string>
+
+
+
+
+
+
+
+
+
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">आफ्नो गोपनीयताको बलियो बनाउनुहोस्</string>
+
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">निजी ब्राउजिङ्गलाई अर्को स्तरमा पुर्याउनुहोस्। विज्ञापन र अन्य सामग्रीहरू ब्लक गर्नुहोस् जसले, तपाईंलाई साइटहरूमा ट्र्याक गर्न सक्छ र पृष्ठ लोड गर्दा लाग्ने समयलाई घटाउने गर्न सक्छ।</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">तपाईंको खोजी, तपाईंको बाटो</string>
+
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">केहि फरक खोज्दै हुनुहुन्छ ? सेटिङ्गहरूमा अर्को पूर्वनिर्धारित खोजी इञ्जिन छनौट गर्नुहोस्।</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">तपाईंको गृह स्क्रिनमा सर्टकट थप्नुहोस्</string>
+
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">छिटै %1$s मा आफ्नो मनपर्ने साइटहरूमा फर्किनुहोस्। केबल %1$s मेनुबाट \&quot;गृह स्क्रिनमा थप्नुहोस्\&quot; चयन गर्नुहोस्।</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">गोपनीयताको बानी बसाल्नुहोस्</string>
+
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">%1$s लाई आफ्नो पूर्वनिर्धारित ब्राउजरको रूपमा सेट गर्नुहोस् र तपाईंले अन्य एपहरूबाट वेबपृष्ठहरू खोल्दा निजी ब्राउजिङ्गका फाइदाहरू प्राप्त गर्नुहोस्।</string>
+
+ <string name="firstrun_close_button">ठीक छ, थाहा पाएँ</string>
+ <string name="firstrun_skip_button">छोड्नुहोस्</string>
+ <string name="firstrun_next_button">अर्को</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">थप्नुहोस्</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">हो</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">रद्द गर्नुहोस्</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">होइन</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">सर्टकट परिष्कृत ट्र्याकिङ्ग सुरक्षा असक्षम पारेर खुल्नेछ</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">निजी ब्राउजिङ्ग सत्र</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">सूचनाहरूले तपाइँलाई तपाइँको %1$s सत्र एक ट्यापको साथ मेटाउन दिन्छ। तपाईले एप खोल्नु नै पर्दैन वा तपाईको ब्राउजरमा के चलिरहेको छ हेर्नु पर्दैन।</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">ब्राउजिङ्ग इतिहास खाली गर्नुहोस्</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox डाउनलोड गर्नुहोस्</string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">प्रयोगकर्ता नाम</string>
+ <string name="gv_prompt_password_hint">गोप्यशब्द</string>
+ <string name="gv_prompt_clear">खाली गर्नुहोस्</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">सुरक्षित जडान</string>
+ <string name="security_popup_insecure_connection">असुरक्षित जडान</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">रुजू गरेको: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">साईट सुरक्षा</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL पहिल्यै अवस्थित छ</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">पृष्ठमा फेला पार्नुहोस्</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">डेस्कटप साईट अनुरोध गर्नुहोस्</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL प्रतिलिपि गरियो</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-night/colors.xml b/mobile/android/focus-android/app/src/main/res/values-night/colors.xml
new file mode 100644
index 0000000000..06da3b1f0b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-night/colors.xml
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <color name="colorPrimary">@color/photonInk60</color>
+ <color name="colorSecondary">@color/photonInk05</color>
+ <color name="primaryText">@color/photonLightGrey05</color>
+ <color name="secondaryText">@color/photonLightGrey50</color>
+
+ <color name="contrastColor">@color/photonWhite</color>
+
+ <color name="error">@color/photonRed30</color>
+
+ <color name="focusContrastPink">#e452B9</color>
+
+ <color name="disabled">#66FBFBFE</color>
+ <color name="background">@color/colorPrimary</color>
+ <color name="splash_screen_background">@color/photonInk60</color>
+
+ <color name="colorTextInactive">#80FFFFFF</color>
+ <color name="urlBarHintText">@color/photonLightGrey50</color>
+ <color name="statusBarBackground">@color/background</color>
+
+ <color name="colorCursor">#ccffffff</color>
+ <color name="colorOverlay">#cc000000</color>
+
+ <color name="toolbarUrlBackground">@color/photonInk05</color>
+
+ <color name="divider">@color/photonInk10</color>
+ <color name="accentBright">@color/photonPink40</color>
+ <color name="accent">@color/photonPink70</color>
+ <color name="destructive">#FF6A75</color>
+
+ <!-- Logo and Splash -->
+ <color name="headerGradientStart">#FF1E1236</color>
+ <color name="headerGradientMiddle">#FF21163E</color>
+ <color name="headerGradientEnd">#FF1D1133</color>
+
+ <color name="homeGradient1">#FF1E1236</color>
+ <color name="homeGradient2">#FF332866</color>
+ <color name="homeGradient3">#FF4D3A83</color>
+ <color name="homeGradient4">#FF3C286A</color>
+ <color name="homeGradient5">#FF21163E</color>
+ <color name="homeGradient6">#FF1D1133</color>
+
+ <!-- Progress Bar -->
+ <color name="colorProgressGradientStart">#FFFF1AD9</color>
+ <color name="colorProgressGradientCenter">#FFFF1AD9</color>
+ <color name="colorProgressGradientEnd">#FFFF1AD9</color>
+
+ <color name="colorErase">@color/photonMagenta70</color>
+ <color name="colorErasePressed">@color/photonMagenta80</color>
+
+ <color name="colorDotHighlight">@color/photonBlue40</color>
+ <color name="colorCrashAccent">@color/photonBlue40</color>
+
+ <!-- Toolbar -->
+ <color name="toolbar_color">@color/colorPrimary</color>
+
+ <color name="images_removal_warning_background_color">#353852</color>
+ <color name="colorPoweredBy">@color/photonLightGrey05</color>
+ <color name="menuBackground">@color/colorSecondary</color>
+
+ <!-- Snackbar-->
+ <color name="snackbarBackground">@color/colorSecondary</color>
+ <color name="snackbarTextColor">@color/primaryText</color>
+ <color name="snackbarActionText">@color/accentBright</color>
+
+ <!-- Search Suggestions -->
+ <color name="searchSuggestionsBackground">@color/photonInk80</color>
+ <color name="searchSuggestionPromptBackground">@color/photonInk80</color>
+ <color name="searchSuggestionPromptTitleColor">@color/photonLightGrey05</color>
+ <color name="searchSuggestionPromptSubtitleColor">@color/photonLightGrey05</color>
+ <color name="searchSuggestionPromptBorderColor">@color/colorSecondary</color>
+ <color name="searchSuggestionPromptButtonTextColor">@color/accentBright</color>
+
+ <color name="searchHintTextColor">#ffffffff</color>
+ <color name="searchHintBackgroundColor">@color/photonInk80</color>
+ <color name="urlBarInactiveBackgroundColor">#480f1126</color>
+ <color name="autocompleteBackgroundColor">#ffb5007f</color>
+
+ <!-- Onboarding -->
+ <color name="onboarding_indicator_default">#7FFFFFFF</color>
+ <color name="onboarding_indicator_selected">#FFFFFFFF</color>
+ <color name="onboardingButtonOneColor">#7542E5</color>
+ <color name="onboardingButtonTwoColor">#E0E0E6</color>
+ <color name="onboardingCloseButtonColor">#3B3C3F</color>
+
+ <!-- Session -->
+ <color name="colorSession">@color/photonInk05</color>
+ <color name="colorActiveSession">@color/photonInk60</color>
+
+ <!-- Launcher Icon Background-->
+ <color name="add_to_homescreen_icon_background">@color/photonInk60</color>
+
+ <color name="firefoxInstallHint">@color/focusContrastPink</color>
+
+ <color name="scrollbarThumb">#b2b2b2b2</color>
+ <color name="doorhanger_link">#FF2AA1FE</color>
+
+ <!-- Preferences -->
+ <color name="preference_summary_text">@color/secondaryText</color>
+ <color name="settings_background">@color/photonInk05</color>
+ <color name="preference_learn_more_link">@color/accentBright</color>
+ <color name="selected_search_engine">@color/accentBright</color>
+
+ <color name="colorSettingsTint">@color/photonGrey10</color>
+ <color name="colorAccentSettings">@color/accentBright</color>
+
+ <color name="preference_row_selected">#353852</color>
+ <color name="preference_row_disabled">#B3313131</color>
+
+ <color name="trackingProtectionSheetBackground">@color/background</color>
+
+ <color name="enabled_button_tint">@color/photonWhite</color>
+
+ <!--Onboarding fragment colors -->
+ <color name="onboarding_text">@color/photonGrey50</color>
+ <color name="onboarding_title">@color/photonGrey90</color>
+
+ <!--Modals colors -->
+ <color name="modal_background">@color/colorSecondary</color>
+
+ <!-- Override AC colors -->
+ <color name="mozac_ui_icons_fill">@color/primaryText</color>
+ <color name="mozac_additional_note_background">@color/colorPrimary</color>
+ <color name="mozac_additional_note_text_color">@color/secondaryText</color>
+
+ <!-- Biometric screen colors -->
+ <color name="biometric_show_button_background">#7542E5</color>
+ <color name="home_screen_modal_gradient_one">#1E1236</color>
+ <color name="home_screen_modal_gradient_two">#332866</color>
+ <color name="home_screen_modal_gradient_three">#4D3A83</color>
+ <color name="home_screen_modal_gradient_four">#3C286A</color>
+ <color name="home_screen_modal_gradient_five">#21163E</color>
+ <color name="home_screen_modal_gradient_six">#1D1133</color>
+
+ <!-- Promote SearchWidget Dialog colors -->
+ <color name="promote_search_widget_dialog_background">#2B2A33</color>
+ <color name="promote_search_widget_dialog_close_button_background">#3B3C3F</color>
+ <color name="promote_search_widget_dialog_add_widget_button_background">#7542E5</color>
+
+ <!---Cookie banner details panel colors-->
+ <color name="cookie_banner_details_panel_report_a_site_text_color">@color/photonViolet20</color>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-nl/strings.xml b/mobile/android/focus-android/app/src/main/res/values-nl/strings.xml
new file mode 100644
index 0000000000..4c6043057a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-nl/strings.xml
@@ -0,0 +1,1121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Annuleren</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Opslaan</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Voer zoekterm of adres in</string>
+
+ <string name="teaser">Automatische privénavigatie.\nSurfen. Wissen. Herhalen.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Uw navigatiegeschiedenis is gewist.</string>
+
+ <string name="feedback_erase2">Navigatiegeschiedenis gewist</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Navigatiegeschiedenis van tabblad is gewist.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Zoeken naar %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Delen…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Websiteprobleem rapporteren</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Openen in %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Openen in…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Toevoegen aan startscherm</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Aan snelkoppelingen toevoegen</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Verwijderen uit Snelkoppelingen</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Instellingen</string>
+ <string name="menu_about">Over</string>
+ <string name="menu_help">Help</string>
+ <string name="menu_rights">Uw rechten</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Trackers geblokkeerd</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Uitschakelen hiervan kan bepaalde websiteproblemen verhelpen</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Inhoudsblokkering</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Schakel dit uit om bepaalde websites te repareren</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Mogelijk gemaakt door %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Delen via</string>
+
+ <string name="notification_erase_title_android_14">Navigatiegeschiedenis wissen?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tik op deze notificatie of sluit hem om uw navigatiegeschiedenis veilig te wissen.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tik op deze notificatie of veeg er overheen om uw navigatiegeschiedenis veilig te wissen.</string>
+
+ <string name="notification_erase_text">Navigatiegeschiedenis wissen</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Openen</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Wissen en openen</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Wissen</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Navigatiegeschiedenis wissen</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Wissen en openen</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Wissen en %1$s openen</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Zoeken in Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Zoeken in Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Zoeken in Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Zoeken in Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s geeft u de controle.</p>
+<p>Gebruik als een privébrowser:
+ <ul>
+ <li>Rechtstreeks vanuit de app zoeken en navigeren</li>
+ <li>Trackers blokkeren (of instellingen bijwerken om ze toe te staan)</li>
+ <li>Wissen verwijdert zowel cookies als zoek- en navigatiegeschiedenis</li>
+ </ul>
+</p>
+<p>%1$s wordt gemaakt door Mozilla. Onze missie is het verzorgen van een gezond en open internet.<br/>
+<a href="%2$s">Meer info</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privacy en beveiliging</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Volgen, cookies, gegevenskeuzes</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Standaard instellen, automatisch aanvullen</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Over %1$s, help</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Verbeterde bescherming tegen volgen</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Webinhoud</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Wisselen tussen apps</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Algemeen</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Standaardbrowser, taal</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Gegevensverzameling en -gebruik</string>
+
+ <string name="preference_category_search">Zoeken</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Zoeksuggesties verkrijgen</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s zal wat u in de adresbalk intypt naar uw zoekmachine sturen</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Standaard</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Zoekmachine</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Aan</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Uit</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL’s automatisch aanvullen</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Voor topwebsites</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Schakel dit in om %s automatisch meer dan 450 populaire URL’s in de adresbalk te laten aanvullen.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Voor websites die u toevoegt</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Schakel dit in om %s automatisch uw favoriete URL’s te laten aanvullen.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Websites beheren</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Websites beheren</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Aangepaste URL toevoegen</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Uw lijst voor automatisch aanvullen:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL toevoegen</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Aangepaste URL toevoegen</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Aangepaste URL toevoegen</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Koppeling naar automatisch aanvullen toevoegen</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies en websitegegevens</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Gegevenskeuzes</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Aangepaste URL’s verwijderen</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Meer info</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Eigen URL’s voor automatisch aanvullen toevoegen en beheren</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Toe te voegen URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Plak of voer URL in</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Voorbeeld: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Voorbeeld: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Nieuwe aangepaste URL toegevoegd.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Verwijderen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Verwijderen</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Controleer de ingevoerde URL.</string>
+
+ <string name="preference_language">Taal</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Systeemstandaard</string>
+
+ <string name="preference_category_privacy">Privacy</string>
+ <string name="preference_privacy_block_ads">Advertentietrackers blokkeren</string>
+ <string name="preference_privacy_block_ads_summary">Sommige advertenties volgen websitebezoeken, zelfs als u niet op de advertenties klikt</string>
+ <string name="preference_privacy_block_analytics">Analysetrackers blokkeren</string>
+ <string name="preference_privacy_block_analytics_summary">Gebruikt voor het verzamelen, analyseren en meten van activiteiten zoals tikken en scrollen</string>
+ <string name="preference_privacy_block_social">Sociale trackers blokkeren</string>
+ <string name="preference_privacy_block_social_summary">Ingebed op websites om uw bezoeken te volgen en functionaliteiten zoals deelknoppen weer te geven</string>
+ <string name="preference_privacy_block_content">Andere inhoudstrackers blokkeren</string>
+ <string name="preference_privacy_block_content_summary2">Inschakelen kan onverwacht gedrag van bepaalde pagina’s veroorzaken</string>
+ <string name="preference_privacy_category_cookies">Cookies blokkeren</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Nee, bedankt</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Alleen tracking-cookies van derden blokkeren</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Alleen cookies van derden blokkeren</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Cross-sitecookies blokkeren</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ja, graag</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Vingerafdruk voor ontgrendelen van app gebruiken</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Ontgrendel met vingerafdruk als u snelkoppelingen hebt toegevoegd of als een website al in %s is geopend.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Stealth</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Webpagina’s verbergen bij wisselen van apps en maken van schermafbeeldingen blokkeren</string>
+
+ <string name="preference_category_security">Beveiliging</string>
+
+ <string name="preference_category_performance">Prestaties</string>
+ <string name="preference_performance_block_webfonts">Weblettertypen blokkeren</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Kan tot ontbrekende pictogrammen of afbeeldingen leiden</string>
+
+ <string name="preference_performance_block_javascript">JavaScript blokkeren</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Pagina’s kunnen sneller worden geladen, maar kunnen zich ook onverwacht gedragen</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s standaardbrowser maken</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Gebruiksgegevens verzenden</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Meer info</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla streeft ernaar alleen te verzamelen wat nodig is om %1$s voor iedereen aan te bieden en te verbeteren.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Privacyverklaring</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Licentie-informatie</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Gebruikte bibliotheken</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS-bibliotheken</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Over %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Geïnstalleerde zoekmachines</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Zoekmachine kiezen</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Standaardzoekmachines terugzetten</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Nog een zoekmachine toevoegen</string>
+ <string name="preference_search_remove_title">Zoekmachines verwijderen</string>
+ <string name="preference_search_remove">Verwijderen</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Nog een zoekmachine toevoegen</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Selecteer uw gewenste zoekmachine:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Zoekmachine toevoegen</string>
+
+ <string name="search_add_manually_name_hint">Naam van zoekmachine</string>
+ <string name="search_add_manually_string">Te gebruiken zoekstring</string>
+ <string name="search_add_manually_save">Opslaan</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Voorbeeld: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Nieuwe zoekmachine toegevoegd.</string>
+
+ <string name="search_add_error_empty_name">Voer naam van zoekmachine in</string>
+ <string name="search_add_error_duplicate_name">Deze naam wordt al door een geïnstalleerde zoekmachine gebruikt.</string>
+
+ <string name="search_add_error_empty_search">Voer zoekstring in</string>
+
+ <string name="search_add_error_format">Controleer of zoekstring aan voorbeeldnotatie voldoet</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Invoer wissen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Verwijderen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Navigatiegeschiedenis wissen</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Open tabbladen: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Beveiligde verbinding</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Laden</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Website geladen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Meer opties</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Knop voor meer opties</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Vooruit bladeren</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Website opnieuw laden</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Terug bladeren</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Laden van website stoppen</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Terug naar vorige app</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Aantal geblokkeerde trackers</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Trackers blokkeren</string>
+
+ <string name="your_rights">Uw rechten</string>
+
+ <string name="external_app_prompt_title">Koppeling openen in andere app</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">U kunt %1$s verlaten om deze koppeling in %2$s te openen.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Een app zoeken die de koppeling kan openen</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Geen enkele app op uw apparaat kan deze koppeling openen. U kunt %1$s verlaten om bij %2$s naar een app te zoeken die dat wel kan.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Privénavigatie afsluiten?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s is voltooid</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Openen</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Toegevoegd aan snelkoppelingen!</string>
+
+ <string name="error_hostLookup_title">Server niet gevonden</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Sluiten</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Welkom bij %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Snel. Privé. Geen afleiding.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Beginnen</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s is niet zoals andere browsers</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Wanneer u de app sluit wissen we uw geschiedenis voor extra privacy.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Maak %1$s uw standaard om uw gegevens te beschermen bij elke koppeling die u opent.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Als standaardbrowser instellen</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Overslaan</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Vergroot uw privacy</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Breng privénavigatie naar een hoger niveau. Blokkeer advertenties en andere inhoud die u op websites kunnen volgen en laadtijden van pagina’s verlengen.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Zoeken op uw manier</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Op zoek naar iets anders? Kies een andere standaardzoekmachine in Instellingen.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Voeg koppelingen toe aan uw startscherm</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Keer snel terug naar uw favoriete websites in %1$s. Selecteer gewoon ‘Toevoegen aan startscherm’ vanuit het %1$s-menu.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Maak privacy een gewoonte</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Stel %1$s in als uw standaardbrowser en ervaar de voordelen van privénavigatie als u webpagina’s opent vanuit andere apps.</string>
+
+ <string name="firstrun_close_button">OK, begrepen!</string>
+ <string name="firstrun_skip_button">Overslaan</string>
+ <string name="firstrun_next_button">Volgende</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Toevoegen</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">JA</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Annuleren</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NEE</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Snelkoppeling opent met Verbeterde bescherming tegen volgen uitgeschakeld</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Privénavigatiesessie</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Met notificaties kunt u via een tik uw %1$s-sessie wissen. U hoeft de app niet te openen of te zien wat er in uw browser actief is.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Navigatiegeschiedenis wissen</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox downloaden</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s is vrije en opensourcesoftware, gemaakt door Mozilla en andere medewerkers.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s wordt beschikbaar gesteld onder de voorwaarden van de <a href="%2$s">Mozilla Public License</a> en andere opensourcelicenties.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Er worden u geen rechten of licenties verleend op de handelsmerken van de Mozilla Foundation of enige andere partij, met inbegrip van de namen of logo’s van Mozilla, Firefox of %1$s. Aanvullende informatie is <a href="%2$s">hier</a> te vinden.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Aanvullende broncode voor %1$s is beschikbaar onder diverse andere vrije en opensource-<a href="%2$s">licenties</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s gebruikt ook blokkeerlijsten die door Disconnect, Inc. worden geleverd als afzonderlijke en onafhankelijke werken onder de <a href="%2$s">GNU General Public License v3</a> en die <a href="%3$s">hier</a> beschikbaar zijn.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Gebruikersnaam</string>
+ <string name="gv_prompt_password_hint">Wachtwoord</string>
+ <string name="gv_prompt_clear">Wissen</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Beveiligde verbinding</string>
+ <string name="security_popup_insecure_connection">Niet-beveiligde verbinding</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Geverifieerd door: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Websitebeveiliging</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL bestaat al</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Zoeken op pagina</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Zoeken op pagina</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d van %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Volgende resultaat vinden</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Vorige resultaat vinden</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Zoeken op pagina sluiten</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Desktopwebsite opvragen</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Desktopwebsite</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL gekopieerd</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Ontwikkelaarshulpmiddelen</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Koppelingen in apps openen</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Geavanceerd</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Websitemachtigingen</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reductie van cookiebanners</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Aan</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Uit</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reductie van cookiebanners</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Zie minder banners door, indien mogelijk, cookieverzoeken automatisch te weigeren.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reductie van cookiebanners</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">AAN voor deze website</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Website wordt momenteel niet ondersteund</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">UIT voor deze website</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reductie van cookiebanners</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">UIT voor deze website</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">AAN voor deze website</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Reductie van cookiebanners inschakelen voor %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Reductie van cookiebanners uitschakelen voor %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s wist de cookies voor deze website en vernieuwt de pagina. Als alle cookies worden gewist, wordt u mogelijk afgemeld of worden winkelwagentjes geleegd.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s kan proberen cookieverzoeken automatisch te weigeren.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Deze website wordt momenteel niet ondersteund door Reductie van cookiebanners. Wilt u ons team verzoeken deze website te beoordelen en in de toekomst ondersteuning toe te voegen?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Annuleren</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Ondersteuning vragen</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Verzoek om websiteondersteuning ingediend.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Verzoek om websiteondersteuning ingediend.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s probeert cookieverzoeken af te wijzen om irritante cookiebanners te verwijderen.\n\nBeheer voorkeuren voor cookiebanners in %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">instellingen</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automatisch afspelen</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Toestaan:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Ga naar Android-instellingen</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tik op <b>Machtigingen</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Naar Instellingen</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Zet <b>%1$s</b> op AAN]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Camera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Microfoon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Locatie</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notificatie</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-beheerde inhoud</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Vragen om toestemming</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Geblokkeerd</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Toegestaan</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Geblokkeerd door Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Audio en video toestaan</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Alleen audio blokkeren</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Aanbevolen</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Audio en video blokkeren</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Onderzoeken</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox kan af en toe onderzoeken installeren en uitvoeren.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Meer info</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">De toepassing wordt afgesloten om wijzigingen toe te passen</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Verwijderen</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Actief</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Voltooid</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Remote debugging via USB/wifi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Ontgrendelen</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Bevestig het gebruik van uw vingerafdruk</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">U kunt uw vingerafdruk gebruiken om uw huidige app-sessie voort te zetten.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Koppeling openen in nieuwe sessie</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Vingerafdrukpictogram</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Vingerafdruk niet herkend. Probeer het opnieuw.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Vinger te snel bewogen. Probeer het opnieuw.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Zoeksuggesties tonen?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Om suggesties te verkrijgen, moet %1$s wat u in de adresbalk intypt naar de zoekmachine sturen.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Nee</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Ja</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Sommige zoekmachines kunnen geen suggesties tonen.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Verwijderen</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Gedraagt een website zich onverwacht?\n Probeer Bescherming tegen volgen uit te schakelen</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Toegang via één tik tot uw meestgebruikte websites%1$s Menu > Toevoegen aan startscherm]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Alle koppelingen in %1$s openen\n Stel %1$s in als uw standaardbrowser</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">URL’s voor meestgebruikte websites automatisch aanvullen\n Houd uw vinger op een URL in de adresbalk</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Een koppeling in een nieuw tabblad openen\n Houd uw vinger op een koppeling op een pagina</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Tips op het startscherm uitschakelen</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nieuw tabblad geopend</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Wisselen</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Volledig scherm wordt geopend</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Onmiddellijk naar koppeling in nieuw tabblad wisselen</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Mogelijk gevaarlijke en misleidende websites blokkeren</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Gerapporteerde misleidende en aanvalsites, malwaresites en ongewenste-software-websites blokkeren.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Alleen-HTTPS-modus</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Probeert voor een betere beveiliging automatisch middels het HTTPS-versleutelingsprotocol verbinding te maken met websites.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Uitzonderingen</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">U hebt inhoudsblokkering voor deze websites uitgeschakeld.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Verwijderen</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Alle websites verwijderen</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Cookies blokkeren</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Wilt u cookies blokkeren?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Tabblad gecrasht</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Sorry. Er is een probleem met dit tabblad.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Als privébrowser slaan we nooit iets op en kunnen we dit tabblad niet herstellen.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Tabblad sluiten</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Crashrapport naar Mozilla verzenden</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Trackers geblokkeerd sinds %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Inhoud</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Advertenties</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Sociaal</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analyse</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Verbeterde bescherming tegen volgen</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Beschermingen voor deze website staan UIT</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Beschermingen voor deze website staan AAN</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Verbinding is beveiligd</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Verbinding is niet beveiligd</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Te blokkeren trackers en scripts</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Terug</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Verwijderen</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Hernoemen</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Hernoemen</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Naam snelkoppeling</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Opgeslagen en gedeelde afbeeldingen &lt;b&gt;worden niet&lt;/b&gt; verwijderd als u geschiedenis van %1$s wist</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Thema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Licht</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Donker</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Ingesteld door Batterijbesparing</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Apparaatthema volgen</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Deze website ondersteunt geen HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s probeert waar mogelijk een HTTPS-verbinding te gebruiken voor meer veiligheid.
+<a href="%2$s">Meer info</a> <br/><br/>
+Wijzig deze instelling in Instellingen > Privacy en beveiliging > Beveiliging.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Verbinding niet beveiligd</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+Dit kan een probleem zijn met de configuratie van de server, of het kan iemand zijn die probeert zich voor te doen als de server. <br/><br/>
+ Als u in het verleden met succes verbinding hebt gemaakt met deze server, is de fout mogelijk tijdelijk.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Iemand kan proberen de website na te doen en verdergaan kan risicovol zijn.</label>
+ <br><br>
+ <label>%1$s vertrouwt <b>%2$s</b> niet, omdat de certificaatuitgever onbekend is, het certificaat zelfondertekend is, of de server niet de juiste intermediaire certificaten verzendt.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Tabblad sluiten</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Hebbes! We hebben ervoor gezorgd dat deze website u niet meer bespioneert. Tik op elk moment op het schild om te bekijken wat we blokkeren.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Pop-up sluiten</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">U bent beschermd!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Deze standaardinstellingen bieden een sterke bescherming. Maar het is eenvoudig om de instellingen aan uw specifieke behoeften aan te passen.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Sluiten</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tik hier om alles weg te gooien – geschiedenis, cookies, alles – en een verse start te maken op een nieuw tabblad.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Sluiten</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Zoekwidget</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Navigatiegeschiedenis gewist! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Start uw privénavigatiesessie en we blokkeren trackers en andere slechte dingen terwijl u bezig bent.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">We laten u nu verdergaan met uw privénavigatie, u kunt de volgende keer sneller van start gaan nu met de %1$s-widget op uw startscherm.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Widget aan startscherm toevoegen</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget aan startscherm toegevoegd</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-nn-rNO/strings.xml b/mobile/android/focus-android/app/src/main/res/values-nn-rNO/strings.xml
new file mode 100644
index 0000000000..161e4d4919
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-nn-rNO/strings.xml
@@ -0,0 +1,1127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Avbryt</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Lagra</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Søk eller skriv inn ei adresse</string>
+
+ <string name="teaser">Automatisk privat nettlesing.\nSurf. Slett. Repeter.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Nettlesarhistorikken din er sletta.</string>
+
+ <string name="feedback_erase2">Nettlesarhistorikk er sletta</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Nettlesarhistorikken til fana er sletta.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Søk etter %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Del…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Rapporter problem med nettstad</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Opna i %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Opna i…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Legg til på startskjerm</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Legg til i snarvegar</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Fjern frå snarvegar</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Innstillingar</string>
+ <string name="menu_about">Om</string>
+ <string name="menu_help">Hjelp</string>
+ <string name="menu_rights">Dine rettar</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Sporfølgjarar blokkerte</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Om du slår av dette, kan det løyse nokre problem med nettsida</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Innhaldsblokkering</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Slå av for å fikse nokre nettsider</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Driven av %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Del via</string>
+
+ <string name="notification_erase_title_android_14">Slette nettlesarhistorikk?</string>
+
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Trykk eller fjern dette varselet for å slette nettlesarhistorikken din på ein trygg måte.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Trykk eller sveip dette varselet for å slette nettlesarhistorikken din på ein trygg måte.</string>
+
+ <string name="notification_erase_text">Slett nettlesarhistorikk</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Opna</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Slett og opna</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Slett</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Slett nettlesarhistorikken</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Slett og opne</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Slett og opne %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Søk med Focus</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Søk med Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Søk med Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Søk med Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s gir deg kontroll.</p>
+<p>Bruk han som ein privat nettlesar:
+ <ul>
+ <li>Søk og surf rett i appen</li>
+ <li>Blokker sporarar (eller oppdater innstillingane for å tillate sporarar)</li>
+ <li>Slett for å fjerne infokapslar samt søk- og nettlesarhistorikk</li>
+ </ul>
+</p>
+<p>%1$s er produsert av Mozilla. Vårt oppdrag er å fremme eit sunt, ope Internett.<br/>
+<a href="%2$s">Les meir</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Personvern og sikkerheit</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Sporing, infokapslar, dataval</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Set standard, autofullfør</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Om %1$s, hjelp</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Utvida sporingsvern</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Nettinnhald</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Byte mellom appar</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Generelt</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Standardnettlesar, språk</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Datainnsamling og bruk</string>
+
+ <string name="preference_category_search">Søk</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Få søkjeforslag</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s sender det du skriv i adressefeltet til søkjemotoren din</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Standard</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Søkjemotor</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">På</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Av</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Autofullfør nettadresse</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">For toppnettsider</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Slå på at %s autofullfører over 450 populære nettadresser i adressefeltet.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">For nettsider du legg til</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Slå på for å få %s til å autofullføre dei føretrekte nettadressene dine.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Handsam sider</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Handsam sider</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Legg til ei tilpassa nettadresse</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Di liste over autofullføringar:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Legg til URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Legg til ei tilpassa nettadresse</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Legg til ei tilpassa nettadresse</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Legg til lenke til autofullfør</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Infokapslar og nettsidedata</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Dataval</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Fjern tilpassa nettadresser</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Les meir</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Legg til og handsam tilpassa autofullførte nettadressesr.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Nettadresse å legga til</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Lim inn eller skriv inn ei nettadresse</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Døme: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Døme: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Ny tilpassa nettadresse lagt til.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Fjern</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Fjern</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Dobbelsjekk nettadressa du skreiv inn.</string>
+
+ <string name="preference_language">Språk</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Systemstandard</string>
+
+ <string name="preference_category_privacy">Personvern</string>
+ <string name="preference_privacy_block_ads">Blokker reklamesporfølgjarar</string>
+ <string name="preference_privacy_block_ads_summary">Nokre annonsar sporfølgjarar nettstadbesøk, sjølv om du ikkje klikkar på annonsane</string>
+ <string name="preference_privacy_block_analytics">Blokker analysesporfølgjarar</string>
+ <string name="preference_privacy_block_analytics_summary">Brukt for å samla inn, analysera og måla aktivitetar som tastetrykk og rulling</string>
+ <string name="preference_privacy_block_social">Blokker sosiale media-sporfølgjarar</string>
+ <string name="preference_privacy_block_social_summary">Innebygd på nettstader for å spora besøka dine og å visa funksjonalitet som dele-knappar</string>
+ <string name="preference_privacy_block_content">Blokker andre innhaldssporfølgjarar</string>
+ <string name="preference_privacy_block_content_summary2">Aktivering kan føre til at nokre sider oppfører seg uventa</string>
+ <string name="preference_privacy_category_cookies">Blokker infokapslar</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Nei takk</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Blokker berre tredjepartssporings-infokapslar</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Blokker berre tredjepartsinfokapslar</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blokker infokapslar på tvers av nettstadar</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ja takk</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Bruk fingeravtrykk for å låse opp appen</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Lås opp med fingeravtrykk dersom du har lagt til snarvegar eller når ein nettstad allereie er open i %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Usynleg løyndmodus</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Gøym nettsider når du byter appar og unngå at det vert knipsa skjermbilde.</string>
+
+ <string name="preference_category_security">Sikkerheit</string>
+
+ <string name="preference_category_performance">Yting</string>
+ <string name="preference_performance_block_webfonts">Blokker nettfontar</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Kan resultere i at ikon eller bilde manglar</string>
+
+ <string name="preference_performance_block_javascript">Blokker JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Sider kan lastast raskare, men kan òg oppføra seg uventa</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Bruk %1$s som standard nettlesar</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Send brukardata</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Les meir</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla strevar etter å berre samla inn det vi treng for å tilby og forbetra %1$s for alle.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Personvernerklæring</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Lisensinformasjon</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliotek som vi brukar</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS-bibliotek</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Om %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Installerte søkjemotorar</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Vel søkjemotor</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Tilbakestill til standardsøkjemotorar</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Legg til ein annan søkjemotor</string>
+ <string name="preference_search_remove_title">Fjern søkjemotorar</string>
+ <string name="preference_search_remove">Fjern</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Legg til ein annan søkjemotor</string>
+
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Vel føretrekt søkjemotor:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Legg til søkjemotor</string>
+
+ <string name="search_add_manually_name_hint">Søkjemotornamn</string>
+ <string name="search_add_manually_string">Søkjestreng som skal brukast</string>
+ <string name="search_add_manually_save">Lagra</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Døme: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Ny søkjemotor lagt til.</string>
+
+ <string name="search_add_error_empty_name">Skriv inn namn på søkjemotor</string>
+ <string name="search_add_error_duplicate_name">Ein installert søkjemotor brukar allereie dette namnet.</string>
+
+ <string name="search_add_error_empty_search">Skriv inn søkjestreng</string>
+
+ <string name="search_add_error_format">Kontroller at søkjestrengen passar med dømeformatet</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Tøm skrivefeltet</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Avvis</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Slett nettlesarhistorikken</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Opne faner: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Trygg tilkopling</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Lastar</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Nettside lasta</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Fleire innstillingar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Knappen fleire alternativ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Naviger framover</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Last sida på nytt</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Naviger tilbake</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Stopp lasting av nettsida</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Gå tilbake til førre app</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Tal på blokkerte sporfølgjarar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blokker sporfølgjarar</string>
+
+ <string name="your_rights">Dine rettar</string>
+
+ <string name="external_app_prompt_title">Opna lenke i ein annan app</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Du kan gå ut av %1$s for å opna denne lenka i %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Finn ein app som kan opna lenka</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ingen av appane på eininga di kan opna denne lenka. Du kan gå ut av %1$s for å søka på %2$s etter ein app som kan gjera dette.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Avslutta privat nettlesing?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s ferdig</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Opna</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Lagt til i snarvegar!</string>
+
+ <string name="error_hostLookup_title">Fann ikkje serveren</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Lat att</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Velkomen til %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rask. Privat. Ingen distraksjonar.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Kom i gang</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s er ikkje som andre nettlesarar</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Vi slettar historikken din for ekstra personvern, når du lét att appen.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Gjer %1$s til din standard-nettlesar for å beskytte dataa dine, kvar gong du opnar ei lenke.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Bruk som standard nettleser</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Hopp over</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Styrk personvernet ditt</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Ta privat nettlesing til neste nivå. Blokker annonsar og anna innhald som kan spora deg på tvers av nettstadar og som kan gjera nedlasting av nettsider tregare.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Ditt søk på din måte</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Søkjer du etter noko anna? Vel ein annan standard-søkjemotor i Innstillingar.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Legg til snarvegar på startskjermen</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Gå raskt tilbake til favorittnettstadane dine i %1$s. Vel «Legg til på startskjermen» frå %1$s-menyen.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Gjer personvern til ein vane</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Vel %1$s som standardnettleser, og få fordelane med privat nettlesing når du opnar nettsider frå andre apper.</string>
+
+ <string name="firstrun_close_button">OK, eg forstår det!</string>
+ <string name="firstrun_skip_button">Hopp over</string>
+ <string name="firstrun_next_button">Neste</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Legg til</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">JA</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Avbryt</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NEI</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Snarvegen vil bli opna med utvida sporingsvern avslått</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Privat nettlesingsøkt</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Med varsel kan du sletta økta di i %1$s med eitt klikk. Du treng ikkje å opna appen, eller å sjå kva som køyrer i nettlesaren din.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Slett nettlesarhistorikk</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Last ned Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s er fri og open kjeldekode-programvare laga av Mozilla og andre bidragsytarar.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s er gjort tilgjengeleg for deg under vilkåra i <a href="%2$s">Mozilla Public License</a> og andre lisensar for open kjeldekode.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Du får ingen rettar eller lisenser til varemerka til Mozilla Foundation eller nokon part, inkludert Mozilla, Firefox eller %1$s namn eller logoar. Ytterlegare informasjon finst <a href="%2$s">her</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Ytterlegare kjeldekode for %1$s er tilgjengeleg under ulike andre frie og opne kjeldekode-<a href="%2$s">lisensar</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s brukar også blokklister frå Disconnect, Inc. som separate og uavhengige verk under <a href="%2$s">GNU General Public License v3</a>, og er tilgjengeleg <a href="%3$s">her</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Brukarnamn</string>
+ <string name="gv_prompt_password_hint">Passord</string>
+ <string name="gv_prompt_clear">Tøm</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Trygg tilkopling</string>
+ <string name="security_popup_insecure_connection">Utrygg tilkopling</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Stadfesta av: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Nettstadsikkerheit</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL-en finst allereie</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Søk på sida</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Søk på sida</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d av %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Søk etter neste</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Søk etter førre</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Avvis søk på sida</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Vis skrivebordsversjon</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Datamaskinversjon</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL kopiert</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Utviklarverktøy</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Opne lenker i appar</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avansert</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Nettstadløyve</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Redusering av infokapselbanner</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">På</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Av</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Redusering av infokapselbanner</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Sjå færre banner ved å automatisk avvise førespurnadar om infokapslar, når det er muleg.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Redusering av infokapselbanner</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">PÅ for denne nettstaden</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Nettstaden er for augneblinken ikkje støtta</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">AV for denne nettstaden</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Redusering av infokapselbanner</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">AV for denne nettstaden</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">PÅ for denne nettstaden</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Vill du aktivere reduksjon av infokapselbanner for %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Vil du deaktivere reduksjon av infokapselbanner for %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s vill slette infokapslar og oppdatere sida. Sletting av alle infokapslar kan føre til at du blir logga ut eller at handlekorger vert tømde.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s kan prøve å automatisk avvise infokapselførespurnadar.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Denne nettstaden er for tida ikkje støtta av Redusering av infokapselbanner. Vil du be om at teamet vårt vurderer denne nettsida og støttar henne i framtida?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Avbryt</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Be om brukarstøtte</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Førespurnad om støtte av nettstad er sendt inn.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Førespurnad om støtte av nettstad er sendt inn.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s prøver å avvise infokapsellførespurnadar for å avvise irriterande infokapselbanner.\n\nAdministrer innstillingar for infokapselbanner i %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">innstillingar</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automatisk avspeling</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">For å tillate det:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Gå til Android-innstillingar</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Trykk på <b>Løyve</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Gå til Innstillingar</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Slå <b>%1$s</b> PÅ]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Plassering</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Varsel</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-kontrollert innhald</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Spør om løyve</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blokkert</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Tillate</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blokkert av Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Tillat lyd og video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blokker berre lyd</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Tilrådd</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blokker lyd og video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Undersøkingar</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox kan installere og køyre undersøkingar frå tid til anna.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Les meir</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Applikasjonen vil avslutte for å setje i verk endringar</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Fjern</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktiv</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Fullført</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Ekstern debugging via USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Lås opp</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Stadfest ved bruk av fingeravtrykket ditt</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Du kan bruke fingeravtrykket for å fortsetje denne appøkta.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Opne lenke i ny økt</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Fingeravtrykkikon</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Fingeravtrykk ikkje identifisert. Prøv igjen.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Fingeren rørte seg for fort. Prøv igjen.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Vise søkjeforslag?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> For å få forslag må %1$s sende det du skriv i adressefeltet til søkjemotoren.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Nei</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Ja</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Nokre søkjemotorar kan ikkje vise forslag.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Ignorer</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Oppfører sida seg uventa?\n Prøv å deaktivera sporingsvern</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Få tilgang dei meste besøkte nettstedene med eit knapptrykk%1$s Meny > Legg til på startskjermen]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Opna kvar lenke i %1$s\n Vel %1$s som standardnettlesar</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Autofullfør nettadresser for nettstadar du brukar mest\n Trykk og hald på ei nettadresse i adressefeltet</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Opna ei lenke i ei ny fane\n Trykk og hald på ei lenke på ei side</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Slå av tips på startskjermen</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Ny fane opna</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Byt</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Startar fullskjermmodus</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Byt til lenke i ny fane med ein gong</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Blokker potensielt farlege og villeiande nettsider</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blokker rapporterte villeiande- og angrepsnettsider, skadeprogram-nettsider og uønskte programvarenettsider.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Berre HTTPS-modus</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Prøver automatisk å kople til nettstadar ved hjelp av HTTPS-krypteringsprotokollen for auka sikkerheit.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Unntak</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Du har slått av innhaldsblokkering for desse nettsidene.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Fjern</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Fjern alle nettstadar</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blokker infokapslar</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Vil du blokkere infokapslar?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Fana krasja</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Orsak. Vi har eit problem med denne fana.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Som ein privat nettlesar lagrar vi aldri og kan ikkje gjenopprette denne fana.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Lat att fane</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Send krasjrapport til Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Sporarar blokkert sidan %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Innhald</string>
+
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Reklame</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Sosialt</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analyse</string>
+
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Utvida sporingsvern</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Vern er slått AV for denne nettstaden</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Vern er slått PÅ for denne nettstaden</string>
+
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Tilkoplinga er trygg</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Tilkoplinga er ikkje trygg</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Sporarar og skript å blokkere</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Gå tilbake</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Fjern</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Byt namn</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Gi nytt namn</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Namn på snarveg</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Lagra og delte bilde &lt;b&gt;vil ikkje bli&lt;/b&gt; fjerna når du slettar %1$s-historikken</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Lyst</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Mørkt</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Innstilt av batterisparing</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Følg tema til eining</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Denne nettstaden støttar ikkje HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s prøver å bruke ei HTTPS-tilkopling når det er muleg, for auka sikkerheit.
+ <a href="%2$s">Les meir</a> <br/><br/>
+ Endre denne innstillinga i Instillingar > Personvern og sikkerheit > Sikkerheit.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Tilkoplinga er ikkje trygg</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Dette kan vere eit problem med konfigurasjonen til serveren, eller så kan det vere nokon som prøver å gje seg ut for å vere serveren. <br/><br/>
+ Om du har kopla til denne serveren tidlegare kan feilen vere tilfeldig.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Nokon kan prøve å gje seg ut for å vere nettstaden, og å halde fram kan vere riskabelt.</label>
+ <br><br>
+ <label>%1$s stolar ikkje på <b>%2$s</b> fordi sertifikatutskrivaren er ukjend, sertifikatet er sjølvsignert eller at serveren ikkje sender rett mellomliggjande sertifikat.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Lat att fane</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Tatt på fersk gjerning! Vi hindra denne nettstaden i å spionere på deg. Trykk på skjoldet når som helst for å sjå kva vi blokerer.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Lat att sprettoppvindauge</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Du er verna!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Desse standardinnstillingane gir sterkt vern. Men det er enkelt å tilpasse innstillingane for å møte dine spesielle behov.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Avvis</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Trykk her for å kvitte deg med alt — historikk, infokapslar, alt — for å byrje på nytt på ei ny fane.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Lat att</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Søkje-widget</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Nettlesarhistorikk er sletta! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Start den private nettlesingsøkta di, så blokkerer vi sporarar og andre dårlege ting medan du surfar.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Vi overlèt deg til den private nettlesinga di, men får ein raskare start neste gong med %1$s-widgeten på startskjermen.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Legg til widget på startskjermen</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget lagt til på startskjermen</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-nv/strings.xml b/mobile/android/focus-android/app/src/main/res/values-nv/strings.xml
new file mode 100644
index 0000000000..3b2393a59a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-nv/strings.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <string name="action_cancel">Dooda nisin</string>
+ <string name="action_ok">Lą́\'ąą</string>
+
+ <string name="urlbar_hint">Hanítą́ \'éí doodaii\' addressígíí biih níłtązh</string>
+
+ <string name="teaser">T\'áá bí nanil\'ingo hainitá.</string>
+
+ <string name="feedback_erase">Hanítá baa hane\' yę́ę \'ígíí nits\'ą́ą́\' k\'éé\'óólchxǫ\'.</string>
+
+ <string name="search_hint">Hanį́tá %1$s</string>
+
+ <string name="menu_share">&quot;Ła\' bił \'ííshjání \'ádeeshłííł nisin &quot;</string>
+
+ <string name="menu_report_site_issue">Siteígíí ba\'at\'e\' hólǫ́ léi\' \'áko \'éí baa hodeeshnih nisin</string>
+
+ <string name="menu_open_with_default_browser2">Tsésǫ\' \'ániidígíí léi\' biyi\'jį\' \'ąą \'ádeeshłííł nisin %1$s.</string>
+
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-oc/strings.xml b/mobile/android/focus-android/app/src/main/res/values-oc/strings.xml
new file mode 100644
index 0000000000..50541ea88c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-oc/strings.xml
@@ -0,0 +1,1114 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Anullar</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">D\'acòrdi</string>
+
+ <string name="action_save">Enregistrar</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Picar un tèrme de recercar o una adreça</string>
+
+ <string name="teaser">Navegacion privada automatica.\nNavegatz. Escafatz. Tornatz-i.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Vòstre istoric de navegacion es estat escafat.</string>
+ <string name="feedback_erase2">Istoric de navegacion escafat</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">L’istoric de navegacion de l’onglet es estat escafat.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Recercar %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Partejar…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Senhalar un problèma sul site</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Dobrir amb %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Dobrir amb…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Apondre a l’ecran d’acuèlh</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Apondre als acorchis</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Suprimir dels acorchis</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Paramètres</string>
+ <string name="menu_about">A prepaus</string>
+ <string name="menu_help">Ajuda</string>
+ <string name="menu_rights">Vòstres dreches</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Traçadors blocats</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Desactivar aquesta option pòt reglar unes problèmas del site</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blocatge de contengut</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Desactivar per petaçar unes sites</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Fonciona gràcia a %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Partejar via</string>
+
+ <string name="notification_erase_title_android_14">Escafar l’istoric de navegacion ?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tocatz aquesta notificacion o suprimissètz-la per escafar l’istoric de navegacion d’una manièra segura.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tocatz o lisatz aquesta notificacion per escafar l’istoric de navegacion d’una manièra segura.</string>
+
+ <string name="notification_erase_text">Netejar l’istoric de navegacion</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Dobrir</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Escafar e dobrir</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Escafar</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Escafar l\'istoric de navegacion</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Escafar e dobrir</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Escafar e dobrir %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Recercar dins Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Recercar dins Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Recercar dins Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Recercar dins Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s vos dòna lo contraròtla.</p>
+<p>Utiliza-lo coma un navegador privat :
+ <ul>
+ <li>Recercatz e navegatz dins l’aplicacion</li>
+ <li>Blocatz los traçadors (o cambiatz lo paramètre per autorizar los traçadors)</li>
+ <li>Escafatz los cookies e los istorics de recèrcas e navegacion</li>
+ </ul>
+</p>
+<p>%1$s es produch per Mozilla. Nòstra mission es d’encoratjar un Internet en bona santat e dobèrt.<br/>
+<a href="%2$s">Ne saber mai</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Vida privada e seguretat</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Seguiment, cookies, donadas reculhidas</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Motor per defaut, autocompletacion</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">A prepaus de %1$s, ajuda</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Proteccion contra lo seguiment renfortida</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Contengut web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Bascula entre las aplicacions</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">General</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Navegador per defaut, lenga</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Collecta de donadas e utilizacion</string>
+
+ <string name="preference_category_search">Recèrca</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Mostrar las suggestions de recèrca</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s enviarà çò que picatz dins la barra d’adreça al motor de recèrca</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Per defaut</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Motor de recèrca</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Activat</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Desactivat</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Emplenament d’adreças</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Pels sites favorits</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Activar per que %s complete la barra d’adreça amb 450 adreças mai popularas.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Pels sites qu’apondètz</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Activar per que %s complete vòstras adreças favoritas.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Gerir los sites</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Gerir los sites</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Ajustar una adreça personalizada</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Vòstra lista d’auto emplenatge :</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Apondre l’adreça</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Ajustar una adreça personalizada</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Ajustar una adreça personalizada</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Apondre un ligam per autocompletar</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies e donadas de sites</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Donadas reculhidas</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Levar d’adreças personalizadas</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Ne saber mai</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Apondre e gerir las adreças personalizadas per las completar automaticament.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Adreça d\'apondre</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Pegar o picar una adreça web</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Exemple : mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Exemple : exemple.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Novèla adreça personalizada ajustada.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Suprimir</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Suprimir</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Mercés de verificar las adreças picadas.</string>
+
+ <string name="preference_language">Lenga</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Valors per defaut del sistèma</string>
+
+ <string name="preference_category_privacy">Vida privada</string>
+ <string name="preference_privacy_block_ads">&quot;Blocar los traçadors publicitaris &quot;</string>
+ <string name="preference_privacy_block_ads_summary">De publicitats vos seguèsson, amai las cliquetz pas</string>
+ <string name="preference_privacy_block_analytics">Blocar los traçadors d’estatisticas</string>
+ <string name="preference_privacy_block_analytics_summary">Servisson a reculhir, analisar e mesurar las activitats coma la tòca o defilament</string>
+ <string name="preference_privacy_block_social">Blocar los traçadors de malhums socials</string>
+ <string name="preference_privacy_block_social_summary">Son embarcats dins de sites per traçar vòstras visitas e mostrar de foncionalitat coma los botons de partatge</string>
+ <string name="preference_privacy_block_content">Blocar los autres traçadors de contengut</string>
+ <string name="preference_privacy_block_content_summary2">Activar aquesta opcion pòt provocar de problèmas sus de paginas</string>
+ <string name="preference_privacy_category_cookies">Blocar los cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Non, mercé</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Blocar solament los traçadors tèrces</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Blocar solament los cookies tèrces</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blocar los cookies intersites</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Òc</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Utilizar una emprenta digitala per desblocar l’aplicacion</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Desverrolhatz via la detada s’apondèretz d’acorchis o quand un site web es ja dobèrt dins %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Invisible</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Amagar las paginas web en cambiar d’aplicacions e blocar la presa de capturas d’ecran.</string>
+
+ <string name="preference_category_security">Seguretat</string>
+
+ <string name="preference_category_performance">Performanças</string>
+ <string name="preference_performance_block_webfonts">Blocar las polissas Web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Pòt far mancar d’imatges o icònas</string>
+
+ <string name="preference_performance_block_javascript">Blocar JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Las paginas pòdon se cargar mai rapidament, mas pòdon se comportar pas coma cal</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Far que %1$s siá lo navegador per defaut</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Mandar de donadas d’utilizacion</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Ne saber mai</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla s’esfòrça de reculhir pas que las donadas necessàrias per vos ofrir e melhorar %1$s.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Politica de confidencialitat</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Entresenhas de licéncia</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliotècas qu’utilizam</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Bibliotècas liuras</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">A prepaus de %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Motors de recèrca installats</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Causir lo motor de recèrca</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Restablir los motors de recèrca per defaut</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Apondre un motor de recèrca mai</string>
+ <string name="preference_search_remove_title">Levar de motors de recèrca</string>
+ <string name="preference_search_remove">Levar</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Apondre un motor de recèrca de mai</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Causissètz vòstre motor preferit :</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Apondre un motor de recèrca</string>
+
+ <string name="search_add_manually_name_hint">Nom del motor de recèrca</string>
+ <string name="search_add_manually_string">Motor de recèrca d’emplegar</string>
+ <string name="search_add_manually_save">Enregistrar</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Exemple : exemple.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Novèl motor de recèrca apondut.</string>
+
+ <string name="search_add_error_empty_name">Picatz lo nom del novèl motor de recèrca</string>
+ <string name="search_add_error_duplicate_name">Un motor de recèrca emplega ja aqueste nom.</string>
+
+ <string name="search_add_error_empty_search">Picar una cadena de recèrca</string>
+
+ <string name="search_add_error_format">Verificatz que la cadena de recèrca siá al format de l’exemple</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Escafar lo tèxte</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Remandar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Netejar l’istoric de navegacion</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Onglet dobèrts : %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Connexion segura</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Cargament</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Site web cargat</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Mai d\'opcions</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Boton per mostrar mai d’opcions</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Avançar dins l’istoric</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Actualizar la pagina</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Tornar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Quitar de cargar lo site web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Tornar a l’aplicacion precedenta</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Nombre de traçadors blocats</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blocar los traçadors</string>
+
+ <string name="your_rights">Vòstres dreches</string>
+
+ <string name="external_app_prompt_title">Dobrir lo ligam dins una autra aplicacion</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Sètz per quitar %1$s per dobrir aqueste ligam dins %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Trobar una aplicacion per dobrir aqueste ligam</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Cap de las aplicacions de l’ordenador pòt pas dobrir aqueste ligam. Podètz quitar %1$s per cercar dins %2$s una aplicacion que pòt lo dobrir.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Sortir de la navegacion privada ?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s acabat</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Dobrir</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Apondut als acorchis !</string>
+
+ <string name="error_hostLookup_title">Impossible de trobar lo servidor</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Tampar</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">La benvenguda a %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rapid. Confidencial. Sens distraccion.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Per començar</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s es pas coma los autres navegadors</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Escafam l’istoric quand tampatz l’aplicacion per mai de confidencialitat.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Fasètz venir %1$s vòstre navegador per defaut per protegir vòstras donadas per cada ligam que dobrissètz.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Definir coma navegador per defaut</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Passar</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Renfortissètz vòstra vida privada</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Passatz a un nivèl mai naut de navegacion privada. Oblidetz las reclamas e los autres contenguts que pòdon vos traçar de sites en sites e rendon pesucas las paginas.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Recercatz de vòstre biais</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Cercatz quicòm de diferent ? Causissètz un autre motor de recèrca per defaut als Paramètres.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Apondre d’acorchis a vòstre ecran d’acuèlh</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Tornatz rapidament a vòstres sites favorits dins %1$s. Causissètz «Apondre a l’ecran d’acuèlh» al menú de %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Vòstra vida priva a vòstras mans</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Fasètz de %1$s vòstre navegador per defaut e aprofeitatz d’una navegacion privada tre que dobrissètz una pagina web d’una autras aplicacions.</string>
+
+ <string name="firstrun_close_button">Comprés !</string>
+ <string name="firstrun_skip_button">Passar</string>
+ <string name="firstrun_next_button">Seguent</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Apondre</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ÒC</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Anullar</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NON</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Aqueste acorchi se dobrirà amb proteccion renfortida contra lo seguiment desactivada</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Navegacion privada</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Las notificacions permeton de suprimir la session de %1$s amb una tòca. Cal pas dobrir l’aplicacion nimai mostrar lo contengut del navegador.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Netejar l’istoric de navegacion</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Telecargar Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s es un logicial liure e dobèrt fach per Mozilla e d’autres contributors.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s es distribuit jols tèrmes de la <a href="%2$s">Licéncia publica de Mozilla</a> e d’autras licéncias open source.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Cap de drech o licéncia vos es pas cedit sus las marcas depausadas de la Fondacion Mozilla o de tèrces, inclús sul nom e lo lògo de Mozilla, Firefox o de %1$s. Podètz consultar d’informacions complementàrias <a href="%2$s">aquí</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Còdis font complementaris per %1$s son disponibles jos diferentas <a href="%2$s">licéncias</a> liuras e open source.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s utiliza tanben las listas de blocatges provesidas per Disconnect, Inc coma de trabalh separat e independent jos licéncia <a href="%2$s">GNU General Public License v3</a>, e disponiblas <a href="%3$s">aquí</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nom d\'utilizaire</string>
+ <string name="gv_prompt_password_hint">Senhal</string>
+ <string name="gv_prompt_clear">Escafar</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Connexion securizada</string>
+ <string name="security_popup_insecure_connection">Connexion pas segura</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verificat per : %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Seguretat del site</string>
+ <string name="preference_autocomplete_duplicate_url_error">L’adreça existís ja</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Recercar dins la pagina</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Recercar dins la pagina</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d demest %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Trobar lo resultat seguent</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Trobar lo resultat precedent</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Quitar la recèrca dins la pagina</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Veire version ordenador</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Version ordenador</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL copiada</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Aisinas pels desvolopaires</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Dobrir los ligams dins las aplicacions</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avançat</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Autorizacions de site</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reduccion de las bandièras de cookies</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Activada</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Desactivada</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reduccion de las bandièras de cookies</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Veire mens banièras en regetant automaticament las demandas de cookies, quand es possible.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reduccion de las bandièras de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Activada per aqueste site</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Site actualament pas pres en carga</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Desactivada per aqueste site</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reduccion de las bandièras de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Desactivada per aqueste site</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Activada per aqueste site</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Activar la reduccion de las bandièras de cookies per %1$s ?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Desactivar la reduccion de las bandièras de cookies per %1$s ?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s escafarà los cookies d’aqueste site e actualizarà la pagina. La supression de totes los cookies pòt vos desconnectar o voidar los panièrs de crompa.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s pòt ensajar de refusar automaticament las demandas de cookies.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Aqueste site es actualament pas pres en carga per la reduccion de banièras de cookies. Volètz demandar a nòstra còla de verificar aqueste site e d’apondre sa compatibilitat pel futur ?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Anullar</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Demandar sa presa en carga</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">La demanda de presa en carga es estada enviada.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">La demanda de presa en carga es estada enviada.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s ensaja de regetar las demandas de cookies per ignorar las bandièras de cookies embestiantas.\n\n Gerir preferéncias de bandièras de cookies a las preferéncias de %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">paramètres</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Lectura automatica</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Per l’autorizar :</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Anar als paramètres Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tocar <b>Permissions</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Anar als paramètres</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Bascular <b>%1$s</b> sus ACTIVAT]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Camèra</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Microfòn</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Emplaçament</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notificacion</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Contengut contrarotlat per DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Demandar per autorizar</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blocat</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Autorizat</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blocat per Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Autorizar l’àudio e la vidèo</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blocar sonque l’àudio</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Recomandat</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blocar l’àudio e la vidèo</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Estudis</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox pòt installar e lançar d’estudis de temps en temps.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Ne saber mai</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">L’aplicacion es a se tampar per aplicar las modificacions</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Suprimir</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Actiu</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Acabats</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Desbugatge alonhat per USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Desverrolhar</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Confirmatz via vòstra emprenta digitala</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Podètz utilizar vòstra emprenta digitala per contunhar la session d’aplicacion actuala.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Dobrir lo ligam dins una session novèla</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Icòna d’emprentas digitalas</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Detadas pas reconegudas. Tornatz ensajar.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Lo det a bolegat tròp rapidament. Tornatz ensajar.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Afichar las suggestions de recèrca ?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Per obténer de suggestions, %1$s a d’enviar al motor de recèrca çò que picatz dins la barra d’adreça.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Non</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Òc</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Unes motor de recèrca pòdon pas mostrar de suggestions.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Tampar</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Aqueste site a un compòrtament inesperat ?\n Ensajatz de desactivar la proteccion contra lo seguiment</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Accedissètz rapidament als sites que mai visitatz %1$s Menú > Apondre a l’ecran d’acuèlh]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Dobrir totes los ligams amb %1$s\n Definir %1$s coma navegador per defaut</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Emplenament automaticament de las URL dels sites mai visitats\n Mantenètz quichat quin que siá URL dins la barra d’adreça</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Dobrir un ligam dins un onglet novèl\n Mantenètz quichat quin que siá ligam de la pagina</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Quitar de mostrar las astúcias a l’ecran de començament</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Novèl onglet dobèrt</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Mostrar</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Mòde plen ecran actiu</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Mostrar sulcòp los ligams dobèrts</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Blocar los sites potencialament perilhoses e enganaires</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blocar los sites senhalats coma perilhoses, los sites de logicials dangieroses e los sites de logicials pas desirats.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Mòde HTTPS solament</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Ensajar de se connectar automaticament als sites amb lo chiframent HTTPS per una seguretat melhorada.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Excepcions</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Avètz desactivat lo blocatge de contengut per aquestes sites.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Suprimir</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Suprimir totes los sites web</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blocar los cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Volètz blocar los cookies ?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">L’onglet a plantat</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">O planhèm, avèm de problèmas amb aqueste onglet.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Coma navegador privat, enregistram pas jamai res e podèm pas restablir aqueste onglet.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Tampar l\'onglet</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Enviar un senhalament de bug a Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Traçadors blocats dempuèi lo %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Contengut</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Publicitat</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Ret social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Estatisticas</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Proteccion contra lo seguiment renfortida</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Las proteccions son desactivadas per aqueste site</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Las proteccions son activadas per aqueste site</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">La connexion es segura</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">La connexion es pas segura</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Traçadors e scripts de blocar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Tornar</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Suprimir</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Renommar</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Renommar</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nom de l’acorchi</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Los imatges salvagardats o partejats &lt;b&gt;seràn pas&lt;/b&gt; suprimits en netejar vòstre istoric %1$s.</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tèma</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Clar</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Escur</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Definit per l’estalviador de batariá</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Segon lo tèma del periferic</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Aqueste site es pas compatible HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s ensaja d’utilizar una connexion HTTPS quand es possible per mai de seguretat.
+ <a href="%2$s">Ne saber mai</a> <br/><br/>
+ Cambiatz aqueste paramètre dins Paramètres > Vida privada e seguretat > Seguretat.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Connexion pas segura</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Aquò pòt èsser degut a un problèma de configuracion del servidor o a una persona qu’ensaja d’usurpar l’identitat del servidor. <br/><br/>
+ Se ja sètz connectat(ada) amb succès a aqueste servidor, benlèu l’error es temporària e podètz ensajar tornamai pus tard.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[<label>Qualqu’un poiriá usurpar l’identitat del site, contunhar la navegacion poiriá èsser perilhós.</label>
+ <br><br>
+ <label>Los sites web pròvan lor identitat via de certificats. %1$s se fisa pas de <b>%2$s</b> perque lo seu emissor de certificats es desconegut, lo certificat es auto-signat, o lo servidor envia pas los certificats intermediari corrèctes.</label>]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Tampar l’onglet</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Atrapat ! Avèm empachat aqueste site de vos pistar. Tocatz l’escut quand volètz per saber çò qu’avèm blocat.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Tampar lo fenestron</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Sètz protegit !</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Aqueste paramètres per defaut ofrisson una proteccion renfortida. Mas es facil de modificar los paramètres per los far correspondre a vòstres besonhs.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Ignorar</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tocatz aicí per tot escafar — istoric, cookies, tot — e recomençar dins un onglet novèl.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Tampar</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget de recèrca</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Istoric de navegacion escafat ! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Començatz una session de navegacion privada e blocarem los traçadors e autras marridas causas d’aqueste temps.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Vos anam daissar navegar en privat, mas lo còp que ven, començat mai rapidament amb un widget %1$s per l’ecran d’acuèlh.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Apondre lo widget a l’ecran d’acuèlh</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget apondut a l’ecran d’acuèlh</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-pa-rIN/strings.xml b/mobile/android/focus-android/app/src/main/res/values-pa-rIN/strings.xml
new file mode 100644
index 0000000000..e036343bb9
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-pa-rIN/strings.xml
@@ -0,0 +1,1118 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">ਰੱਦ ਕਰੋ</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ਠੀਕ ਹੈ</string>
+
+ <string name="action_save">ਸੰਭਾਲੋ</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">ਖੋਜੋ ਜਾਂ ਸਿਰਨਾਵਾਂ ਦਿਓ</string>
+
+ <string name="teaser">ਆਪਣੇ-ਆਪ ਨਿੱਜੀ ਬਰਾਊਜ਼ਿੰਗ।\nਬਰਾਊਜ਼ ਕਰੋ। ਸਾਫ਼ ਕਰੋ। ਦੁਹਰਾਓ।</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">ਤੁਹਾਡੇ ਬਰਾਊਜ਼ ਕਰਨ ਦੇ ਅਤੀਤ ਨੂੰ ਸਾਫ਼ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ।</string>
+ <string name="feedback_erase2">ਬਰਾਊਜਿੰਗ ਅਤੀਤ ਨੂੰ ਮਿਟਾਇਆ</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">ਟੈਬ ਦੇ ਬਰਾਊਜ਼ ਕਰਨ ਦੇ ਅਤੀਤ ਨੂੰ ਮਿਟਾਇਆ ਜਾ ਚੁੱਕਾ ਹੈ।</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s ਲਈ ਖੋਜੋ</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">…ਸਾਂਝਾ ਕਰੋ</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">ਸਾਈਟ ਮਸਲੇ ਦੀ ਰਿਪੋਰਟ ਕਰੋ</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s ਵਿੱਚ ਖੋਲ੍ਹੋ</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">…ਵਿੱਚ ਖੋਲ੍ਹੋ</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">ਮੁੱਖ ਸਕਰੀਨ \'ਤੇ ਜੋੜੋ</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">ਸ਼ਾਰਟਕੱਟਾਂ ਵਿੱਚ ਜੋੜੋ</string>
+
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">ਸ਼ਾਰਟਕੱਟ ਵਿੱਚੋਂ ਹਟਾਓ</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">ਸੈਟਿੰਗਾਂ</string>
+ <string name="menu_about">ਇਸ ਬਾਰੇ</string>
+ <string name="menu_help">ਮਦਦ</string>
+ <string name="menu_rights">ਤੁਹਾਡੇ ਹੱਕ</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">ਟਰੈਕਰਾਂ ਉੱਤੇ ਪਾਬੰਦੀ ਲਗਾਈ</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">ਇਸ ਨੂੰ ਬੰਦ ਕਰਨ ਨਾਲ ਕੁਝ ਸਾਈਟਾਂ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ ਠੀਕ ਹੋ ਸਕਦੀਆਂ ਹਨ</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">ਸਮੱਗਰੀ ਤੇ ਪਾਬੰਦੀ ਲਗਾਓ</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">ਕੁਝ ਸਾਈਟਾਂ ਠੀਕ ਕਰਨ ਲਈ ਬੰਦ ਕਰੋ</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s ਰਾਹੀਂ ਤਿਆਰ ਕੀਤਾ</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">ਇਸ ਰਾਹੀਂ ਸਾਂਝਾ ਕਰੋ</string>
+
+ <string name="notification_erase_title_android_14">ਬਰਾਊਜ਼ ਕਰਨ ਦੇ ਅਤੀਤ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">ਤੁਹਾਡੇ ਬਰਾਊਜ਼ ਕਰਨ ਦੇ ਅਤੀਤ ਨੂੰ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਮਿਟਾਉਣ ਲਈ ਇਸ ਨੋਟੀਫਿਕੇਸ਼ਨ ਨੂੰ ਛੂਹੋ ਜਾਂ ਸਾਫ਼ ਕਰੋ।</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">ਤੁਹਾਡੇ ਬਰਾਊਜ਼ ਕਰਨ ਦੇ ਅਤੀਤ ਨੂੰ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਮਿਟਾਉਣ ਲਈ ਇਸ ਨੋਟੀਫਿਕੇਸ਼ਨ ਨੂੰ ਛੂਹੋ ਜਾਂ ਸਰਕਾਓ।</string>
+
+ <string name="notification_erase_text">ਬਰਾਊਜ਼ਰ ਕਰਨ ਦੇ ਅਤੀਤ ਨੂੰ ਮਿਟਾਓ</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">ਖੋਲ੍ਹੋ</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">ਮਿਟਾਓ ਅਤੇ ਖੋਲ੍ਹੋ</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">ਮਿਟਾਓ</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">ਬਰਾਊਜ਼ ਕਰਨ ਦੇ ਅਤੀਤ ਨੂੰ ਮਿਟਾਓ</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">ਮਿਟਾਓ ਤੇ ਖੋਲ੍ਹੋ</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">ਮਿਟਾਓ ਅਤੇ %1$s ਖੋਲ੍ਹੋ</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Focus ਵਿੱਚ ਲੱਭੋ</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Klar ਵਿੱਚ ਲੱਭੋ</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Focus Beta ਵਿੱਚ ਲੱਭੋ</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Focus Nightly ਵਿੱਚ ਲੱਭੋ</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s ਕੰਟਰੋਲ ਤੁਹਾਡੇ ਹੱਥ ਦਿੰਦਾ ਹੈ।</p>
+<p>ਇਸ ਨੂੰ ਨਿੱਜੀ ਬਰਾਊਜ਼ਰ ਵਜੋਂ ਵਰਤੋਂ:
+ <ul>
+ <li>ਐਪ ਦੇ ਵਿੱਚ ਖੋਲ੍ਹੋ ਅਤੇ ਬਰਾਊਜ਼ ਕਰੋp</li>
+ <li>ਟਰੈਕਰਾਂ ਤੇ ਲਾਓ ਪਾਬੰਦੀ (ਜਾਂ ਟਰੈਕਰਾਂ ਨੂੰ ਇਜਾਜ਼ਤ ਦੇਣ ਲਈ ਸੈਟਿੰਗਾਂ ਅੱਪਡੇਟ ਕਰੋ)</li>
+ <li>ਖੋਜ ਅਤੇ ਬਰਾਊਜ਼ ਕਰਨ ਦੇ ਅਤੀਤ ਦੇ ਨਾਲ ਨਾਲ ਕੂਕੀਜ਼ ਨੂੰ ਹਟਾਉਣ ਲਈ ਮਿਟਾਓ</li>
+ </ul>
+</p>
+<p>%1$s ਨੂੰ Mozilla ਨੇ ਬਣਾਇਆ ਹੈ। ਸਾਡਾ ਮਕਸਦ ਚੰਗਾ, ਆਜ਼ਾਦ ਸਰੋਤ ਇੰਟਰਨੈੱਟ ਖੜ੍ਹਾ ਕਰਨਾ ਹੈ।<br/>
+<a href="%2$s">ਹੋਰ ਜਾਣੋ</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">ਪਰਦੇਦਾਰੀ ਤੇ ਸੁਰੱਖਿਆ</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">ਟਰੈਕਿੰਗ, ਕੂਕੀਜ਼, ਡਾਟਾ ਚੋਣਾਂ</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">ਮੂਲ ਸੈੱਟ ਕਰੋ, ਆਪੇ-ਪੂਰਨ ਕਰੋ</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s ਬਾਰੇ, ਮਦਦ</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">ਵਾਧਾ ਕੀਤੀ ਟਰੈਕਿੰਗ ਸੁਰੱਖਿਆ</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">ਵੈੱਬ ਸਮੱਗਰੀ</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">ਐਪਾਂ ਵਿੱਚ ਤਬਦੀਲ ਕਰਨਾ</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">ਆਮ</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">ਮੂਲ ਬਰਾਊਜ਼ਰ, ਭਾਸ਼ਾ</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">ਡਾਟਾ ਇਕੱਤਰ ਅਤੇ ਵਰਤੋਂ</string>
+
+ <string name="preference_category_search">ਖੋਜੋ</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">ਖੋਜ ਸੁਝਾਅ ਲਵੋ</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s ਤੁਹਾਡੇ ਖੋਜ ਇੰਜਣ ਨੂੰ ਸਿਰਨਾਵਾਂ ਪੱਟੀ ਵਿੱਚ ਤੁਹਾਡੇ ਵਲੋਂ ਲਿਖਤ ਭੇਜੀ ਜਾਵੇਗੀ</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">ਮੂਲ</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">ਖੋਜ ਇੰਜਣ</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">ਚਾਲੂ</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">ਬੰਦ</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL ਆਪੇ-ਪੂਰਨ</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">ਚੋਟੀ ਦੀਆਂ ਸਾਈਟਾਂ ਲਈ</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">%s ਨੂੰ ਸਿਰਨਾਵਾਂ ਪੱਟੀ ਵਿੱਚ 450 ਹਰਮਨਪਿਆਰੇ URL ਆਪਣੇ-ਆਪ ਪੂਰੇ ਕਰਨ ਦੇ ਸਮਰੱਥ ਬਣਾਓ।</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">ਤੁਹਾਡੇ ਵਲੋਂ ਜੋੜਨ ਲਈ ਸਾਈਟਾਂ ਵਾਸਤੇ</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">%s ਨੂੰ ਤੁਹਾਡੇ ਮਨਪਸੰਦ URL ਆਪਣੇ-ਆਪ ਪੂਰੇ ਕਰਨ ਦੇ ਸਮਰੱਥ ਬਣਾਓ।</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">ਸਾਈਟਾਂ ਦਾ ਬੰਦੋਬਸਤ ਕਰੋ</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">ਸਾਈਟਾਂ ਦਾ ਬੰਦੋਬਸਤ ਕਰੋ</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ ਕਸਟਮ URL ਜੋੜੋ</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">ਤੁਹਾਡੀ ਆਪੇ-ਪੂਰਨ ਸੂਚੀ:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL ਜੋੜੋ</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">ਕਸਟਮ URL ਜੋੜੋ</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">ਕਸਟਮ URL ਜੋੜੋ</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">ਆਪਣੇ-ਆਪ ਪੂਰਾ ਕਰਨ ਲਿੰਕ ਜੋੜੋ</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">ਕੂਕੀਜ਼ ਅਤੇ ਸਾਈਟ ਡਾਟਾ</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">ਡਾਟਾ ਚੋਣਾਂ</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">ਕਸਟਮ URL ਹਟਾਓ</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">ਹੋਰ ਸਿੱਖੋ</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">ਕਸਟਮ ਸਵੈਪੂਰਾ URL ਜੋੜੋ ਅਤੇ ਪ੍ਰਬੰਧਿਤ ਕਰੋ।</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">ਜੋੜਨ ਲਈ URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">URL ਪੇਸਟ ਕਰੋ ਜਾਂ ਦਾਖਲ ਕਰੋ</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">ਉਦਾਹਰਨ: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">ਉਦਾਹਰਨ: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">ਨਵਾਂ ਕਸਟਮ URL ਜੋੜਿਆ ਗਿਆ।</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">ਹਟਾਓ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">ਹਟਾਓ</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">ਤੁਹਾਡੇ ਦੁਆਰਾ ਦਾਖਲ ਕੀਤੇ ਗਏ URL ਨੂੰ ਡਬਲ-ਚੈਕ ਕਰੋ।</string>
+
+ <string name="preference_language">ਭਾਸ਼ਾ</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">ਸਿਸਟਮ ਮੂਲ</string>
+
+ <string name="preference_category_privacy">ਪਰਦੇਦਾਰੀ</string>
+ <string name="preference_privacy_block_ads">ਇਸ਼ਤਿਹਾਰ ਟਰੈਕਰਾਂ \'ਤੇ ਪਾਬੰਦੀ ਲਗਾਓ</string>
+ <string name="preference_privacy_block_ads_summary">ਕੁਝ ਇਸ਼ਤਿਹਾਰ ਸਾਈਟ ਦੇ ਦੌਰੇ ਨੂੰ ਟਰੈਕ ਕਰਦੇ ਹਨ, ਭਾਵੇਂ ਤੁਸੀਂ ਇਸ਼ਤਿਹਾਰਾਂ ਤੇ ਨਹੀਂ ਕਲਿਕ ਕਰਦੇ</string>
+ <string name="preference_privacy_block_analytics">ਵਿਸ਼ਲੇਸ਼ਣ ਟਰੈਕਰਾਂ ਤੇ ਪਾਬੰਦੀ ਲਗਾਓ</string>
+ <string name="preference_privacy_block_analytics_summary">ਟੇਪਿੰਗ ਅਤੇ ਸਕ੍ਰੌਲਿੰਗ ਵਰਗੀਆਂ ਗਤੀਵਿਧੀਆਂ ਇਕੱਤਰ ਕਰਨ, ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ ਅਤੇ ਮਾਪਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ</string>
+ <string name="preference_privacy_block_social">ਸਮਾਜਿਕ ਟਰੈਕਰ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਓ</string>
+ <string name="preference_privacy_block_social_summary">ਸਾਈਟਾਂ ਉੱਤੇ ਤੁਹਾਡੇ ਵਲੋਂ ਖੋਲ੍ਹਣ ਨੂੰ ਟਰੈਕ ਕਰਨ ਅਤੇ ਸਾਂਝਾ ਕਰਨ ਵਾਲੇ ਬਟਨਾਂ ਵਾਗੂੰ ਕੰਮ ਕਰਨ ਲਈ ਜੋੜਿਆ ਗਿਆ</string>
+ <string name="preference_privacy_block_content">ਹੋਰ ਸਮੱਗਰੀ ਟਰੈਕਰਾਂ \'ਤੇ ਪਾਬੰਦੀ ਲਗਾਓ</string>
+ <string name="preference_privacy_block_content_summary2">ਸਮਰੱਥ ਬਣਾਉਣ ਨਾਲ ਕੁਝ ਪੰਨੇ ਅਚਾਨਕ ਵਿਹਾਰ ਕਰ ਸਕਦੇ ਹਨ</string>
+ <string name="preference_privacy_category_cookies">ਕੂਕੀਜ਼ \'ਤੇ ਪਾਬੰਦੀ ਲਗਾਓ</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">ਨਹੀਂ, ਧੰਨਵਾਦ</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">ਸਿਰਫ਼ 3ਜੀ ਧਿਰ ਦੇ ਟਰੈਕਰ ਕੂਕੀਜ਼ ਉੱਤੇ ਪਾਬੰਦੀ ਲਗਾਓ</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">ਸਿਰਫ 3ਜੀ ਪਾਰਟੀ ਕੂਕੀਜ਼ ਤੇ ਪਾਬੰਦੀ ਲਗਾਓ</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">ਅੰਤਰ-ਸਾਈਟ ਕੂਕੀਜ਼ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਓ</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">ਹਾਂ ਜੀ</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">ਐਪ ਅਣ-ਲਾਕ ਕਰਨ ਲਈ ਫਿੰਗਰਪਰਿੰਟ ਵਰਤੋ</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">ਜੇ ਤੁਸੀਂ ਸ਼ਾਰਟਕੱਟ ਜੋੜਿਆ ਹੈ ਜਾਂ ਜਦੋਂ ਵੈੱਬਸਾਈਟ ਪਹਿਲਾਂ ਹੀ %s ਵਿੱਚ ਖੁੱਲ੍ਹੀ ਹੈ ਤਾਂ ਫਿੰਗਰਪਰਿੰਟ ਵਰਤ ਕੇ ਅਣ-ਲਾਕ ਕਰੋ।</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">ਭੇਤੀ</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">ਐਪਾਂ ਸਵਿੱਚ ਕਰਨ ਦੌਰਾਨ ਵੈੱਬ ਸਫ਼ੇ ਲੁਕਾਓ ਅਤੇ ਸਕਰੀਨਸ਼ਾਟ ਲੈਣ ਤੇ ਪਾਬੰਦੀ ਲਗਾਓ।</string>
+
+ <string name="preference_category_security">ਸੁਰੱਖਿਆ</string>
+
+ <string name="preference_category_performance">ਕਾਰਗੁਜ਼ਾਰੀ</string>
+ <string name="preference_performance_block_webfonts">ਵੈੱਬ ਫ਼ੋਂਟ \'ਤੇ ਪਾਬੰਦੀ ਲਗਾਓ</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">ਨਤੀਜੇ ਵਜੋਂ ਆਈਕਾਨ ਜਾਂ ਚਿੱਤਰ ਲਾਪਤਾ ਹੋ ਸਕਦੇ ਹਨ</string>
+
+ <string name="preference_performance_block_javascript">JavaScript \'ਤੇ ਪਾਬੰਦੀ ਲਗਾਓ</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">ਸਫ਼ੇ ਤੇਜ਼ੀ ਨਾਲ ਲੋਡ ਹੋ ਸਕਦੇ ਹਨ, ਪਰ ਅਚਾਨਕ ਹੀ ਵਿਵਹਾਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s ਨੂੰ ਮੂਲ ਬਰਾਊਜ਼ਰ ਬਣਾਓ</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">ਵਰਤੋਂ ਸਬੰਧੀ ਡੇਟਾ ਭੇਜੋ</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">ਹੋਰ ਜਾਣੋ</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">ਮੌਜ਼ੀਲਾ ਭਰਪੂਰ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ ਕਿ ਸਿਰਫ ਉਹੀ ਕੁੱਝ ਇਕੱਠਾ ਕੀਤਾ ਜਾਵੇ ਜੋ ਕਿ %1$s ਨੂੰ ਹਰੇਕ ਲਈ ਮੁਹੱਈਆ ਕਰਾਉਣ ਅਤੇ ਹੋਰ ਸੁਧਾਰਨ ਲਈ ਲੋੜੀਂਦਾ ਹੋਵੇ।</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">ਪਰਦੇਦਾਰੀ ਸੂਚਨਾ</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">ਲਸੰਸ ਬਾਰੇ ਜਾਣਕਾਰੀ</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">ਸਾਡੇ ਵਲੋਂ ਵਰਤੀਆਂ ਲਾਇਬਰੇਰੀਆਂ</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS ਲਾਇਬਰੇਰੀਆਂ</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s ਦੇ ਬਾਰੇ</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">ਇੰਸਟਾਲ ਕੀਤੇ ਖੋਜ ਇੰਜਣ</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">ਖੋਜ ਇੰਜਣ ਚੁਣੋ</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">ਮੂਲ ਖੋਜ ਇੰਜਣ ਨੂੰ ਬਹਾਲ ਕਰੋ</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ ਹੋਰ ਖੋਜ ਇੰਜਣ ਨੂੰ ਜੋੜੋ</string>
+ <string name="preference_search_remove_title">ਖੋਜ ਇੰਜਣਾਂ ਨੂੰ ਹਟਾਓ</string>
+ <string name="preference_search_remove">ਹਟਾਓ</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">ਹੋਰ ਖੋਜ ਇੰਜਣ ਨੂੰ ਜੋੜੋ</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">ਤੁਹਾਡਾ ਪਸੰਦੀਦਾ ਇੰਜਣ ਚੁਣੋ:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">ਖੋਜ ਇੰਜਣ ਨੂੰ ਜੋੜੋ</string>
+
+ <string name="search_add_manually_name_hint">ਖੋਜ ਇੰਜਣ ਦਾ ਨਾਂ</string>
+ <string name="search_add_manually_string">ਵਰਤਣ ਲਈ ਖੋਜ ਸਤਰ</string>
+ <string name="search_add_manually_save">ਸੰਭਾਲੋ</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">ਜਿਵੇਂ: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">ਨਵਾਂ ਖੋਜ ਇੰਜਣ ਜੋੜਿਆ ਗਿਆ।</string>
+
+ <string name="search_add_error_empty_name">ਖੋਜ ਇੰਜਣ ਨਾਂ ਦਿਓ</string>
+ <string name="search_add_error_duplicate_name">ਇੱਕ ਇੰਸਟਾਲ ਕੀਤੇ ਖੋਜ ਇੰਜਣ ਪਹਿਲਾਂ ਹੀ ਉਹ ਨਾਂ ਵਰਤ ਰਿਹਾ ਹੈ।</string>
+
+ <string name="search_add_error_empty_search">ਖੋਜ ਸਤਰ ਦਿਓ</string>
+
+ <string name="search_add_error_format">ਜਾਂਚ ਕਰੋ ਕਿ ਖੋਜ ਲਾਈਨ ਮਿਲਦੀ ਹੈ ਉਦਾਹਰਨ ਫਾਰਮੈਟ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">ਇਨਪੁਟ ਨੂੰ ਹਟਾਓ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">ਰੱਦ ਕਰੋ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">ਬਰਾਊਜ਼ ਕਰਨ ਦਾ ਅਤੀਤ ਮਿਟਾਓ</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">ਟੈਬ ਖੋਲੋ: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">ਸੁਰੱਖਿਅਤ ਕਨੈਕਸ਼ਨ</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">ਵੈੱਬਸਾਈਟ ਲੋਡ ਕੀਤੀ ਗਈ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">ਹੋਰ ਚੋਣਾਂ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">ਹੋਰ ਚੋਣਾਂ ਬਟਨ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">ਅੱਗੇ ਵੱਲ ਨੈਵੀਗੇਟ ਕਰੋ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">ਵੈੱਬਸਾਈਟ ਨੂੰ ਰੀਲੋਡ ਕਰੋ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">ਪਿੱਛੇ ਵੱਲ ਨੈਵੀਗੇਟ ਕਰੋ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">ਵੈੱਬਸਾਈਟ ਨੂੰ ਲੋਡ ਕਰਨਾ ਬੰਦ ਕਰੋ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">ਪਿਛਲੇ ਐਪ \'ਤੇ ਜਾਓ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">ਪਾਬੰਦੀ ਲਾਏ ਟਰੈਕਾਂ ਦੀ ਗਿਣਤੀ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">ਟਰੈਕਰਾਂ \'ਤੇ ਪਾਬੰਦੀ ਲਗਾਓ</string>
+
+ <string name="your_rights">ਤੁਹਾਡੇ ਹੱਕ</string>
+
+ <string name="external_app_prompt_title">ਲਿੰਕ ਨੂੰ ਹੋਰ ਟੈਬ ਵਿੱਚ ਖੋਲ੍ਹੋ</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">ਤੁਸੀਂ %2$s ਵਿੱਚ ਇਹ ਲਿੰਕ ਖੋਲ੍ਹਣ ਲਈ %1$s ਨੂੰ ਛੱਡ ਸਕਦੇ ਹੋ।</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">ਅਜਿਹੀ ਐਪ ਲੱਭੋ ਜੋ ਲਿੰਕ ਨੂੰ ਖੋਲ੍ਹ ਸਕੇ</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">ਤੁਹਾਡੇ ਯੰਤਰ ਉੱਪਰਲੀ ਕੋਈ ਵੀ ਐਪ ਇਸ ਤੰਦ ਨੂੰ ਖੋਲ੍ਹਣ ਦੇ ਕਾਬਲ ਨਹੀਂ ਹੈ। ਤੁਸੀਂ %2$s ਦੇ ਲਈ ਕਿਸੇ ਕਾਬਲ ਐਪ ਨੂੰ ਲੱਭਣ ਲਈ %1$s ਛੱਡ ਸਕਦੇ ਹੋ।</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">ਨਿੱਜੀ ਬਰਾਊਜ਼ਿੰਗ ਤੋਂ ਬਾਹਰ ਨਿਕਲਣਾ ਹੈ?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s ਮੁਕੰਮਲ</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">ਖੋਲ੍ਹੋ</string>
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">ਸ਼ਾਰਟਕੱਟਾਂ ਵਿੱਚ ਜੋੜਿਆ!</string>
+
+ <string name="error_hostLookup_title">ਸਰਵਰ ਨਹੀਂ ਲੱਭਿਆ</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">ਬੰਦ ਕਰੋ</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">%1$s ਵਲੋਂ ਜੀ ਆਇਆਂ ਨੂੰ</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">ਤੇਜ਼। ਨਿੱਜੀ। ਬਿਨਾਂ ਕਿਸੇ ਰੋਕ ਟੋਕ ਦੇ।</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">ਸ਼ੁਰੂ ਕਰੀਏ</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s ਹੋਰਨਾਂ ਬਰਾਊਜ਼ਰਾਂ ਵਰਗਾ ਨਹੀਂ ਹੈ</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">ਵਧੇਰੇ ਪਰਦੇਦਾਰੀ ਵਾਸਤੇ ਜਦੋਂ ਵੀ ਤੁਸੀਂ ਐਪ ਨੂੰ ਬੰਦ ਕਰਦੇ ਹੋ ਤਾਂ ਅਸੀਂ ਤੁਹਾਡੇ ਅਤੀਤ ਨੂੰ ਮਿਟਾ ਦਿੰਦੇ ਹਾਂ।</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">ਤੁਹਾਡੇ ਵਲੋਂ ਹਰ ਲਿੰਕ ਨੂੰ ਖੋਲ੍ਹੇ ਡਾਟੇ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ %1$s ਨੂੰ ਆਪਣਾ ਮੂਲ ਬਰਾਊਜ਼ਰ ਬਣਾਓ।</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">ਮੂਲ ਬਰਾਊਜ਼ਰ ਬਣਾਓ</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">ਛੱਡੋ</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">ਆਪਣੀ ਪਰਦੇਦਾਰੀ ਨੂੰ ਕੰਟਰੋਲ ਕਰੋ</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">ਨਿੱਜੀ ਬਰਾਊਜ਼ਿੰਗ ਨੂੰ ਅਗਲੇ ਪੱਧਰ ਤੇ ਲੈ ਜਾਓ। ਇਸ਼ਤਿਹਾਰ ਅਤੇ ਹੋਰ ਸਮੱਗਰੀ, ਜੋ ਕਿ ਤੁਹਾਨੂੰ ਸਾਈਟਾਂ ਉੱਤੇ ਟਰੈਕ ਕਰ ਅਤੇ ਸਫ਼ਾ ਲੋਡ ਕਰਨ ਨੂੰ ਹੌਲੀ ਕਰ ਸਕਦੀ ਹੈ, ਉੱਤੇ ਪਾਬੰਦੀ ਲਗਾਓ।</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">ਤੁਹਾਡੀ ਖੋਜ, ਤੁਹਾਡਾ ਢੰਗ</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">ਕੁਝ ਵੱਖਰਾ ਲੱਭ ਰਹੇ ਹੋ? ਸੈਟਿੰਗਾਂ ਵਿੱਚੋ ਹੋਰ ਮੂਲ ਖੋਜ ਇੰਜਣ ਨੂੰ ਚੁਣੋ।</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">ਆਪਣੀ ਮੁੱਖ ਸਕਰੀਨ ਲਈ ਸ਼ਾਰਟਕਟ ਜੋੜੋ</string>
+
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">%1$s ਵਿੱਚ ਫ਼ੌਰਨ ਆਪਣੀਆਂ ਪਸੰਦ ਦੀਆਂ ਸਾਈਟਾਂ ਉੱਤੇ ਜਾਓ। ਬੱਸ %1$s ਮੇਨੂ ਵਿੱਚ \&quot;ਮੁੱਖ ਸਕਰੀਨ ਉੱਤੇ ਜੋੜੋ\&quot; ਨੂੰ ਚੁਣੋ।</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">ਪਰਦੇਦਾਰੀ ਨੂੰ ਆਦਤ ਬਣਾਓ</string>
+
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">%1$s ਨੂੰ ਆਪਣਾ ਮੂਲ ਬਰਾਊਜ਼ਰ ਬਣਾਓ ਅਤੇ ਜਦੋਂ ਵੀ ਤੁਸੀਂ ਹੋਰ ਐਪਾਂ ਤੋਂ ਵੈਬ-ਸਫ਼ੇ ਨੂੰ ਖੋਲ੍ਹੋ ਤਾਂ ਨਿੱਜੀ ਬਰਾਊਜ਼ਿੰਗ ਦਾ ਫਾਇਦਾ ਲਵੋ।</string>
+
+ <string name="firstrun_close_button">ਠੀਕ ਹੈ, ਸਮਝ ਗਏ!</string>
+ <string name="firstrun_skip_button">ਛੱਡੋ</string>
+ <string name="firstrun_next_button">ਅੱਗੇ</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">ਜੋੜੋ</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ਹਾਂ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">ਰੱਦ ਕਰੋ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">ਨਹੀਂ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">ਸ਼ਾਰਟਕੱਟ ਵਾਧਾ ਕੀਤੀ ਟਰੈਕਿੰਗ ਸੁਰੱਖਿਆ ਨੂੰ ਅਸਮਰੱਥ ਕਰਕੇ ਖੁੱਲ੍ਹੇਗਾ</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">ਨਿੱਜੀ ਬਰਾਊਜ਼ਿੰਗ ਸ਼ੈਸ਼ਨ</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">ਸੂਚਨਾਵਾਂ ਛੂਹਣ ਨਾਲ ਤੁਹਾਡੇ %1$s ਸ਼ੈਸ਼ਨ ਨੂੰ ਮਿਟਾਉਣ ਦੇਣਗੀਆਂ। ਤੁਹਾਨੂੰ ਐਪ ਖੋਲ੍ਹਣ ਜਾਂ ਆਪਣੇ ਬਰਾਊਜ਼ਰ ਵਿੱਚ ਚੱਲਣਾ ਵੇਖਣ ਦੀ ਲਓੜ ਨਹੀਂ ਹੈ।</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">ਬਰਾਊਜ਼ ਕਰਨ ਦਾ ਅਤੀਤ ਮਿਟਾਓ</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox ਡਾਊਨਲੋਡ ਕਰੋ</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[ਮੋਜ਼ੀਲਾ ਅਤੇ ਹੋਰ ਯੋਗਦਾਨੀਆਂ ਦੁਆਰਾ ਬਣਾਏ ਗਏ %1$s ਮੁਫ਼ਤ ਅਤੇ ਓਪਨ ਸੋਰਸ ਸਾਫਟਵੇਅਰ ਹੈ।]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s ਤੁਹਾਨੂੰ <a href="%2$s">Mozilla ਜਨਤਕ ਲਸੰਸ</a> ਅਤੇ ਹੋਰ ਖੁੱਲ੍ਹੇ ਵਸੀਲਿਆਂ ਦੇ ਲਸੰਸਾਂ ਦੀਆਂ ਸ਼ਰਤਾਂ ਹੇਠ ਮੁਹੱਈਆ ਕਰਵਾਇਆ ਗਿਆ ਹੈ।]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[ਤੁਹਾਨੂੰ Mozilla Foundation ਜਾਂ Mozilla, Firefox ਜਾਂ %1$s ਨਾਂ ਜਾਂ ਲੋਗੋ ਸਮੇਤ ਕਿਸੇ ਵੀ ਪਾਰਟੀ ਦੇ ਮਾਰਕੇ ਲਈ ਕੋਈ ਅਧਿਕਾਰ ਜਾਂ ਲਸੰਸ ਨਹੀਂ ਮਿਲੇ ਹਨ। ਵਾਧੂ ਜਾਣਕਾਰੀ ਵੀ <a href="%2$s"> ਇੱਥੇ</a>ਮਿਲ ਸਕਦੀ ਹੈ।]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[%1$s ਲਈ ਹੋਰ ਸੋਰਸ ਕੋਡ ਹੋਰ ਕਈ ਮੁਫਤ ਅਤੇ ਖੁੱਲ੍ਹੇ ਵਸੀਲਿਆਂ (ਓਪਨ ਸੋਰਸ) ਦੇ <a href="%2$s">ਲਸੰਸਾਂ</a> ਹੇਠ ਮਿਲਦਾ ਹੈ।]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s Disconnect, Inc. ਵਲੋਂ ਪਾਬੰਦੀਸੁਦਾ-ਸੂਚੀਆਂ ਦੀ ਵਰਤੋਂ ਵੱਖਰੇ ਅਤੇ ਆਜ਼ਾਦਾਨਾ ਤੌਰ ਉੱਤੇ <a href="%2$s">GNU ਜਰਨਲ ਪਬਲਿਕ ਲਸੰਸ v3</a> ਦੇ ਤਹਿਤ ਕਰਦਾ ਹੈ ਅਤੇ ਇਹ <a href="%3$s">ਇੱਥੇ ਮੌਜੂਦ ਹੈ</a>।]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">ਵਰਤੋਂਕਾਰ-ਨਾਂ</string>
+ <string name="gv_prompt_password_hint">ਪਾਸਵਰਡ</string>
+ <string name="gv_prompt_clear">ਸਾਫ ਕਰੋ</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">ਸੁਰੱਖਿਅਤ ਕਨੈਕਸ਼ਨ</string>
+ <string name="security_popup_insecure_connection">ਅਸੁਰੱਖਿਅਤ ਕਨੈਕਸ਼ਨ</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">ਜਾਂਚਿਆ: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">ਸਾਈਟ ਦੀ ਸੁਰੱਖਿਆ</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">ਸਫ਼ੇ ਵਿੱਚ ਲੱਭੋ</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">ਸਫ਼ੇ ਵਿੱਚ ਲੱਭੋ</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%2$d ਵਿੱਚੋ %1$d ਬਾਹਰ</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">ਅਗਲਾ ਨਤੀਜਾ ਲੱਭੋ</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">ਪਿਛਲਾ ਨਤੀਜਾ ਲੱਭੋ</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">ਸਫ਼ੇ ਵਿੱਚ ਲੱਭਣ ਨੂੰ ਖਾਰਜ ਕਰੋ</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">ਡੈਸਕਟਾਪ ਸਾਈਟ ਦੀ ਮੰਗ</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">ਡੈਸਕਟਾਪ ਸਾਈਟ</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL ਕਾਪੀ ਕੀਤਾ</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">ਡਿਵੈਲਪਰ ਟੂਲ</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">ਲਿੰਕ ਐਪਾਂ ਵਿੱਚ ਖੋਲ੍ਹੋ</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">ਤਕਨੀਕੀ</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">ਸਾਈਟ ਇਜਾਜ਼ਤਾਂ</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">ਕੂਕੀਜ਼ ਬੈਨਰ ਘਟਾਉਣਾ</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">ਚਾਲੂ</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">ਬੰਦ</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">ਕੂਕੀ ਬੈਨਰ ਘਟਾਉਣਾ</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">ਜਦ ਵੀ ਸੰਭਵ ਹੋਵੇ ਤਾਂ ਕੂਕੀ ਬੇਨਤੀਆਂ ਨੂੰ ਆਪਣੇ-ਆਪ ਖਾਰਜ ਘੱਟ ਬੈਨਰ ਵੇਖੋ।</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">ਕੂਕੀ ਬੈਨਰ ਘਟਾਉਣਾ</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ਇਸ ਸਾਈਟ ਲਈ ਚਾਲੂ</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">ਸਾਈਟ ਇਸ ਵੇਲੇ ਸਹਾਇਕ ਨਹੀਂ ਹੈ</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">ਇਸ ਸਾਈਟ ਲਈ ਬੰਦ</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">ਕੂਕੀ ਬੈਨਰ ਘਟਾਉਣਾ</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">ਇਸ ਸਾਈਟ ਲਈ ਬੰਦ</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ਇਸ ਸਾਈਟ ਲਈ ਚਾਲੂ</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">%1$s ਲਈ ਕੂਕੀ ਬੈਨਰ ਘਟਾਉਣ ਨੂੰ ਚਾਲੂ ਕਰਨਾ ਹੈ?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">%1$s ਲਈ ਕੂਕੀ ਬੈਨਰ ਘਟਾਉਣ ਨੂੰ ਬੰਦ ਕਰਨਾ ਹੈ?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s ਇਸ ਸਾਈਟ ਦੀਆਂ ਕੁਕੀਆਂ ਨੂੰ ਸਾਫ਼ ਕਰ ਕੇ ਵਰਕੇ ਨੂੰ ਸੱਜਰਾ ਕਰ ਦੇਵੇਗਾ। ਸਾਰੀਆਂ ਕੁਕੀਆਂ ਨੂੰ ਸਾਫ਼ ਕਰਨ ਨਾਲ ਤੁਸੀਂ ਸਾਈਨ ਆਊਟ ਹੋ ਸਕਦੇ ਹੋ ਜਾਂ ਖਰੀਦਦਾਰੀ ਵਾਲੀ ਟੋਕਰੀ ਖਾਲੀ ਹੋ ਸਕਦੀ ਹੈ।</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s ਕੂਕੀ ਬੇਨਤੀਆਂ ਨੂੰ ਆਪਣੇ-ਆਪ ਹੀ ਰੱਦ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ ਕਰ ਸਕਦਾ ਹੈ।</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">ਇਹ ਸਾਈਟ ਇਸ ਵੇਲੇ ਕੂਕੀ ਬੈਨਰ ਘਟਾਉਣ ਲਈ ਸਹਾਇਕ ਨਹੀਂ ਹੈ। ਕੀ ਤੁਸੀਂ ਇਸ ਵੈਬਸਾਈਟ ਦੀ ਪੜਤਾਲ ਕਰਨ ਅਤੇ ਭਵਿੱਖ ਵਿੱਚ ਸਹਿਯੋਗ ਜੋੜਨ ਲਈ ਸਾਡੀ ਟੀਮ ਨੂੰ ਬੇਨਤੀ ਕਰਨਾ ਚਾਹੋਗੇ?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">ਰੱਦ ਕਰੋ</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">ਸਹਿਯੋਗ ਲਈ ਬੇਨਤੀ</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">ਸਹਿਯੋਗ ਸਾਈਟ ਲਈ ਬੇਨਤੀ ਕੀਤੀ ਗਈ ਹੈ।</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">ਸਹਿਯੋਗ ਸਾਈਟ ਲਈ ਬੇਨਤੀ ਕੀਤੀ ਗਈ ਹੈ।</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s ਨੇ ਖਿਝਾਊ ਕੂਕੀ ਬੈਨਰ ਖਾਰਜ ਕਰਨ ਲਈ ਕੂਕੀ ਬੇਨਤੀਆਂ ਨੂੰ ਰੱਦ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ ਕੀਤੀ ਹੈ।\n\%2$s ਵਿੱਚੋਂ ਕੂਕੀ ਬੈਨਰ ਪਸੰਦਾਂ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰੋ।</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">ਸੈਟਿੰਗਾਂ</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">ਆਪੇ-ਚਲਾਓ</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">ਇਸਨੂੰ ਸਹਿਮਤੀ ਦੇਣ ਲਈ:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Android ਸੈਟਿੰਗਾਂ ਉੱਤੇ ਜਾਓ</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. <b>ਇਜਾਜ਼ਤਾਂ</b> ਨੂੰ ਛੂਹੋ]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">ਸੈਟਿੰਗਾਂ ਉੱਤੇ ਜਾਓ</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. <b>%1$s</b> ਨੂੰ ਚਾਲੂ ਲਈ ਬਦਲੋ]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">ਕੈਮਰਾ</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">ਮਾਈਕਰੋਫ਼ੋਨ</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">ਟਿਕਾਣਾ</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">ਸੂਚਨਾਵਾਂ</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-ਕੰਟਰੋਲ ਕੀਤੀ ਸਮੱਗਰੀ</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">ਮਨਜ਼ੂਰੀ ਲਈ ਪੁੱਛੋ</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">ਪਾਬੰਦੀ ਲਗਾਈ</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">ਇਜਾਜ਼ਤ ਦਿੱਤੇ</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Android ਵਲੋਂ ਪਾਬੰਦੀ ਲਗਾਈ</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">ਆਡੀਓ ਅਤੇ ਵੀਡਿਓ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">ਸਿਰਫ਼ ਆਡੀਓ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਓ</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">ਸਿਫ਼ਾਰਸ਼ੀ</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">ਆਡੀਓ ਅਤੇ ਵੀਡਿਓ ਤੇ ਪਾਬੰਦੀ ਲਾਓ</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">ਅਧਿਐਨ</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox ਸਮੇਂ ਸਮੇਂ ਉੱਤੇ ਅਧਿਐਨ ਇੰਸਟਾਲ ਕਰ ਤੇ ਚਲਾ ਸਕਦਾ ਹੈ।</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">ਹੋਰ ਜਾਣੋ</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">ਤਬਦੀਲੀਆਂ ਲਾਗੂ ਕਰਨ ਲਈ ਐਪਲੀਕੇਸ਼ਨ ਬੰਦ ਹੋਵੇਗੀ</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">ਹਟਾਓ</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">ਸਰਗਰਮ</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">ਪੂਰਾ ਹੋਇਆ</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">USB//Wi-Fi ਰਾਹੀਂ ਰਿਮੋਟ ਡੀਬੱਗ ਕਰਨਾ</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">ਅਣ-ਲਾਕ ਕਰੋ</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">ਆਪਣੇ ਫਿੰਗਰਪਰਿੰਟ ਵਰਤ ਕੇ ਤਸਦੀਕ ਕਰੋ</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">ਹੁਣ ਤੁਸੀ ਆਪਣੇ ਮੌਜੂਦਾ ਐਪ ਸ਼ੈਸ਼ਨ ਲਈ ਆਪਣੇ ਫਿੰਗਰਪਰਿੰਟ ਨੂੰ ਵਰਤ ਸਕਦੇ ਹੋ।</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">ਲਿੰਕ ਨਵੇੰ ਸ਼ੈਸ਼ਨ ਚ ਖੋਲ੍ਹੋ</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">ਫਿੰਗਰਪਰਿੰਟ ਆਈਕਾਨ</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">ਫਿੰਗਰਪਰਿੰਟ ਦੀ ਪਛਾਣ ਨਹੀਂ ਹੋਈ। ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">ਉਂਗਲ ਬਹੁਤ ਤੇਜ਼ੀ ਨਾਲ ਹਿਲਾਈ ਗਈ। ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">ਖੋਜ ਦੇ ਸੁਝਾਆਵਾਂ ਨੂੰ ਵੇਖਣਾ ਹੈ?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">ਸੁਝਾਅ ਲੈਣ ਲਈ %1$s ਨੂੰ ਤੁਹਾਡੇ ਵਲੋਂ ਲਿਖੀ ਗਈ ਜਾਣਕਾਰੀ ਖੋਜ ਇੰਜਣ ਨੂੰ ਭੇਜਣ ਦੀ ਲੋੜ ਹੈ।</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">ਨਹੀਂ</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">ਹਾਂ</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">ਕੁਝ ਖੋਜ ਇੰਜਣ ਸੁਝਾਅ ਨਹੀਂ ਵੇਖਾ ਸਕਦੇ ਹਨ।</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">ਰੱਦ ਕਰੋ</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">ਸਾਈਟ ਅਜੀਬ ਵਿਹਾਰ ਕਰ ਰਹੀ ਹੈ?\n ਟਰੈਕਿੰਗ ਸੁਰੱਖਿਆ ਨੂੰ ਬੰਦ ਕਰਕੇ ਕੋਸ਼ਿਸ਼ ਕਰੋ</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[ਤੁਹਾਡੇ ਵਲੋਂ ਅਕਸਰ ਵਰਤੀਆਂ ਸਾਈਟਾਂ ਲਈ ਫ਼ੌਰੀ ਪਹੁੰਚ ਲਈ %1$s ਮੇਨੂ > ਮੁੱਖ ਸਕਰੀਨ ਉੱਤੇ ਜੋੜੋ]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">ਹਰ ਲਿੰਕ ਨੂੰ %1$s ਵਿੱਚ ਖੋਲ੍ਹੋ\n %1$s ਨੂੰ ਮੂਲ ਬਰਾਊਜ਼ਰ ਬਣਾਓ</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">ਤੁਹਾਡੇ ਵਲੋਂ ਅਕਸਰ ਸਾਈਟਾਂ ਲਈ ਆਪੇ ਪੂਰਨ URLs\n
+ਸਿਰਨਾਵਾਂ ਪੱਟੀ ਵਿੱਚ ਕਿਸੇ ਵੀ URL ਨੂੰ ਲੰਮਾ ਸਮਾਂ ਦਬਾ ਕੇ ਰੱਖੋ
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">ਲਿੰਕ ਨੂੰ ਨਵੀਂ ਟੈਬ ਵਿੱਚ ਖੋਲ੍ਹੋ\n
+ ਸਫ਼ੇ ਉੱਤੇ ਕਿਸੇ ਵੀ ਲਿੰਕ ਨੂੰ ਲੰਮਾ ਸਮਾਂ ਦਬਾ ਕੇ ਰੱਖੋ
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">ਸ਼ੁਰੂਆਤੀ ਸਕਰੀਨ ਉੱਤੇ ਗੁਰ ਬੰਦ ਕਰੋ</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">ਨਵੀਂ ਟੈਬ ਖੋਲ੍ਹੀ ਗਈ</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">ਬਦਲੋ</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">ਪੂਰੀ ਸਕਰੀਨ ਢੰਗ ਵਿੱਚ ਜਾ ਰਿਹਾ ਹੈ</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">ਲਿੰਕ ਨੂੰ ਤੁਰੰਤ ਨੂੰ ਨਵੀਂ ਟੈਬ ਵਿੱਚ ਬਦਲੋ</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">ਸੰਭਾਵਿਤ ਖ਼ਤਰਨਾਕ ਅਤੇ ਭਰਮਪੂਰਕ ਸਾਈਟਾਂ \'ਤੇ ਪਾਬੰਦੀ ਲਗਾਓ</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">ਰਿਪੋਰਟ ਕੀਤੀਆਂ ਭਰਮਪੂਰਕ ਤੇ ਹਮਲਾਪੂਰਕ ਸਾਈਟਾਂ, ਮਾਲਵੇਅਰ ਸਾਈਟਾਂ ਅਤੇ ਬੇਲੋੜ ਸਾਫਟਵੇਅਰ ਵਾਲੀਆਂ ਸਾਈਟਾਂ \'ਤੇ ਪਾਬੰਦੀ ਲਗਾਓ।</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">ਸਿਰਫ਼-HTTPS ਢੰਗ</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">ਵਾਧਾ ਕੀਤੀ ਸੁਰੱਖਿਆ ਲਈ HTTPS ਇੰਕ੍ਰਿਪਸ਼ਨ ਪਰੋਟੋਕਾਲ ਵਰਤ ਕੇ ਸਾਈਟਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਦੀ ਆਪਣੇ-ਆਪ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">ਛੋਟਾਂ</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">ਤੁਸੀਂ ਇਹਨਾਂ ਵੈੱਬਸਾਈਟਾਂ ਲਈ ਸਮੱਗਰੀ ਪਾਬੰਦੀ ਨੂੰ ਅਸਮਰੱਥ ਕਰ ਚੁੱਕੇ ਹੋ।</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">ਹਟਾਓ</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">ਸਾਰੀਆਂ ਵੈੱਬਸਾਈਟਾਂ ਹਟਾਓ</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">ਕੂਕੀਜ਼ \'ਤੇ ਪਾਬੰਦੀ ਲਗਾਓ</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">ਕੀ ਤੁਸੀਂ ਕੂਕੀਜ਼ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">ਟੈਬ ਨਸ਼ਟ ਹੋਈ</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">ਅਫ਼ਸੋਸ। ਸਾਨੂੰ ਇਸ ਟੈਬ ਨਾਲ ਸਮੱਸਿਆ ਆ ਰਹੀ ਹੈ।</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">ਨਿੱਜੀ ਬਰਾਊਜ਼ਰ ਵਜੋਂ, ਅਸੀਂ ਇਸ ਟੈਬ ਲਈ ਕੁਝ ਨਹੀਂ ਸੰਭਾਲਿਆ ਅਤੇ ਬਹਾਲ ਨਹੀਂ ਕਰ ਸਕਦੇ ਹਾਂ।</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">ਟੈਬ ਬੰਦ ਕਰੋ</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">ਨਸ਼ਟ ਹੋਣ ਰਿਪੋਰਟਾਂ ਮੋਜ਼ੀਲਾ ਨੂੰ ਭੇਜੋ</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">%s ਤੋਂ ਪਾਬੰਦੀ ਲਾਏ ਗਏ ਟਰੈਕਰ</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">ਸਮੱਗਰੀ</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">ਇਸ਼ਤਿਹਾਰਬਾਜੀ</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">ਸਮਾਜਿਕ</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">ਵਿਸ਼ਲੇਸ਼ਣ</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">ਵਾਧਾ ਕੀਤੀ ਟਰੈਕਿੰਗ ਸੁਰੱਖਿਆ</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">ਇਸ ਸਾਈਟ ਲਈ ਸੁਰੱਖਿਆ ਬੰਦ ਹੈ</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">ਇਸ ਸਾਈਟ ਲਈ ਸੁਰੱਖਿਆ ਚਾਲੂ ਹੈ</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">ਕਨੈਕਸ਼ਨ ਸੁਰੱਖਿਅਤ ਹੈ</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">ਕਨੈਕਸ਼ਨ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਹੈ</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">ਪਾਬੰਦੀ ਲਾਉਣ ਲਈ ਟਰੈਕਰ ਤੇ ਸਕ੍ਰਿਪਟਾਂ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">ਪਿੱਛੇ ਜਾਓ</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">ਹਟਾਓ</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">ਨਾਂ-ਬਦਲੋ</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">ਨਾਂ ਬਦਲੋ</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">ਸ਼ਾਰਟਕੱਟ ਨਾਂ</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">ਜਦੋਂ ਤੁਸੀਂ %1$s ਅਤੀਤ ਮਿਟਾਉਂਦੇ ਹੋ ਤਾਂ ਸੰਭਾਲੇ ਅਤੇ ਸਾਂਝੇ ਕੀਤੇ ਚਿੱਤਰ &lt;b&gt;ਹਟਾ ਦਿੱਤੇ ਜਾਣਗੇ&lt;/b&gt;</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">ਥੀਮ</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">ਹਲਕਾ</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">ਗੂੜ੍ਹਾ</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">ਬੈਟਰੀ ਬੱਚਤਕਾਰ ਵਲੋਂ ਨਿਯਤ</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">ਡਿਵਾਈਸ ਥੀਮ ਦੇ ਮੁਤਾਬਕ</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">ਇਹ ਸਾਈਟ HTTPS ਲਈ ਸਹਾਇਕ ਨਹੀਂ ਹੈ</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s ਜਦੋਂ ਵੀ ਸੰਭਵ ਹੋ ਸਕੇ ਜ਼ਿਆਦਾ ਸੁਰੱਖਿਆ ਲਈ HTTPS ਵਰਤਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ।
+ <a href="%2$s">ਹੋਰ ਜਾਣੋ</a><br/><br/>
+ ਇਸ ਸੈਟਿੰਗ ਨੂੰ ਸੈਟਿੰਗਾਂ > ਪਰਦੇਦਾਰੀ ਤੇ ਸੁਰੱਖਿਆ > ਸੁਰੱਖਿਆ ਵਿੱਚੋਂ ਬਦਲੋ।]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">ਕਨੈਕਸ਼ਨ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਹੈ</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ ਇਹ ਸਰਵਰ ਦੀ ਸੰਰਚਨਾ ਨਾਲ ਸਮੱਸਿਆ ਹੋ ਸਕਦੀ ਹੈ ਜਾਂ ਕੋਈ ਸਰਵਰ ਦੀ ਨਕਲ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੋ ਸਕਦਾ ਹੈ। <br/><br/>
+ ਜੇ ਤੁਸੀਂ ਇਸ ਸਰਵਰ ਨਾਲ ਪਹਿਲਾਂ ਕਾਮਯਾਬੀ ਨਾਲ ਕਨੈਕਟ ਹੋ ਚੁੱਕੇ ਹੋ ਤਾਂ ਇਹ ਆਰਜ਼ੀ ਗਲਤੀ ਹੋ ਸਕਦੀ ਹੈ।
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>ਕੋਈ ਸਾਈਟ ਦੀ ਨਕਲ ਕਰਦਾ ਹੋ ਸਕਦਾ ਹੈ ਅਤੇ ਜਾਰੀ ਰੱਖਣਾ ਖ਼ਤਰਨਾਕ ਹੋ ਸਕਦਾ ਹੈ।</label>
+ <br><br>
+ <label>%1$s <b>%2$s</b> ਉੱਤੇ ਭਰੋਸਾ ਨਹੀਂ ਕਰਦਾ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਸਰਟੀਫਿਕੇਟ ਨੂੰ ਜਾਰੀ ਕਰਨ ਵਾਲਾ ਅਣਪਛਾਤਾ ਹੈ, ਸਰਟੀਫਿਕੇਟ ਖੁਦ-ਦਸਤਖਤੀ ਹੈ ਜਾਂ ਸਰਵਰ ਠੀਕ ਵਿਚਕਾਰਲੇ ਸਰਟੀਫਿਕੇਟ ਨਹੀਂ ਭੇਜ ਰਿਹਾ ਹੈ।</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">ਟੈਬ ਬੰਦ ਕਰੋ</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">ਫੜੇ ਗਏ! ਅਸੀਂ ਇਹ ਸਾਈਟ ਨੂੰ ਤੁਹਾਡੀ ਜਾਸੂਸੀ ਕਰਨ ਤੋਂ ਰੋਕਿਆ ਹੈ। ਕਿਸੇ ਵੀ ਵੇੇਲੇ ਢਾਲ ਨੂੰ ਛੂਹ ਕੇ ਵੇਖੋ ਕਿ ਅਸੀਂ ਕਿਸੇ ਉੱਤੇ ਰੋਕ ਲਾਈ ਹੈ।</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">ਪੋਪ-ਅੱਪ ਬੰਦ ਕਰੋ</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">ਤੁਸੀਂ ਸੁਰੱਖਿਅਤ ਹੋ!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">ਇਹ ਮੂਲ ਸੈਟਿੰਗਾਂ ਮਜ਼ਬੂਤ ਸੁਰੱਖਿਅਤ ਦਿੰਦੀਆਂ ਹਨ। ਪਰ ਤੁਹਾਡੀਆਂ ਖਾਸ ਲੋੜਾਂ ਮੁਤਾਬਕ ਸੈਟਿੰਗਾਂ ਨੂੰ ਢਾਲਣਾ ਸੌਖਾ ਹੈ।</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">ਖ਼ਾਰਜ ਕਰੋ</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">ਸਾਰੇ — ਅਤੀਤ, ਕੂਕੀਜ਼, ਹਰ ਚੀਜ਼ — ਨੂੰ ਰੱਦੀ ਵਿੱਚ ਭੇਜ ਕੇ ਨਵੀਂ ਟੈਬ ਨਾਲ ਸੱਜਰੀ ਸ਼ੁਰੂਆਤ ਲਈ ਇੱਥੇ ਛੂਹੋ।</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">ਬੰਦ ਕਰੋ</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">ਖੋਜ ਵਿਜੈੱਟ</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">ਬਰਾਊਜ਼ਿੰਗ ਅਤੀਤ ਮਿਟਾਇਆ ਗਿਆ! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">ਆਪਣਾ ਨਿੱਜੀ ਬਰਾਊਜ਼ਿੰਗ ਸ਼ੈਸ਼ਨ ਸ਼ੁਰੂ ਕਰੋ ਅਤੇ ਅਸੀਂ ਤੁਹਾਡੇ ਵਾਸਤੇ ਟਰੈਕਰਾਂ ਤੇ ਹੋਰ ਬੁਰੀਆਂ ਚੀਜ਼ਾਂ ਉੱਤੇ ਰੋਕ ਲਾਵਾਂਗੇ।</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">ਹੁਣ ਤੁਸੀਂ ਆਪਣੀ ਨਿੱਜੀ ਬਰਾਊਜ਼ਿੰਗ ਕਰੋ, ਪਰ ਅਗਲੀ ਵਾਰ ਫ਼ੌਰਨ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਆਪਣੀ ਮੁੱਖ ਸਕਰੀਨ ਤੋਂ %1$s ਵਿਜੈਟ ਵਰਤ ਸਕਦੇ ਹੋ।</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">ਵਿਜੈੱਟ ਨੂੰ ਮੁੱਖ ਸਕਰੀਨ ਉੱਤੇ ਜੋੜੋ</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">ਵਿਜੈੱਟ ਮੁੱਖ ਸਕਰੀਨ ਉੱਤੇ ਜੋੜਿਆ ਗਿਆ</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-pai/strings.xml b/mobile/android/focus-android/app/src/main/res/values-pai/strings.xml
new file mode 100644
index 0000000000..e4717016d5
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-pai/strings.xml
@@ -0,0 +1,354 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <string name="action_cancel">Tubspach</string>
+ <string name="action_ok">Jan ik yooch</string>
+
+ <string name="action_save">Chkwaach</string>
+
+ <string name="urlbar_hint">Tñur paa eemch ŕmee solch</string>
+
+ <string name="teaser">Byaw´i Sal amchu. Sal m´am. Mtkryee. Mtkweek miyi.</string>
+
+ <string name="feedback_erase">Chumŕmee m´amu hay payt ŕputub bwiir.</string>
+
+ <string name="feedback_erase_custom_tab">Chumŕmee m´amu hay payt ŕputub bwiir.</string>
+
+ <string name="search_hint">%1$s chŕmee</string>
+
+ <string name="menu_share">Mkwimu…</string>
+
+ <string name="menu_report_site_issue">Wawchuha klyeebha paytum jwaknaabchu</string>
+
+ <string name="menu_open_with_default_browser2">%1$s em msol</string>
+
+ <string name="menu_open_with_a_browser2">Em msol…</string>
+
+ <string name="menu_add_to_home_screen">Jabchu namaan ch hal mchmi</string>
+
+ <string name="menu_settings">Chajaanch</string>
+ <string name="menu_about">Sak ntpach</string>
+ <string name="menu_help">Chbtaarch</string>
+ <string name="menu_rights">Mir mir mwii</string>
+
+ <string name="menu_trackers_blocked_title">Chŕmechu ŕ´ap</string>
+
+ <string name="menu_trackers_blocked_subtitle">Chwichu yak yoya mchubowutemum amchuhal chatewulim chajankyawyu</string>
+
+ <string name="menu_content_blocking">Mtbspachmwir amchu ñulyoom mchajanhikyawa</string>
+ <string name="menu_content_blocking_subtitle">Mtubspach amchu ñulyom mchajanhikyawa</string>
+
+ <string name="menu_custom_tab_branding">%1$s em ntpachu</string>
+
+ <string name="share_dialog_title">Sam paa m´em</string>
+
+ <string name="notification_erase_text">Sal amchu mujiñ</string>
+
+ <string name="notification_action_open">Sol</string>
+
+ <string name="notification_action_erase_and_open">Ŕmar e sol</string>
+
+ <string name="shortcut_erase_short_label">Ŕmar</string>
+
+ <string name="shortcut_erase_long_label">Sal amchu mujiñ</string>
+
+
+ <string name="shortcut_erase_and_open_short_label">Ŕmar e sol</string>
+
+ <string name="shortcut_erase_and_open_long_label">Ŕmar e sol %1$s</string>
+
+ <string name="preference_privacy_and_security_header">Jabchu tpaay ŕbokjanchu</string>
+
+ <string name="preference_privacy_and_security_summary">Kabwik chŕmeechu, cookies ee tñurya</string>
+
+ <string name="preference_search_summary">Bu januliwu chiich, yemik maat chulwiyu</string>
+
+ <string name="preference_mozilla_summary">%1$s chŕmechum, nyamch</string>
+
+ <string name="preference_category_web_content">Web chapayt wii</string>
+
+ <string name="preference_category_switching_apps">Aplicación jkayum tyak</string>
+
+ <string name="preference_category_general">Payt</string>
+
+ <string name="preference_category_data_collection_use">Tñur kabwik ñum tchech chu chyunk</string>
+
+ <string name="preference_category_search">Ŕmee</string>
+
+ <string name="preference_show_search_suggestions">Kabwik chŕmecuhu mukunabchu</string>
+ <string name="preference_show_search_suggestions_summary">%1$s ey ñukwee ñumtñurum bar chŕmechuhal kwiima</string>
+
+ <string name="preference_search_engine_default">Ñub ik chmiich</string>
+
+ <string name="preference_search_engine_label">Chŕmeechu</string>
+
+ <string name="preference_state_on">Chubowu</string>
+
+ <string name="preference_state_off">Ŕ\'am</string>
+
+ <string name="preference_subitem_autocomplete">URL yeemik chublwi</string>
+
+ <string name="preference_switch_autocomplete_topsites">Amchu kajan kajanu</string>
+
+ <string name="preference_switch_autocomplete_user_list">Wachuha sal chmiich</string>
+
+ <string name="preference_category_autocomplete_manage_sites">Waachu ñumtrcheech</string>
+
+ <string name="preference_autocomplete_subitem_manage_sites">Waachu numtrcheech</string>
+
+ <string name="preference_autocomplete_action_add">+ URL yeemik wii jam sal chmii</string>
+
+ <string name="preference_autocomplete_title_add">URL yeemik wii jam sal chmii</string>
+
+ <string name="custom_autocomplete_quick_add">URL yeemik wii jam sal chmii</string>
+
+ <string name="add_custom_autocomplete_label">Jabchu yemik matchublwiibu</string>
+
+ <string name="preference_category_cookies">Cookies e tñur wawchu</string>
+
+ <string name="preference_category_data_choices">Tñurch t\'t orrum nyaamch</string>
+
+ <string name="preference_autocomplete_title_remove">URLs yemi wiiha ujiiñ</string>
+
+ <string name="preference_autocomplete_learn_more">Terabum ŕpo</string>
+
+ <string name="preference_autocomplete_custom_summary">URLs yemi wiha ñumchublwiha ŕmee sal chmii.</string>
+
+ <string name="preference_autocomplete_add_title">URL ha sal chmii</string>
+
+ <string name="preference_autocomplete_add_hint">URL tublich sal chmii</string>
+
+ <string name="preference_autocomplete_add_example2">Yabwika: mozilla.org</string>
+
+ <string name="preference_autocomplete_add_example">Yabwika: example.com</string>
+
+ <string name="preference_autocomplete_add_confirmation">URL jkaay yemi wii sal chmii.</string>
+
+ <string name="preference_autocomplete_menu_remove">Ujiñ</string>
+
+ <string name="preference_autocomplete_action_remove_content_description">Ujiñ</string>
+
+ <string name="preference_autocomplete_add_error">URL sal mukjabha mtkweek m´uu.</string>
+
+ <string name="preference_language">Paa kwawchu</string>
+ <string name="preference_language_systemdefault">Sistem kablwiwu ha sal chmii</string>
+
+ <string name="preference_category_privacy">Jabchu tpaay</string>
+ <string name="preference_privacy_block_ads">Chapayt kwaaw kwimchu ŕmewu mnmakum kjkeetem</string>
+ <string name="preference_privacy_block_ads_summary">Chapayt paa chu uubchu ñulyook sal m´amuhal chŕmeewu, may kos myootemkabyuso</string>
+ <string name="preference_privacy_block_analytics">Chapayt kŕmeechu chkk uu kajanu ha kos mnmakum kjkeetem</string>
+ <string name="preference_privacy_block_analytics_summary">Ya chapayt myoowu, uukjanuk pay chapayt wichu tawiin nkyuchu</string>
+ <string name="preference_privacy_block_social">Paa waach chkŕmeech paa tketch</string>
+ <string name="preference_privacy_block_social_summary">Wawchul wak sal ñmbaamum m´uu ñwak kabyuk trchech chuha tawinch paa wak ik</string>
+ <string name="preference_privacy_block_content">Chapyt kŕmeech paa t´t kyaata ñwak chapayt jkay ya</string>
+ <string name="preference_privacy_block_content_summary2">Ñumchubowum jabchu ñulyook kos janu bootem</string>
+ <string name="preference_privacy_category_cookies">Cookies tket</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">T´am 3 nyumuk cookies uj nyaamch jmuuk jmuukum</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Cookies jkayha paa t´tkyat</string>
+
+ <string name="preference_security_biometric">Ŕalum mchknaa sak muyok mjab hikyawa</string>
+
+ <string name="preference_privacy_secure_mode">Ŕpoobtem</string>
+ <string name="preference_privacy_stealth_summary">Jabchu web ha tjoot aplicación jkaay chkwa ñwam</string>
+
+ <string name="preference_category_security">Kryek janu</string>
+
+ <string name="preference_category_performance">Kabyuk trchech chu</string>
+ <string name="preference_performance_block_webfonts">Tñur web wi tkat</string>
+ <string name="preference_performance_block_webfonts_summary">Icon ee paa tñurch hal chapayt kamjwilchuhal aaw yome</string>
+
+ <string name="preference_performance_block_javascript">JavaScript tket</string>
+ <string name="preference_performance_block_javascript_summary">Jabchuhay wayiibrab jukewu yuso, kabyuu imyus kabyuwuha kos ŕpoochtema</string>
+
+ <string name="preference_default_browser2">%1$s ha sal amchu jaan myoobka</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Kamwiik daatha mwiruha m´emch</string>
+
+ <string name="preference_mozilla_telemetry_summary">Terabum ŕpo</string>
+
+ <string name="preference_mozilla_telemetry_summary2">Mozilla hay chmwiwuha paytum chyunk ka %1$s paytum wichkyaaw chajaanrab hikyawa.</string>
+
+ <string name="preference_privacy_notice">Kabwik yemi wii jan yuwuha</string>
+
+ <string name="preference_about">%1$s kabyuwuh</string>
+
+ <string name="preference_search_installed_search_engines">Motor chŕmechu ñuk chkwachumyok</string>
+
+ <string name="preference_search_restore">Motor chajaana januwa chŕmeech hay jan hikyawa</string>
+
+ <string name="preference_search_add2">+ Motor jkaay chŕmeech kyaaw jkaay sal chmii</string>
+ <string name="preference_search_remove_title">Motor chŕmeechu ujiñ</string>
+ <string name="preference_search_remove">Ujiiñ</string>
+
+ <string name="action_option_add_search_engine">Chŕmeechu sal chmii</string>
+
+ <string name="search_add_manually_name_hint">Motor chŕmechu muul</string>
+ <string name="search_add_manually_string">Caden ŕmee ñum trchech hi kyawa</string>
+ <string name="search_add_manually_save">Chkwaach</string>
+
+ <string name="search_add_manually_example">Yabwika: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Motor chŕmeechu jkaay kur sal chmiich.</string>
+
+ <string name="search_add_error_empty_name">Motor sal amchu muul sal chmiich</string>
+ <string name="search_add_error_duplicate_name">Motor chŕmechu kur sal chmiichum sal yak muul ñu mul.</string>
+
+ <string name="search_add_error_empty_search">Caden chŕmechu ukjabch</string>
+
+ <string name="search_add_error_format">Caden chŕmechu hay tñurchu sal kyakham nyamuha uuch</string>
+
+ <string name="content_description_clear_input">Tñurchi tkyeech</string>
+
+ <string name="content_description_dismiss_input">Kos ñul uuten</string>
+
+ <string name="content_description_erase">Sal amchu mujiñ</string>
+
+ <string name="content_description_tab_counter">Tñur chiichu sool: %1$s</string>
+
+ <string name="content_description_lock">Tublich chu jan</string>
+
+ <string name="accessibility_announcement_loading">Jukewu</string>
+
+ <string name="accessibility_announcement_loading_finished">Web wawu jukeewu</string>
+
+ <string name="content_description_menu">Chwichu terab</string>
+
+ <string name="indicator_content_description_menu">Tawiinchu chaterab kyaaw</string>
+
+ <string name="content_description_forward">Jiboom kyaamch</string>
+
+ <string name="content_description_reload">Web tkweek jukewu</string>
+
+ <string name="content_description_back">Sal amchu tkweek jabch</string>
+
+ <string name="content_description_stop">Web jabchuha chubŕkwich</string>
+
+ <string name="content_description_customtab_exit">Aplicación jubo kyakhal tkweek</string>
+
+ <string name="content_description_trackers_blocked">Chŕibchu chapayt ŕmeechuy ŕ´ap kyo</string>
+
+ <string name="content_description_blocking_switch">Chkŕmeech paa tketch</string>
+
+ <string name="your_rights">Mir mir mwii</string>
+
+ <string name="external_app_prompt_title">Jabchu aplicación jkayk solch</string>
+ <string name="external_app_prompt">%1$s hal mchpaa pay jabchu %2$s msol.</string>
+ <string name="external_app_prompt_no_app_title">Aplicacion ŕit jabchu solum mŕmee</string>
+ <string name="external_app_prompt_no_app">Aplicacion dispositiiv mwi ŕitulik yak yoya soltema. %1$s myaam %2$s mŕmee aplicación ŕit kwa solhikyawa.</string>
+ <string name="external_multiple_apps_matched_exit">Sal amchu jabch tpaay al chpaa?</string>
+
+ <string name="download_snackbar_finished">%1$s byir</string>
+
+ <string name="download_snackbar_open">Sol</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Paa kubtaar kos chyawtem</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <string name="firstrun_defaultbrowser_title">Myeemik chumwiwuha ta mwiluk</string>
+ <string name="firstrun_defaultbrowser_text2">Sal amchu ksool tpayha myaabraab mwaam. Cehapayt jkay knawchu ee jkay sal yak chumwiwu hal jaab wawchu t´t´orum kyakhal unuu tñur kwimch kajanha chmii chum.</string>
+
+ <string name="firstrun_search_title">Myeemik, chmŕmeewu</string>
+ <string name="firstrun_search_text">¿Ñukwee jkaayum yakum mŕmee´e? Chajanchu kur sal chmiich ha chubowu wiiha myok.</string>
+
+ <string name="firstrun_shortcut_title">Pantaal kajanha wayiibraw sal mchmii</string>
+ <string name="firstrun_shortcut_text">Amchu jnmiraabhal %1$s hal khal koha wamyiibraw sal mtkweek. \&quot;Tñur kwimch namanchuhal mchmii\&quot; im myok %1$s chnamanchuhal.</string>
+
+ <string name="firstrun_privacy_title">Myeemik chmwiwuha myok majanuk</string>
+ <string name="firstrun_privacy_text">%1$s ha sal amchu kajan mik mchmii pay sal amchu myeemik mwii ha kabuwu ha m´uk aplicación o tñur kwimch web hal amchu ha payrum m´uu.</string>
+
+ <string name="firstrun_close_button">¡M´eb´e!</string>
+ <string name="firstrun_skip_button">Kos ñulm´ebtem</string>
+ <string name="firstrun_next_button">Nulkpeeb</string>
+
+ <string name="content_blocking_disabled">-</string>
+
+ <string name="dialog_addtohomescreen_action_add">Sal chmii</string>
+
+ <string name="dialog_addtohomescreen_action_cancel">Tubspach</string>
+
+ <string name="notification_browsing_session_channel_name">Chyunch sal amchu ŕ´aap</string>
+
+ <string name="notification_browsing_session_channel_description">Chknaabchuhay chynchu ha %1$s ah ŕmara tawinch ŕisum. Kos aplicación ha msol yaŕaaltem o sal amchuhay boo kwawu uch yutem.</string>
+
+ <string name="tabs_tray_action_erase">Sal amchu mujiñ</string>
+
+ <string name="download_firefox">Firefox munaal</string>
+
+ <string name="your_rights_content1">%1$s software kos codig wiiytem solkyoha Mozilla ha ee jkay kubtar cyobchya.</string>
+
+ <string name="gv_prompt_username_hint">M´mulha myoka</string>
+ <string name="gv_prompt_password_hint">Ŕ\' amu</string>
+ <string name="gv_prompt_clear">Tkryee</string>
+
+ <string name="security_popup_secure_connection">Tublich chu jan</string>
+ <string name="security_popup_insecure_connection">Tublich chu kos jaan tpaay</string>
+ <string name="security_popup_security_verified">Say uu: %1$s</string>
+
+ <string name="find_in_page">Chŕmeechu myook</string>
+
+ <string name="find_in_page_input">Chŕmeechu myook</string>
+
+ <string name="find_in_page_result">%1$d/%2$d</string>
+
+ <string name="preference_performance_request_desktop_site">Trchechu mk\' kaab</string>
+
+ <string name="custom_tab_copy_url_action">URL tñurch</string>
+
+ <string name="preference_remote_debugging">Ñulyomuk tkryeechu USB/Wi-Fi nyaam</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <string name="preference_safe_browsing_title">Waachu klyeeb´e paa wakyaw mŕ´am</string>
+ <string name="preference_safe_browsing_summary">Amchu chknarp ee paa jwakyaa ŕ ´amcha, amchu malware ee amchu software kos yaŕaalch tpaay mtket.</string>
+
+ <string name="preference_exceptions">Kos ñul´ebchtpaay</string>
+ <string name="preference_exceptions_description">Chapayt sal kyaak amchu yak yoya mtket.</string>
+ <string name="preference_exceptions_menu_remove">Ujiiñ</string>
+ <string name="preference_exceptions_remove_all_button_label">Amchu ha paytum ujiiñ</string>
+
+ <string name="tab_crash_report_title">Tñur chmiichu hay kos jantem</string>
+ <string name="tab_crash_report_headline">Tuñur chmiichuhal trchech upaar um unuuch. Ñubyu kwal ibtem.</string>
+ <string name="tab_crash_report_description">Ñul amchu kŕ´apchuwukyawa kos chapayt chwatem, sakyaaw kos tkweek chajaantem.</string>
+ <string name="tab_crash_report_close_tab_button_label">Tñur chiichu ŕ´aap</string>
+
+
+
+
+ <string name="crash_report_send_crash_label">Wuñparum Mozilla kwiim</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-pl/strings.xml b/mobile/android/focus-android/app/src/main/res/values-pl/strings.xml
new file mode 100644
index 0000000000..134bf3888f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-pl/strings.xml
@@ -0,0 +1,1119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Anuluj</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Zapisz</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Wpisz adres lub szukaj</string>
+
+ <string name="teaser">Automatyczne przeglądanie prywatne.\nPrzeglądaj. Usuwaj. Powtórz.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Usunięto historię przeglądania.</string>
+ <string name="feedback_erase2">Usunięto historię przeglądania</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Usunięto historię przeglądania tej karty.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Wyszukaj „%1$s”</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Udostępnij…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Zgłoś problem ze stroną</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Otwórz w aplikacji %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Otwórz w…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Dodaj do ekranu głównego</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Dodaj do skrótów</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Usuń ze skrótów</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Ustawienia</string>
+ <string name="menu_about">O programie</string>
+ <string name="menu_help">Pomoc</string>
+ <string name="menu_rights">O prawach użytkownika</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Blokowanie</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Wyłączenie może rozwiązać niektóre problemy ze stroną</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blokowanie treści</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Wyłączenie może naprawić działanie niektórych stron</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Funkcja %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Udostępnij przez</string>
+
+ <string name="notification_erase_title_android_14">Usunąć historię przeglądania?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Stuknij lub wyczyść to powiadomienie, aby bezpiecznie usunąć historię przeglądania.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Stuknij lub przeciągnij to powiadomienie, aby bezpiecznie usunąć historię przeglądania.</string>
+
+ <string name="notification_erase_text">Usuń historię przeglądania</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Otwórz</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Usuń i otwórz</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Usuń</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Usuń historię przeglądania</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Usuń i otwórz</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Usuń i otwórz %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Wyszukaj w Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Wyszukaj w Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Wyszukaj w Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Wyszukaj w Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s daje większą kontrolę.</p>
+<p>Jako prywatna przeglądarka umożliwia:
+ <ul>
+ <li>wyszukiwanie i przeglądanie prosto z aplikacji</li>
+ <li>blokowanie elementów śledzących (można to zmienić w ustawieniach)</li>
+ <li>usuwanie ciasteczek oraz całej historii wyszukiwania i przeglądania</li>
+ </ul>
+</p>
+<p>%1$s jest tworzony przez Mozillę. Naszym celem jest wspieranie zdrowego i otwartego Internetu.<br/>
+<a href="%2$s">Więcej informacji</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Prywatność i bezpieczeństwo</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Śledzenie, ciasteczka, udostępniane dane</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Domyślna wyszukiwarka, automatyczne uzupełnianie</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">O programie %1$s, pomoc</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Wzmocniona ochrona przed śledzeniem</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Strony</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Przełączanie aplikacji</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Ogólne</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Domyślna przeglądarka, język</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Zbieranie i wykorzystywanie danych</string>
+
+ <string name="preference_category_search">Wyszukiwanie</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Podpowiedzi wyszukiwania</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s będzie wysyłał słowa wpisywane na pasku adresu do wyszukiwarki</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Domyślna</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Wyszukiwarka</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Włączone</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Wyłączone</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Automatyczne uzupełnianie adresów</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Dla popularnych stron</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Włącz, aby %s automatycznie uzupełniał ponad 450 popularnych adresów na pasku adresu.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Dla dodanych stron</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Włącz, aby %s automatycznie uzupełniał Twoje ulubione adresy.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Zarządzaj stronami</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Zarządzaj stronami</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Dodaj inny adres</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Własna lista automatycznego uzupełniania:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Dodaj adres</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Dodaj inny adres</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Dodaj inny adres</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Dodaj odnośnik do automatycznego uzupełniania</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Ciasteczka i dane witryn</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Udostępniane dane</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Usuń inny adres</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Więcej informacji</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Dodawanie i zarządzenie innymi adresami automatycznego uzupełniania.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Adres do dodania</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Wklej lub wpisz adres</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Przykład: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Przykład: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Dodano nowy adres.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Usuń</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Usuń</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Sprawdź poprawność wpisanego adresu.</string>
+
+ <string name="preference_language">Język</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Domyślny systemu</string>
+
+ <string name="preference_category_privacy">Prywatność</string>
+ <string name="preference_privacy_block_ads">Blokowanie śledzących reklam</string>
+ <string name="preference_privacy_block_ads_summary">Niektóre reklamy (nawet niekliknięte) śledzą odwiedziny zawierających je stron</string>
+ <string name="preference_privacy_block_analytics">Blokowanie śledzących statystyk</string>
+ <string name="preference_privacy_block_analytics_summary">Używane do zbierania, analizowania i mierzenia działań użytkownika, takich jak stuknięcia i przewijanie</string>
+ <string name="preference_privacy_block_social">Blokowanie śledzących społecznościowych</string>
+ <string name="preference_privacy_block_social_summary">Osadzane na stronach, aby śledzić ich odwiedziny i dodawać np. przyciski udostępniania</string>
+ <string name="preference_privacy_block_content">Blokowanie pozostałych śledzących</string>
+ <string name="preference_privacy_block_content_summary2">Włączenie może spowodować nieoczekiwane zachowanie niektórych stron</string>
+ <string name="preference_privacy_category_cookies">Blokowanie ciasteczek</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Nie, dziękuję</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Blokowanie tylko śledzących ciasteczek zewnętrznych witryn</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Blokowanie tylko ciasteczek zewnętrznych witryn</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blokowanie ciasteczek między witrynami</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Tak, proszę</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Odcisk palca odblokowuje aplikację</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Odblokowywanie za pomocą odcisku palca, jeśli dodano skróty lub kiedy witryna jest już otwarta w %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Tryb ukryty</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Ukrywanie stron podczas przełączania aplikacji i blokowanie wykonywania zrzutów ekranu.</string>
+
+ <string name="preference_category_security">Bezpieczeństwo</string>
+
+ <string name="preference_category_performance">Wydajność</string>
+ <string name="preference_performance_block_webfonts">Blokowanie czcionek sieciowych</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Może spowodować, że niektóre ikony lub obrazy będą niewidoczne</string>
+
+ <string name="preference_performance_block_javascript">Blokowanie skryptów JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Strony mogą się szybciej wczytywać, ale mogą także nie działać poprawnie</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Ustaw %1$s jako domyślną przeglądarkę</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Przesyłanie danych o użyciu</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Więcej informacji</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla zbiera wyłącznie informacje niezbędne do udostępniania i ulepszania %1$s.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Zasady ochrony prywatności</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Informacje licencyjne</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Używane przez nas biblioteki</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Biblioteki open source</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">O programie %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Zainstalowane wyszukiwarki</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Wybierz wyszukiwarkę</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Przywróć domyślne wyszukiwarki</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Dodaj inną wyszukiwarkę</string>
+ <string name="preference_search_remove_title">Usuń wyszukiwarki</string>
+ <string name="preference_search_remove">Usuń</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Dodaj inną wyszukiwarkę</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Wybierz preferowaną wyszukiwarkę:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Dodaj wyszukiwarkę</string>
+
+ <string name="search_add_manually_name_hint">Nazwa wyszukiwarki</string>
+ <string name="search_add_manually_string">Używany ciąg wyszukiwania</string>
+ <string name="search_add_manually_save">Zapisz</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Przykład: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Dodano nową wyszukiwarkę.</string>
+
+ <string name="search_add_error_empty_name">Wpisz nazwę wyszukiwarki</string>
+ <string name="search_add_error_duplicate_name">Zainstalowana wyszukiwarka już używa tej nazwy.</string>
+
+ <string name="search_add_error_empty_search">Wpisz ciąg wyszukiwania</string>
+
+ <string name="search_add_error_format">Upewnij się, że ciąg wyszukiwania zgadza się z formatem przykładu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Usuń tekst</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Zamknij</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Usuń historię przeglądania</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Otwarte karty: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Zabezpieczone połączenie</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Wczytywanie</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Wczytano stronę</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Więcej opcji</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Więcej opcji</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Przejdź do przodu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Ponownie wczytaj stronę</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Przejdź wstecz</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Zatrzymaj wczytywanie strony</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Wróć do poprzedniej aplikacji</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Liczba zablokowanych elementów śledzących</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blokowanie elementów śledzących</string>
+
+ <string name="your_rights">O prawach użytkownika</string>
+
+ <string name="external_app_prompt_title">Otwórz odnośnik w innej aplikacji</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Można wyjść z %1$s, aby otworzyć ten odnośnik w aplikacji %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Wyszukiwanie aplikacji mogącej otworzyć odnośnik</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Żadna aplikacja na urządzeniu nie może otworzyć tego odnośnika. Można wyjść z %1$s, aby wyszukać odpowiednią aplikację w „%2$s”.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Wyjść z trybu prywatnego?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">Ukończono „%1$s”</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Otwórz</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Dodano do skrótów</string>
+
+ <string name="error_hostLookup_title">Nie odnaleziono serwera</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Zamknij</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Witamy w przeglądarce %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Szybka. Prywatna. Skupiona na celu.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Pierwsze kroki</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s nie jest jak inne przeglądarki</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Usuwamy historię przeglądania po zamknięciu aplikacji, maksymalizując prywatność.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Ustaw przeglądarkę %1$s jako domyślną, aby chronić swoje dane przy każdym otwieranym odnośniku.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Ustaw jako domyślną przeglądarkę</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Pomiń</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Nowy poziom prywatności</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Przejdź na wyższy poziom prywatności. Blokuj reklamy i inne elementy mogące Cię śledzić między witrynami i wydłużające wczytywanie się stron.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Wyszukuj po swojemu</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Szukasz czegoś innego? Wybierz inną domyślną wyszukiwarkę w ustawieniach.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Dodawaj skróty do ekranu głównego</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Szybko wracaj do ulubionych stron w %1$s. Po prostu wybierz „Dodaj do ekranu głównego” z menu.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Prywatność na co dzień</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Ustaw %1$s jako domyślną przeglądarkę i korzystaj z zalet przeglądania prywatnego podczas otwierania stron z innych aplikacji.</string>
+
+ <string name="firstrun_close_button">OK</string>
+ <string name="firstrun_skip_button">Pomiń</string>
+ <string name="firstrun_next_button">Dalej</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">—</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Dodaj</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">Tak</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Anuluj</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">Nie</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Skrót będzie otwierany bez wzmocnionej ochrony przed śledzeniem</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sesja przeglądania prywatnego</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Powiadomienia umożliwiają usunięcie sesji %1$s jednym dotknięciem. Nie trzeba otwierać aplikacji ani widzieć, co jest otwarte w przeglądarce.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Usuń historię przeglądania</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Pobierz Firefoksa</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s to wolne oprogramowanie o otwartym kodzie źródłowym tworzone przez Mozillę i innych współtwórców.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s jest dostępny na warunkach licencji <a href="%2$s">MPL (Mozilla Public License)</a> i innych licencji open source.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Nie otrzymujesz żadnych praw ani licencji do znaków towarowych Mozilla Foundation i innych podmiotów, w tym do nazw i logotypów Mozilla, Firefox i %1$s. <a href="%2$s">Tutaj</a> znajduje się więcej informacji na ten temat.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Dodatkowy kod źródłowy programu %1$s jest dostępny na warunkach innych <a href="%2$s">licencji</a> wolnego oprogramowania i open source.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s używa także list blokowania dostarczanych przez Disconnect, Inc. jako oddzielny i niezależny produkt dostępny na warunkach licencji <a href="%2$s">GPLv3 (GNU General Public License v3)</a>, opisany <a href="%3$s">tutaj</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nazwa użytkownika</string>
+ <string name="gv_prompt_password_hint">Hasło</string>
+ <string name="gv_prompt_clear">Wyczyść</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Zabezpieczone połączenie</string>
+ <string name="security_popup_insecure_connection">Niezabezpieczone połączenie</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Zweryfikowane przez: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Bezpieczeństwo strony</string>
+ <string name="preference_autocomplete_duplicate_url_error">Adres już istnieje</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Znajdź na stronie</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Znajdź na stronie</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d z %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Znajdź następny wynik</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Znajdź poprzedni wynik</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Zamknij wyszukiwanie na stronie</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Wersja na komputery</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Wersja na komputery</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Skopiowano adres</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Narzędzia dla programistów</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Otwieranie odnośników w aplikacjach</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Zaawansowane</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Uprawnienia witryn</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Ograniczanie informacji o ciasteczkach</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Włączone</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Wyłączone</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Ograniczanie informacji o ciasteczkach</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Wyświetla mniej informacji o ciasteczkach przez automatyczne odrzucanie próśb o ich zaakceptowanie, kiedy to możliwe.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Ograniczanie informacji o ciasteczkach</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Włączone na tej witrynie</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Witryna obecnie nie jest obsługiwana</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Wyłączone na tej witrynie</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Ograniczanie informacji o ciasteczkach</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Wyłączone na tej witrynie</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Włączone na tej witrynie</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Włączyć ograniczanie informacji o ciasteczkach na witrynie %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Wyłączyć ograniczanie informacji o ciasteczkach na witrynie %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s usunie ciasteczka tej witryny i odświeży stronę. Usunięcie wszystkich ciasteczek może spowodować wylogowanie ze strony lub opróżnienie koszyka w sklepie.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s może próbować automatycznie odrzucać prośby o akceptację ciasteczek.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Ta witryna nie jest obecnie obsługiwana przez funkcję ograniczania informacji o ciasteczkach. Czy chcesz poprosić nasz zespół o sprawdzenie tej witryny i dodanie jej obsługi w przyszłości?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Anuluj</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Poproś o dodanie obsługi</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Przesłano prośbę o dodanie obsługi witryny.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Przesłano prośbę o dodanie obsługi witryny.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s próbuje odrzucać irytujące prośby o akceptację ciasteczek.\n\nZarządzaj preferencjami odrzucania w %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">ustawieniach</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automatyczne odtwarzanie</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Aby zezwolić:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Przejdź do ustawień Androida</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Stuknij <b>Uprawnienia</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Przejdź do ustawień</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Włącz <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Aparat</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Położenie</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Powiadomienia</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Treści chronione przez DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Pytanie o zezwolenie</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Zablokowane</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Dozwolone</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Zablokowane przez Androida</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Zezwalaj na dźwięk i wideo</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blokuj tylko dźwięk</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Zalecane</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blokuj dźwięk i wideo</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Badania</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox może od czasu do czasu instalować i przeprowadzać badania.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Więcej informacji</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Aplikacja zakończy działanie, aby zastosować zmiany</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Usuń</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktywne</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Ukończone</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Zdalne debugowanie przez USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Odblokuj</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Potwierdź za pomocą odcisku palca</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Można użyć odcisku palca, aby kontynuować obecną sesję aplikacji.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Otwórz odnośnik w nowej sesji</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Ikona odcisku palca</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Nie rozpoznano odcisku palca. Spróbuj ponownie.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Palec ruszył się za szybko. Spróbuj ponownie.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Wyświetlać podpowiedzi wyszukiwania?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> Aby uzyskać podpowiedzi, %1$s musi wysłać słowa wpisywane na pasku adresu do wyszukiwarki.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Nie</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Tak</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Część wyszukiwarek nie może wyświetlać podpowiedzi.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Zamknij</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Strona zachowuje się nie tak, jak powinna?\n Spróbuj wyłączyć ochronę przed śledzeniem</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Otwieraj najczęściej odwiedzane strony jednym stuknięciem%1$s Menu → Dodaj do ekranu głównego]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Otwieraj każdy odnośnik w %1$s\n Ustaw %1$s jako domyślną przeglądarkę</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Automatycznie uzupełniaj adresy najczęściej odwiedzanych stron\n Przytrzymaj dowolny adres na pasku adresu</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Otwórz odnośnik w nowej karcie\n Przytrzymaj dowolny odnośnik na stronie</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Wyłącz wskazówki na ekranie głównym</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Otwarto nową kartę</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Przejdź</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Włączono tryb pełnoekranowy</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Przechodzenie do odnośnika w nowej karcie bez pytania</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Blokowanie potencjalnie niebezpiecznych i podejrzanych stron</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blokowanie zgłoszonych podejrzanych i stanowiących zagrożenie stron oraz stron ze złośliwym i niechcianym oprogramowaniem.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Tryb używania wyłącznie protokołu HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Automatycznie próbuje łączyć się ze stronami za pomocą protokołu szyfrowania HTTPS w celu zwiększenia bezpieczeństwa.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Wyjątki</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Blokowanie treści jest wyłączone dla tych stron.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Usuń</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Usuń wszystkie strony</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blokowanie ciasteczek</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Czy chcesz blokować ciasteczka?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Karta uległa awarii</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Wystąpił problem z tą kartą.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Prywatna przeglądarka nigdy nic nie zapisuje, więc nie można przywrócić tej karty.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Zamknij kartę</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Zgłoś awarię Mozilli</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Elementy śledzące zablokowane od %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Treść</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Reklamy</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Społecznościowe</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Statystyki</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Wzmocniona ochrona przed śledzeniem</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Ochrona jest wyłączona na tej witrynie</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Ochrona jest włączona na tej witrynie</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Połączenie jest zabezpieczone</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Połączenie nie jest zabezpieczone</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Elementy śledzące i skrypty do blokowania</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Wstecz</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Usuń</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Zmień nazwę</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Zmień nazwę</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nazwa skrótu</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Zapisane i udostępnione obrazy &lt;b&gt;nie zostaną&lt;/b&gt; usunięte po wyczyszczeniu historii %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Motyw</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Jasny</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Ciemny</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Według funkcji oszczędzania energii</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Motyw urządzenia</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Ta witryna nie obsługuje protokołu HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s próbuje używać połączenia HTTPS, kiedy tylko jest to możliwe, aby zwiększyć bezpieczeństwo.
+ <a href="%2$s">Więcej informacji</a> <br/><br/>
+ Można to zmienić w Ustawienia → Prywatność i bezpieczeństwo → Bezpieczeństwo.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Niezabezpieczone połączenie</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Może to być problem konfiguracji serwera lub próba podania się za ten serwer przez podmiot nieuprawniony. <br/><br/>
+ Jeśli łączono się wcześniej z tym serwerem, błąd może być tymczasowy.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Ktoś może próbować podszywać się pod tę witrynę. Kontynuacja może być ryzykowna.</label>
+ <br><br>
+ <label>%1$s nie ufa certyfikatowi witryny <b>%2$s</b>, ponieważ jego wystawca jest nieznany, jest samopodpisany lub serwer nie przesyła właściwych certyfikatów pośrednich.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Zamknij kartę</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Uniemożliwiliśmy tej witrynie szpiegowanie Cię. Stuknij tarczę w dowolnej chwili, aby zobaczyć, co blokujemy.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Zamknij</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Ochrona jest włączona!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Domyślne ustawienia zapewniają silną ochronę, ale łatwo można dostosować je do własnych potrzeb.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Zamknij</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Stuknij tutaj, aby wyrzucić wszystko — historię, ciasteczka, wszystko — i zacząć od nowa na nowej karcie.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Zamknij</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widżet wyszukiwania</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Usunięto historię przeglądania! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Zacznij przeglądać w trybie prywatnym, a będziemy blokować elementy śledzące i inne złe rzeczy.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Następnym razem możesz szybciej zacząć przeglądanie prywatne za pomocą widżetu %1$s na ekranie głównym.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Dodaj widżet do ekranu głównego</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Dodano widżet do ekranu głównego</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ppl/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ppl/strings.xml
new file mode 100644
index 0000000000..38147cb312
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ppl/strings.xml
@@ -0,0 +1,1072 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Shikpulu</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Yek nemi</string>
+
+ <string name="action_save">Shikana</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Shiktemu u shiktajkwilu ne dirección</string>
+
+ <string name="teaser">Shipashalu ichtaka ka achtu.\nShipashalu. Shitapupu. Shikchiwa uksenpa.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Mupupujtuk kan tipashaluj yewa.</string>
+ <string name="feedback_erase2">Ne tay tikitak ikman pulijtuk</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Mupupujtuk kan tipashaluj tik ne ijitzun.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Shiktemu %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Shiktakuli…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Shina tay te yek tik ne sitioj</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Shiktapu tik %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Shiktapu tik…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Shiktali tik Achtu Iswat</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Shiksentali tik ne Atajos</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Shikishti pal ne Atajos</string>
+
+ <string name="menu_settings">Kan titajshitia</string>
+ <string name="menu_about">Taipanpa</string>
+ <string name="menu_help">Shinechpalewi</string>
+ <string name="menu_rights">Ne tay mupal</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Tapachiwiani tentzaktuk</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Su tiksewia yajini, yaja weli kiekchiwa sejse uijkayu tik ne sitioj</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Shiktentzakwa ne tay nemi ka kalijtik</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Shiksewi pal tikekchiwa sejse sitioj</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Metzwikilia %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Shiktakuli tik</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Ma mupupu kan nipashaluj yewa</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Shiktapu</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Shikpupu wan shiktapu</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Shikpupu</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Shikpupu kan nipashaluj yewa</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Shikpupu wan shiktapu</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Shikpupu wan shiktapu %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Shiktemu tik Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Shiktemu tik Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Shiktemu tik Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Shiktemu tik Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s metztekipanultia.</p>
+<p>Shikwi kenha ken se ichtaka tajtachialis:
+ <ul>
+ <li>Shitatejtemu wan shipashalu tik ne app</li>
+ <li>Shiktentzakwa ne tapachiwiani (ush shitajshitia uksenpa pal tikajkawa tekiti ne tapachiwiani)</li>
+ <li>Shikpupu pal tikpulua cookies wan tay tiktemuj wan kan tipashaluj yewa</li>
+ </ul>
+</p>
+<p>Mozilla kichiwtuk ne %1$s. Tiknekit tikajsit tikpiat ne Wey Matat yek wan tapujtuk.<br/>
+<a href="%2$s">Shikmatiuk</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Ichtakachiwalis wan tamanawilis</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Kan tikishpejpena ne tapachiwiani, cookies, wan dajdatuj</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Shiktali ma senpa nemi achtu, ma temi isel</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Ipanpa %1$s, tapalewilis</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Timutajpiya ukchupi yek keman kinekit yawit mupan</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Tay nemi ijtik ne Matapan</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Shikpata ne aplicación</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Muchi tajtaya</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Ne tajtachialis achtutalijtuk, taketzalis</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Kan tiksenputzua datuj wan ken tikwi</string>
+
+ <string name="preference_category_search">Shiktemu</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Shikneshti tay niweliskia niktemua</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s yawi kititania tay titajkwilua tik ne barraj ipal dirección tik ne tepusyulu taishtemua</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Ne achtutalijtuk</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Tepusyulu tatemua</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Timakaktuk</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Sewtuk</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL temi isel</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Kan tipajpashalua sejsenpa</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Ma %s temit insel sejsé 450 URLs mujmumatituk tik ne barraj ipal dirección.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Pal ne sijsitioj tiktalia</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Ma %s temit insel ne URLs taja mugustuj.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Shiktekimaka ne sijsitioj</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Shiktekimaka ne sijsitioj</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Shiktali ne mu-URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Ne mulistaj temi isel:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Shiktali uksé URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Shiktali ne mu-URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Shiktali ne mu-URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Shiktali se ilpika pal temi isel</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies wan ne idatuj ne sitioj</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Kan tikishpejpena ne datuj</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Shikishti mu-URLs</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Shikmatiuk</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Shiktali u shina ken taja tikneki ma temi isel ne URLs.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Shiktali ne URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Shiksalu ush shikishtuka ne URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Machiut: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Machiut: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Yankwik mu-URL mutalijtuk.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Shikishti</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Shikishti</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Shikpepeta uksenpa ne URL tiktajkwiluj.</string>
+
+ <string name="preference_language">Taketzalis</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Achtutalijtuk sistemaj</string>
+
+ <string name="preference_category_privacy">Tay nemi ichtaka</string>
+ <string name="preference_privacy_block_ads">Shiktentzakwa ne tapachiwiani ipal tanawatilis</string>
+ <string name="preference_privacy_block_ads_summary">Sejse tanawatilis kishpelwiat kan tipashalua, melka tesu tikpachua</string>
+ <string name="preference_privacy_block_analytics">Shiktentzakwa ne tapachiwiani tapepeta</string>
+ <string name="preference_privacy_block_analytics_summary">Mukwi pal mukululua, muishpepeta wan mutamachiwa tay tikchiwa keman titatasa wan titamatilua</string>
+ <string name="preference_privacy_block_social">Shiktentzakwa ne tapachiwiani kimati kan tinejnemi</string>
+ <string name="preference_privacy_block_social_summary">Muishtukatuk kan tipashalua pal metzishpelwia wan pal kineshtia ken yaja tekiti kenha ken ne bojbotón pal tiktakulia</string>
+ <string name="preference_privacy_block_content">Shiktentzakwa ujukseuk tapachiwiani ipal tay kipia kalijtik</string>
+ <string name="preference_privacy_block_content_summary2">Asu tiktimaka, sejseuk iswat welit tekitit ken te tikchia</string>
+ <string name="preference_privacy_category_cookies">Shiktentzakwa cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Tesu</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Shiktentzakwa semaya ne cookies tapachiwiani ipal sejseuk</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Shiktentzakwa semaya ne cookies ipal sejseuk</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Shiktentzakwa ne cookies ipal sitioj nepanujtuk</string>
+
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ejé</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Shiktali ne itashkalchin mumapipil pal tikalaki tik ne aplicación</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Shiktapu iwan mumapipiltashkal asu tiktalijtuk Shortcuts u keman se sitioj web tapujtuka tik %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Tay ichtaka</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Shikinaya ijiswat kwak tikpata aplicación wan maka shikajkawa ma muishkupina ne pantallaj.</string>
+
+ <string name="preference_category_security">Tetajpialis</string>
+
+ <string name="preference_category_performance">Shiktamachiwa ken tekiti</string>
+ <string name="preference_performance_block_webfonts">Shiktentzakwa ne tajkwilultzin ipal ne Matapan</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Anka puliwiskiat ijiconoj wan kwijkwikwil</string>
+
+ <string name="preference_performance_block_javascript">Shiktentzakwa JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Ne iswat weli mukimiltia uk talul, melka tesu weli tekiti ken taja te tikneki</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Shikchiwa %1$s ken ne achtutalijtuk tajtachialis</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Shiktitani ne datuj ipanpa keski seujti nipashalua</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Shikmatiuk</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla kineki kiululua sema tay timunekit pal tikmakat wan tikekchiwiliat muchi ne %1$s.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Tanawatilis ipal ne ichtaka</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Ipanpa %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Tejtepusyulu tatemuat ajajshitilijtuk</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Shikishpejpena ne tepusyulu tatemua</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Shimukwepa ka achtutalijtuk tepusyulu tatemua</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Shiktali seuk tepusyulu tatemua</string>
+ <string name="preference_search_remove_title">Shikishti muchi ne tepusyulu tatemua</string>
+ <string name="preference_search_remove">Shikishti</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Shiktali seuk tepusyulu tatemua</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Shikishpejpena mutepusyulu mugustuj</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Shiktali se tepusyulu tatemua</string>
+
+ <string name="search_add_manually_name_hint">Shiktemu ne itukay ne tepusyulu tatemua</string>
+ <string name="search_add_manually_string">Ne tajtaketzalis yawit mutemuat</string>
+ <string name="search_add_manually_save">Shikana</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Machiut: machiut.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Shiktali se yankwik tepusyulu tatemua.</string>
+
+ <string name="search_add_error_empty_name">Shiktajkwilu ne itukay ne tepusyulu tatemua</string>
+ <string name="search_add_error_duplicate_name">Seuk tepusyulu tatemua kipiaya ne sesan itukay.</string>
+
+ <string name="search_add_error_empty_search">Shiktajkwilu tay tikneki tiktemua</string>
+
+ <string name="search_add_error_format">Shikpepeta ma ne tajtaketzalis tejtemujtuk kenha ken nemi ne Machiut</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Shikpupu ne mutajkwilujtuk</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Shikishti</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Shikpupu kan tipashaluj yewa</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Itzujtzun tajtapujtuk: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Muchi yek keman nikneki nimusalua</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Mukimiltia</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Ne sitioj matapan mukimiltijtuk</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Ukchiupi taishpejpenalis</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Botón pal nikita uksé taishpejpenalis</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Shu ka ishpan</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Ma mukimilti ne sitioj matapan uksenpa</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Shimukwepa ka ipan</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Makaya shikimilti ne sitioj matapan</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Shimukwepa ne aplicación panutuk</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Tapual ipal tapachiwiani tentzaktuk</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Shiktentzakwa muchi ne tapachiwiani</string>
+
+ <string name="your_rights">Tay mupal</string>
+
+ <string name="external_app_prompt_title">Shiktapu ne ilpika tik seuk aplicación</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Tiweli tikisa tik %1$s pal tiktapua ini ilpika tik %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Shikajsi se aplicación weli kitapua ne ilpika</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Te kanaj se aplicación weli kitapua ini ilpika. Tiweli tikisa tik %1$s pal tiktemua %2$s ipal se aplicación weli kitapua.\n\n</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Tikneki tikisa tik ne ichtaka pashalulis?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s tamik</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Shiktapu</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Ne servidor te muajsik</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Shiktzakwa</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Yek shiajsi %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Talul.Ichtaka.Te timupulua.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Shipewa</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s tesu kenha ne seuk tajtachialis</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Tejemet tikpupuat tay tikitztuk keman tiktzakwa ne app pal tipashalua ichtaka sejsenpa.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Shikwepa %1$s ne achtutalijtuk pal tikmanawi mudatoj iwan sejsé ilpika tiktapua.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Shiktali ken ne tajtachialis achtutalijtuk</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Te nikneki nikita</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Shikchikawa ne muichtakanemilis</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Tiweli tipashalua ichtaka te kenha ken ne sejseuk. Shiktentzakwa muchi ne tanawatilis ush muchi tay weliskia metzpachiwia keman tikita ne sitioj wan tay kichiwa yujyulik kan mukimiltiat ne ijiswat.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Ken tikneki titatemua</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Tiktemua seuk? Shikajshiti ukse achtutalijtuk tepusyulu tatemua.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Shiktali tamelawka tik ne achtu iswat</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Shimukwepa tik ne sitioj kan mugustuj tipashalua %1$s talul. Semaya shikishpejpena \&quot;Shiktali tik ne Achtu Iswat\&quot; itech ne menú %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Shinemi ichtaka mujmusta</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Shikajshiti %1$s ken tajtachialis mupal wan tikitas ka tiweliskia tipashalua ichtaka kwak tiktapua ijiswat tik ujukse aplicaciones.</string>
+
+ <string name="firstrun_close_button">Yek nemi, nikmatiaya!</string>
+ <string name="firstrun_skip_button">Te nikneki nikita</string>
+ <string name="firstrun_next_button">Ne witz</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Shiktali</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">EJE</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Shikajkawa</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">TESU</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Ne ujti kutu mutapus iwan Enhanced Tracking Protection sewijtuk</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Tanamikilis pal tipashalua ichtaka</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Tajtanawatilis metzajkawat tikpupua mu%1$s tanamikilis kan tiktasa iwan mumapipil. Te nemi pal tiktapu ne aplicacion ush pal tikita tay panu tik ne tajtachialis.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Shikpupu kan tipashaluj yewa</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Shiktemulti Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s te metztajtanilia tumin wan yaja se software ipal walajkewalis tapujtuk. Mozilla wan sejseuk kichijtiwit mupal.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[Tiweli tikwi %1$s kwak titakamati tay kituktia <a href="%2$s">Mozilla Public License</a> wan sejseuk licenciaj iwan walajkewalis tapujtuk.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Tesu timetzajkawat tikwi ne tay tupal wan ne lijlicenciaj ipal imajmarcaj wawasujtuk ne Fundación Mozilla ush uksé, nian ne itukay ush ichimal Mozilla, FireFox ush %1$s. Su tikneki tikmatiuk ipanpa, shu <a href="%2$s">nikan</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Ukse icodigoj walajkewalis ipal %1$s weli muajsi tik sejseuk walajkewalis te mutashtawia wan tapujtuk <a href="%2$s">licenciaj</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s nusan kikwi ne ilistaj Disconnect, Inc. pal tatentzakwa ken itekiw tepal wan isel tik ne <a href="%2$s">GNU Licenciaj General Public v3</a>, wan weli muita <a href="%3$s">nikan</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Mutukay usuarioj</string>
+ <string name="gv_prompt_password_hint">Ichtaka taketzalis</string>
+ <string name="gv_prompt_clear">Shikpupu</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Timusalua wan tinejmachnemi</string>
+ <string name="security_popup_insecure_connection">Timusalua wan tesu nejmachnemi</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Kitak yek %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Tetajpialis kan tipashalua</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL nemia</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Shikajsi tik ne iswat</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Shikajsi tik ne iswat</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d ipal %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Shikajsi tay yawi kisa nemanha</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Shikajsi tay kiski yakin</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Maka shikwi tay muajsik tik ne iswat</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Shikita version tajkwilultapech</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Ne sitioj ipal ne desktop</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL kupintuk</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Tajtaiwan pal titakejketza</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Shiktapu ne ijilpika tik ne apps</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Tapanawilis</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Tay tikajkawa ma muchiwa tik ne sitioj</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Takashawani ipal ne ibanner ne cookie</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Timakaktuk</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Sewtuk</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Takashawani ipal ne ibanner ne cookie</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Shikita chupi bajbaners kwak mutawelkwepilia isel ne itajtanilis ne cookie, su weli.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Takashawani ipal ne ibanner ne cookie</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">SHIKTIMAKA tik ini sitioj</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">SHIKSEWI tik ini sitioj</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Takashawani ipal ne ibanner ne cookie</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">SHIKSEWI tik ini sitioj</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">SHIKTIMAKA tik ini sitioj</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Shiktimaka Cookie Banner Reduction ipal %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Shiksewi Cookie Banner Reduction ipal %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s yawi kipupua ne icookies ini sitioj wan yawi kiyankwilia ne iswat. Asu tikpupua muchi ne cookies, mutukey yawi mukishtia u yawi tuyawi muchikiw kan nemi tay tikneki tikua.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s weli kiejekua isel kitawelkwepilia ne itajtanilis ne cookie.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s kiejekua kitawelkwepilia ne itajtanilis ne cookie pal kikutamima ne ipajpanti ne cookie takakasua.\n\nShiktukti ken mugustuj ne ipanti ne cookie tik %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">tachijchiwalis</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Ma mupewalti isel</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Pal tikajkawa:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Shu tik ne tajtachiwalis Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Shikpachu <b>Panulis</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Shu tik tachijchiwalis</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Shikpata <b>%1$s</b> pal nemi TIMAKATUK]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Cámaraj</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Micrófonoj</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Kan muajsi</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Tanawatilis</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Tay kipia kalijtik ne DRM tatuktia</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Shiktajtani ma muajkawa</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Mutentzaktuk</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Muajkawtuk</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Kitentzaktuk Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Shikajkawa ma tzalani wan ma muita</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Te ma mukaki</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Muyeknekituk</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Te ma mukaki wan te ma muita</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Tapepetalis</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox weliskia kitalia wan kipewaltia tapepetalis kemanian.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Shikmatiuk</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Ne aplicación mutzakwas pal mupata yek.</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Shikishti</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Activoj</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Muajshitijtuk</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Shitayekchiwa wejka iwan ne USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Shikchululti</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Shina kia iwan ne ikwikwil mumapipiltashkal</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Tiweli tikpachua ne ikwikwil mumapipiltashkal pal naka tik ne isesión ne aplicación sanuk.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Shiktapu ne Ilpika tik Yankwik Tanamikilis</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Ne iíconoj ne ikwikwil ne mapipiltashkal</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Ne mapipiltashkal tesu muishmati. Shikejeku uksenpa.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Tikpanultij mumapipil sujsul talul. Shikejeku uksenpa.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Shikneshti tay niweliskia niktemua</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Pal tikita tanawatilis, %1$s kineki kititania tay tikijkwilua tik ne ibarraj ne dirección tik ne tepusyulu tatemua.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Tesu</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Eje</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Sejse tepusyulu tatemuat te welit tanawatiat.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Shikishti</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Kan titajtachia te tekiti ken tikneki?\n Anka su tiksewia Tamanawalis itech Tapachiwiani</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Shiktasa sema senpa pal tikalaki tik ne ijiswat taja tikita mas%1$s Menu > Shiktalili tik Achtu Iswat]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Shiktapu sejse ilpika %1$s\n Shikchiwa %1$s ken ne achtutalijtuk tajtachialis</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Ma temit isel ne URLs ipal kan taja sejsenpa tipashalua\n Shikpajpachu ne URL tay tikneki ijtik ne barraj ipal dirección</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Shiktapu se ilpika tik ukse itzun\n Shikpajpachu yek ne ilpika taja tikneki tik se iswat</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Ma musewi ne tajtanawatial ijpak ne achtu iswat</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Se yankwik itzun tapuik</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Shikpata</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Tikalaki ne modoj pantallaj patawak</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Shiktapu ne ilpika melaktik tik ukse itzun</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Ma mutentzakwakan ne sijsitioj tesajsay wan tashijshikuani</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Shiktentzakwa ne sijsitioj tesajsay wan tashijshikuani, sitioj malware. wan sitioj ipal software tesu tikneki.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Modoj HTTPS-Only </string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Kiejekua musalua isel tech sijsitioj, kikwi ne protocoloj ipal ne inashtuk HTTPS pal mumanawia uk yek.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Tay te nemi muishtukatuk</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Taja tiksewij Tatentzakwalis ipal Tay Nemi ka Ijtik ipal ne isijsitioj ne Wey Matat.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Shikishti</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Shikishti muchi ne sitioj ipal ne matapan</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Shiktentzakwa ne cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Tiknekiskia tiktentzakwa ne cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Ne itzun kunaktuk nemi</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Shitapupulwi. Saman tikpiat uijkayu iwan ini itzun.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Ika se tajtachialis ichtaka, tejemet te keman tikanat nian talneshtiat ini itzun.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Shiktzakwa ne itzun</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Shikilwi Mozilla ka mukunakak</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Tajtapachiwiani tentzaktiwit an %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Tay kipia kalijtik</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Publicidad</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analíticaj</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Timutajpiya ukchupi yek keman kinekit yawit mupan</string>
+
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Tajpialis SEWTUK ipal ini sitioj</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Ne tajtapialis TIMAKATIWIT ipal ini sitioj</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Tasalulis mutajpia</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Tasalulis tesu mutajpia</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Ne tajtapachiwiani wan scripts yawit mutentzakwat</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Shimukwepa</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Shikishti</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Shiktukeyti uksenpa</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Shiktukeyti uksenpa</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Ne itukey ne ujti kutu</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Ne kwikwil tikanki wan tiktakulij &lt;b&gt;tesu yawit&lt;/b&gt; mupupuat keman tikpupua %1$s tay tiktemuj yewa</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Temaj</string>
+
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Chipawak</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Kunyua</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Kitalijtuk ika kiana bateríaj</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Shiktali ne itemaj ne dispositivoj</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Ini sitioj tesu kiselia HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s kiejekua kikwi se musalulis HTTPS keman weli pal nejmachnemi.
+ <a href="%2$s">Shitamati ukchupi</a> <br/><br/>
+ Shikpata ini tachijchiwalis tik Tachijchiwalis > Ichtakayu &amp; Nejmachnemilis> Nejmachnemilis.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Ne Musalulis tesu nejmach</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Ini weli mukwepa ne uijkayu iwan ne iconfiguración ne servidor, u anka se akaj kiejekua tashijshikua mukwepa ne servidor. <br/><br/>
+ Asu timusalujtuk yek itech ini servidor ikman, ne tajtakul anka ishtuna chupi.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Se akaj anka kiejekua tashijshikua mukwepa ne sitioj wan asu tipanu weli tesajsay.</label>
+ <br><br>
+ <label>%1$s tesu kichiwa confianzaj tik <b>%2$s</b> ika ne emisor pal ne certificadoj tesu mumati, ne certificadoj kijkwiluj ne ifirmaj isel wan ne servidor tesu kititania ne yejyek cejcertificadoj intermedios.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Shiktzakwa ne itzun</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Tikinhitzket! Tikinhitzket te ma metzishpelwikan. Shikpachu ne chimal keman tikneki pal tikita tay tikitzket.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Shiktzakwa tentzin nejnesi.</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Timutajpishtuk!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Tiweli tikajshitia ini ken achtutalijtuk pal timutajpia yek. Wan te uij titajshitia pal tichiwa tay timuneki.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Shikishti</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Shikpachu nikan pal tikmima muchi — historial, cookies, muchi — wan shipewa uksenpa tik uksé itzun.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Shiktzakwa</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget tatemua</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Muhistorial mupupujtuka!🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Shikpewalti musesión tajtachialis ichtaka, wan tejemet tiu tiktentzakwa ne tapajpachiwiani wan seuk te yejyek kwak tipashalua.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Tejemet timetzajkawiliat iwan ne tajtachialis ichtaka wan shipewa talul uksenpa iwan ne widget ipal %1$s tik ne achtu iswat.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Shiktali se widget tik ne achtu iswat</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Ne widget mutalijtuk tik ne achtu iswat</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-pt-rBR/strings.xml b/mobile/android/focus-android/app/src/main/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000000..31a8fe7df3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-pt-rBR/strings.xml
@@ -0,0 +1,1122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Cancelar</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Salvar</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Pesquise ou digite um endereço</string>
+
+ <string name="teaser">Navegação privativa automática.\nNavegar. Limpar. Repetir.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Seu histórico de navegação foi apagado.</string>
+ <string name="feedback_erase2">O histórico de navegação foi limpo</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">O histórico de navegação da aba foi apagado.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Pesquisar %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Compartilhar…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Relatar problema no site</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Abrir no %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Abrir no…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Adicionar à tela do dispositivo</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Adicionar aos atalhos</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Remover dos atalhos</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Configurações</string>
+ <string name="menu_about">Sobre</string>
+ <string name="menu_help">Ajuda</string>
+ <string name="menu_rights">Seus direitos</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Rastreadores bloqueados</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Desativar pode resolver problemas de sites</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Bloqueio de conteúdo</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Desative para corrigir alguns sites</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Tecnologia %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Compartilhar via</string>
+
+ <string name="notification_erase_title_android_14">Limpar histórico de navegação?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Toque ou remova esta notificação para limpar com segurança o histórico de navegação.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Toque ou deslize esta notificação para limpar com segurança o histórico de navegação.</string>
+
+ <string name="notification_erase_text">Limpar histórico de navegação</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Abrir</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Limpar e abrir</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Limpar</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Limpar histórico de navegação</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Limpar e abrir</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Limpar e abrir %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Pesquisar no Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Pesquisar no Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Pesquisar no Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Pesquisar no Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>Assuma o controle com o %1$s.</p>
+<p>Use para navegação privativa:
+ <ul>
+ <li>Pesquisa e navegação direto no aplicativo.</li>
+ <li>Bloqueio de rastreamento (ou mude as configurações para permitir).</li>
+ <li>Limpeza de cookies e histórico de pesquisa e navegação.</li>
+ </ul>
+</p>
+<p>O %1$s é produzido pela Mozilla. Nossa missão é promover uma internet saudável e aberta.<br/>
+<a href="%2$s">Saiba mais</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privacidade e segurança</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Rastreamento, cookies, escolha de dados</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Definição de padrão, preenchimento automático</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Informações sobre o %1$s, suporte</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Proteção aprimorada contra rastreamento</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Conteúdo web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Alternar entre aplicativos</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Geral</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Navegador padrão, idioma</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Coleta e uso de dados</string>
+
+ <string name="preference_category_search">Pesquisa</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Receber sugestões de pesquisa</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">Se ativar, o %1$s envia o que você escreve na barra de endereços para o mecanismo de pesquisa escolhido.</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Padrão</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Mecanismo de pesquisa</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Ativado</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Desativado</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Preenchimento automático de URLs</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Em sites populares</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Ative para o %s completar automaticamente mais de 450 URLs populares na barra de endereços.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Em sites que você adicionar</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Ative para o %s completar automaticamente suas URLs preferidas.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Gerenciar sites</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Gerenciar sites</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Adicionar URL personalizada</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Sua lista de preenchimento automático:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Adicionar URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Adicionar URL personalizada</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Adicionar URL personalizada</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Adicionar link ao preenchimento automático</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies e dados de sites</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Escolha de dados</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Remover URLs personalizadas</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Saiba mais</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Adicione e gerencie URLs personalizadas de preenchimento automático.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL a adicionar</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Cole ou digite uma URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Exemplo: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Exemplo: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Adicionada nova URL personalizada.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Remover</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Remover</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Verifique novamente a URL digitada.</string>
+
+ <string name="preference_language">Idioma</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Padrão do sistema</string>
+
+ <string name="preference_category_privacy">Privacidade</string>
+ <string name="preference_privacy_block_ads">Bloquear rastreadores de anúncios</string>
+ <string name="preference_privacy_block_ads_summary">Alguns anúncios rastreiam visitas aos sites, mesmo que você não clique nos anúncios</string>
+ <string name="preference_privacy_block_analytics">Bloquear rastreadores analíticos</string>
+ <string name="preference_privacy_block_analytics_summary">São usados para coletar, analisar e medir atividades como toque e deslizamento</string>
+ <string name="preference_privacy_block_social">Bloquear rastreadores de mídias sociais</string>
+ <string name="preference_privacy_block_social_summary">Incorporados em sites para rastrear suas visitas e exibir funcionalidades como botões de compartilhar</string>
+ <string name="preference_privacy_block_content">Bloquear outros rastreadores</string>
+ <string name="preference_privacy_block_content_summary2">Este bloqueio pode causar comportamento inesperado em algumas páginas</string>
+ <string name="preference_privacy_category_cookies">Bloquear cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Não, obrigado</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Bloquear somente cookies rastreadores de terceiros</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Bloquear somente cookies de terceiros</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Bloquear cookies entre sites</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Sim, por favor</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Usar impressão digital para desbloquear o aplicativo</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Desbloqueie usando impressão digital se você adicionou atalhos ou quando um site já estiver aberto no %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Furtividade</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Ocultar páginas web ao mudar de aplicativo e bloquear capturas de tela.</string>
+
+ <string name="preference_category_security">Segurança</string>
+
+ <string name="preference_category_performance">Desempenho</string>
+ <string name="preference_performance_block_webfonts">Bloquear fontes web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Pode resultar em falta de ícones ou imagens</string>
+
+ <string name="preference_performance_block_javascript">Bloquear JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">As páginas podem carregar mais rápido, mas também podem ter comportamento inesperado</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Definir o %1$s como navegador padrão</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Enviar dados de uso</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Saiba mais</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">A Mozilla se empenha para coletar somente o necessário para fornecer e melhorar o %1$s para todos.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Aviso de privacidade</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Informações de licenciamento</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliotecas que usamos</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Bibliotecas de código aberto</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Sobre o %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Mecanismos de pesquisa instalados</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Escolha o mecanismo de pesquisa</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Restaurar mecanismos de pesquisa padrão</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Adicionar outro mecanismo de pesquisa</string>
+ <string name="preference_search_remove_title">Remover mecanismos de pesquisa</string>
+ <string name="preference_search_remove">Remover</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Adicionar outro mecanismo de pesquisa</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Selecione seu mecanismo preferido:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Adicionar mecanismo de pesquisa</string>
+
+ <string name="search_add_manually_name_hint">Nome do mecanismo de pesquisa</string>
+ <string name="search_add_manually_string">Termo de pesquisa a ser usado</string>
+ <string name="search_add_manually_save">Salvar</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Exemplo: example.com/search/?q= %s</string>
+
+ <string name="search_add_confirmation">Adicionado novo mecanismo de pesquisa.</string>
+
+ <string name="search_add_error_empty_name">Digite o nome do mecanismo de pesquisa</string>
+ <string name="search_add_error_duplicate_name">Um mecanismo de pesquisa instalado já está usando esse nome.</string>
+
+ <string name="search_add_error_empty_search">Digite um código de pesquisa</string>
+
+ <string name="search_add_error_format">Verifique se o código de pesquisa corresponde ao formato do exemplo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Limpar campo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Dispensar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Limpar histórico de navegação</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Abas abertas: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Conexão segura</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Carregando</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Site carregado</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Mais opções</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Botão de outras opções</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Próxima página</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Recarregar o site</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Página anterior</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Interromper carregamento do site</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Retornar ao aplicativo anterior</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Número de rastreadores bloqueados</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Bloquear rastreadores</string>
+
+ <string name="your_rights">Seus direitos</string>
+
+ <string name="external_app_prompt_title">Abrir link em outro app</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Você pode sair do %1$s para abrir este link no %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Encontre um aplicativo que possa abrir o link</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Nenhum aplicativo do seu dispositivo consegue abrir este link. Você pode sair do %1$s para procurar no %2$s um aplicativo compatível.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Sair da navegação privativa?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s concluído</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Abrir</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Adicionado aos atalhos!</string>
+
+ <string name="error_hostLookup_title">Servidor não encontrado</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Fechar</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Boas-vindas ao %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rápido. Privativo. Sem distrações.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Introdução</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">O %1$s não é como outros navegadores</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Limpamos o histórico quando você fecha o aplicativo para privacidade extra.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Torne o %1$s o padrão para proteger seus dados a cada link que você abrir.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Definir como navegador padrão</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Pular</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Potencialize sua privacidade</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Leve a navegação privativa ao próximo nível. Bloqueie anúncios e outros conteúdos que podem rastrear você entre sites e aumentar o tempo de carregamento de páginas.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Pesquise à sua maneira</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Procurando algo diferente? Use as configurações para escolher outro mecanismo de pesquisa padrão.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Adicione atalhos na sua tela inicial</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Volte rapidamente a seus sites preferidos no %1$s. Basta usar \&quot;Adicionar à tela inicial\&quot; no menu do %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Torne privacidade um hábito</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Defina o %1$s como navegador padrão e tenha os benefícios da navegação privativa ao abrir páginas a partir de outros aplicativos.</string>
+
+ <string name="firstrun_close_button">Ok, entendi</string>
+ <string name="firstrun_skip_button">Pular</string>
+ <string name="firstrun_next_button">Avançar</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Adicionar</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">SIM</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Cancelar</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NÃO</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">O atalho será aberto com a proteção aprimorada contra rastreamento desativada</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sessão de navegação privativa</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Notificações permitem limpar a sessão do %1$s com um único toque. Você não precisa abrir o aplicativo ou ver o que está no navegador.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Limpar o histórico de navegação</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Baixar o Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[O %1$s é um software livre e de código aberto, feito pela Mozilla e outros colaboradores.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[O %1$s é disponibilizado conforme os termos da <a href="%2$s">Mozilla Public License</a> e outras licenças de código aberto.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Não lhe são concedidos quaisquer direitos ou licenças sobre marcas registradas da Fundação Mozilla ou de terceiros, incluindo os nomes ou logotipos da Mozilla, Firefox ou %1$s. Informações adicionais podem ser encontradas <a href="%2$s">aqui</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Códigos fonte adicionais do %1$s estão disponíveis sob várias outras <a href="%2$s">licenças</a> livres e de código aberto.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[O %1$s também usa listas de bloqueio fornecidas pela Disconnect, Inc., trabalho separado e independente, disponibilizadas <a href="%3$s">aqui</a> sob a <a href="%2$s">GNU General Public License v3</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Nome de usuário</string>
+ <string name="gv_prompt_password_hint">Senha</string>
+ <string name="gv_prompt_clear">Limpar</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Conexão segura</string>
+ <string name="security_popup_insecure_connection">Conexão não segura</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Homologado por: %1$s </string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Segurança do site</string>
+ <string name="preference_autocomplete_duplicate_url_error">A URL já existe</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Procurar na página</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Procurar na página</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d de %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Próximo resultado</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Resultado anterior</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Descartar procura na página</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Site do desktop</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Site do desktop</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL copiada</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Ferramentas de desenvolvimento</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Abrir links em aplicativos</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avançado</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Permissões de sites</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Redução de avisos de cookies</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Ativado</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Desativado</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Redução de avisos de cookies</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Veja menos avisos, rejeitando automaticamente solicitações de cookies, quando possível.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Redução de avisos de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ATIVADO neste site</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Atualmente não funciona neste site</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">DESATIVADO neste site</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Redução de avisos de cookies</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">DESATIVADO neste site</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ATIVADO neste site</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Ativar redução de avisos de cookies em %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Desativar redução de avisos de cookies em %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">O %1$s irá limpar os cookies deste site e atualizar a página. Limpar todos os cookies pode encerrar a sessão de acesso no site ou esvaziar carrinhos de compras.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">O %1$s pode tentar rejeitar solicitações de cookies automaticamente.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">A redução de avisos de cookies atualmente não funciona neste site. Quer pedir à nossa equipe para revisar este site para funcionar no futuro?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Cancelar</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Pedir para funcionar</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Enviado pedido para funcionar neste site.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Enviado pedido para funcionar neste site.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">O %1$s tenta rejeitar solicitações de cookies para descartar avisos chatos de cookies.\n\nGerencie as preferências de avisos de cookies nas %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">configurações</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Reprodução automática</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Para permitir:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Acesse as configurações do Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Toque em <b>Permissões</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Ir para configurações</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Mude <b>%1$s</b> para PERMITIDO]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Câmera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Microfone</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Localização</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notificações</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Conteúdo controlado por direitos autorais</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Perguntar se deve permitir</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Bloqueado</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Permitido</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Bloqueado pelo Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Permitir áudio e vídeo</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Bloquear apenas áudio</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Recomendado</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Bloquear áudio e vídeo</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Estudos</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">O Firefox pode instalar e executar estudos de vez em quando.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Saiba mais</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">O aplicativo irá fechar para aplicar as alterações</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Remover</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Ativo</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Concluído</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Depuração remota via USB/WiFi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Desbloquear</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Confirme usando sua impressão digital</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Você pode usar sua impressão digital para continuar a sessão atual no aplicativo.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Abrir link em nova sessão</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Ícone de impressão digital</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Impressão digital não reconhecida. Tente novamente.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Movimento de dedo rápido demais. Tente novamente.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Mostrar sugestões de pesquisa?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Para receber sugestões, o %1$s precisa enviar o que você escreve na barra de endereços para o mecanismo de pesquisa.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Não</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Sim</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Alguns mecanismos de pesquisa não podem mostrar sugestões.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Descartar</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Um site não está se comportando como esperado?\n Experimente desativar a proteção contra rastreamento</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Acesse com apenas um toque os sites que você mais usa%1$s Menu > Adicionar à tela inicial]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Abra todos os links no %1$s\n Defina o %1$s como navegador padrão</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Preenchimento automático de URLs dos sites que você mais usa\n Mantenha o dedo sobre qualquer URL na barra de endereços</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Abra um link em nova aba\n Mantenha o dedo sobre qualquer link em uma página</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Desativar dicas na tela inicial</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Nova aba aberta</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Alternar</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Entrando no modo de tela inteira</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Mudar imediatamente para link em nova aba</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Bloquear sites potencialmente perigosos e maliciosos</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Bloquear sites denunciados como enganosos e maliciosos, sites com malware e sites com contendo software indesejado.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Modo somente HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Tenta se conectar com sites usando automaticamente o protocolo de criptografia HTTPS para maior segurança.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Exceções</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Você desativou o bloqueio de conteúdo nestes sites.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Remover</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Remover todos os sites</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Bloquear cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Você quer bloquear cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">A aba travou</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Desculpe, há um problema nesta aba.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Sendo um navegador privativo, ele nunca salva e não pode restaurar esta aba.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Fechar aba</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Enviar relatório de travamento para a Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Rastreadores bloqueados desde %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Conteúdo</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Propaganda</string>
+
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Mídias sociais</string>
+
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analíticos</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Proteção aprimorada contra rastreamento</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">As proteções estão DESATIVADAS neste site</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">As proteções estão ATIVADAS neste site</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">A conexão é segura</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Conexão não segura</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Rastreadores e scripts a bloquear</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Voltar</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Remover</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Renomear</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Renomear</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Nome do atalho</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Imagens salvas e compartilhadas &lt;b&gt;não são&lt;/b&gt; excluídas quando você apaga o histórico do %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Claro</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Escuro</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Definido pela economia de bateria</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Acompanhar tema do dispositivo</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Este site não oferece suporte a HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[O %1$s tenta usar uma conexão HTTPS sempre que possível para maior segurança.
+ <a href="%2$s">Saiba mais</a> <br/><br/>
+ Altere esta configuração em Configurações > Privacidade e segurança > Segurança.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Conexão não segura</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Isto pode ser um problema com a configuração do servidor, ou pode ser alguém tentando se passar pelo servidor. <br/><br/>
+ Se você já se conectou a este servidor com sucesso antes, o erro pode ser temporário.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Alguém pode estar tentando se passar pelo site, continuar pode ser arriscado.</label>
+ <br><br>
+ <label>O %1$s não confia em <b>%2$s</b> porque o emissor do certificado é desconhecido, ou o certificado é autoassinado, ou o servidor não está enviando os certificados intermediários corretos.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Fechar aba</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Pegamos eles! Impedimos que este site espione você. Toque no escudo quando quiser para ver o que estamos bloqueando.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Fechar painel</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Você está protegido!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Estas configurações padrão oferecem proteção forte. Mas é fácil ajustar as configurações para atender às suas necessidades específicas.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Descartar</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Toque aqui para excluir tudo (histórico, cookies, tudo) e começar de novo em uma nova aba.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Fechar</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget de pesquisa</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">O histórico de navegação foi limpo! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Inicie uma sessão de navegação privativa e bloquearemos rastreadores e outras coisas ruins à medida que você avança.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Deixamos você com sua navegação privativa, mas na próxima vez pode começar mais rápido usando o widget do %1$s na tela inicial.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Adicionar widget à tela inicial</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget adicionado à tela inicial</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-quc/strings.xml b/mobile/android/focus-android/app/src/main/res/values-quc/strings.xml
new file mode 100644
index 0000000000..9d72cf1542
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-quc/strings.xml
@@ -0,0 +1,709 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Uq\'atexik</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Uk\'amik</string>
+
+ <string name="action_save">Uk\'olik</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Utzukuxik on rokisaxik kemriqonib\'al</string>
+
+ <string name="teaser">Nik\'onem rech echeb\'alil pa utukelam.\nUtzukuxik. Uyujik. Ukamulixik.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Le atzukub\'al rech b\'anatal kanoq xchupisaxik.</string>
+
+ <string name="feedback_erase2">Xchupisax le xajtanem rech nik´onem</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Le xajtajem rech nik´onel rech woktz´ib´anel xchupisaxik.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Chatzukuj chech %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Ukomone\'xik…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Ub\'ixikil rech k\'axk\'olil rech wokk\'olib\'al web\'</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Ujaqik pa %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Ujaqil pa…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Chaya\' pa umajib\'al q\'axwach</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Chaya’ pa ramb’al b’e</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Chawelesaj pa ramb’al b’e</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Taq wiqitajem</string>
+ <string name="menu_about">Chi rij</string>
+ <string name="menu_help">Tob\'anem</string>
+ <string name="menu_rights">Taq Aya\'talil</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Q\'atetal taq tzukub\'al</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">We kchupisax wa’ wene kusuk’umaj jujun taq uk’axk’olil</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Uq‘atexik upam chak</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Chachupu’ chech usuk’maxik jujun taq uk’olib’al web’</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Ya\'om uchuq\'ab\' rumal %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Ukomone\'xik pa</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Uchupik nik\'ob\'al rech b\'antal kanoq</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Ujaqik</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Uchupik chi\'l ujaqik</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Uyujik</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Uchupik nik\'ob\'al rech b\'antal kanoq</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Chachupu´ k´ate k´u ri´ chatzija´</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Chachupu´ k´ate k´u ri´ chatzija´ %1$s</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Chatzukuj pa Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Chatzukuj pa Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Chatzukuj pa Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Chatzukuj pa Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s kuya´ rilawachixik chi awech.</p>
+<p>Chakojo´ pacha´ nik´ob´al rech echeb´alil:
+ <ul>
+ <li>Chatzukuj chi´l chanik´oj pa le kojkemchak:</li>
+ <li>Che´aq´atej taq tzukub´al (on chak´ak´arisaj taq wiqitajem chech uya´ik b´e chi kech taq tzukub´al)</li>
+ <li>Chayuju´ chech kichupik cookies chi´l utzukuxik chi´l unik´oxik b´antal kanoq</li>
+ </ul>
+</p>
+<p>%1$s are b´anowinaq le Mozilla. Le qachak are uya´ik jun utzalaj, ujaqik kemk´atz.<br/>
+<a href="%2$s">Chaweta´maj nik´aj chik</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Echeb\'alil chi\'l chajinem</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Tzukunem, cookies, jalajoj ucha\'ik rech taq juq\'attzij</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Uya\'ik pa ya\'om chi uloq, utz\'aqatisaxik pa utukelam</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Chi rij %1$s, tob\'anem</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Upam chak rech web\'</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Uk\'exik taq kojkemchak</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Chi ronojel</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Nik’ob’al ya’om chi uloq, ch’ab’al</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Mulib\'al rech juq\'attzij chi\'l ukojik</string>
+
+ <string name="preference_category_search">Utzukuxik</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Chariqa’</string>
+
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s kutaq b‘ik jachike katz‘ib‘aj pa kemwiqb‘al pa le ch‘ich‘ rech tzukunem</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Ya\'om chi uloq</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Ch’ich’ rech tzukunem</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Utzijik</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Uchupik</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Utz\'aqatisaxik pa utukelam URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Chech taq uwi´ wokk´olib´al web´</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Chatzija´ are chi kutz´aqatisaj %s pa uwi´ 450 URLs le qas kkojik pa le q´e´tb´al rech keriqonib´al.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Chech taq uk‘olib‘al web‘ le xaya‘o</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Chatz´ija´ are chi kutz´aqatisaj %s ajawatal taq URLs.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Chawilawachij taq uk‘olib‘al web‘</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Chawilawachij taq uk‘olib‘al web‘</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Uya\'ik winaqirisam URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Ucholajil utz‘aqatisaxik pa utukelam:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Chaya‘ URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Uya\'ik winaqirisam URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Uya\'ik winaqirisam URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Chaya‘ kemwiqb‘al chech utz‘aqatisaxik</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies chi\'l taq juq\'attzij rech wokk\'olib\'al web\'</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Jalajoj ucha\'ik rech juq\'attzij</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Chawelesaj winaqirisam URLs</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Chaweta\'maj nik\'aj chik</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Chaya\' chi\'l chawilawachij winaqirisam utz\'aqatisaxik pa utukelam URLs.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL chech uya\'ik</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Chanak\'a\' on chatz\'ib\'aj URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">K\'utb\'al: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">K\'utb\'al: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">K\'ak\' winaqirisam URL ya\'om.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Relesaxik</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Relesaxik</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Kamul chaq\'atuj le URL le xatz\'ib\'aj.</string>
+
+ <string name="preference_language">Ch\'ab\'al</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Wokchakub\'al ya\'om chi uloq</string>
+
+ <string name="preference_category_privacy">Echeb\'alil</string>
+ <string name="preference_privacy_block_ads">Q\'ateb\'al chi\'l taq tzukub\'al</string>
+ <string name="preference_privacy_block_ads_summary">Jujun taq ukemtzijob\'exik kkiterene\'j rij taq solinem pa taq wokk\'olib\'al web\', pine\' man kapitz\' ta pa taq ukemtzijob\'exik</string>
+ <string name="preference_privacy_block_analytics">Chaq\'atej taq k\'oxomab\'al rech taq tzukub\'al</string>
+ <string name="preference_privacy_block_analytics_summary">Kkoj chech umulixik, uk\'oxomaxik, chi\'l retaxik taq b\'anowem pacha\' tz\'ib\'anem chi\'l silob\'em</string>
+ <string name="preference_privacy_block_social">Uq\'atexik taq tzukub\'al rech uk\'iyal</string>
+ <string name="preference_privacy_block_social_summary">Wiqital pa taq wokk\'olib\'al web\' chech uterene\'xik taq solinem chi\'l chech uk\'utunsaxik taq chakunem pacha\' taq pitz\'b\'al rech ukomone\'xik</string>
+ <string name="preference_privacy_block_content">Chaq\'atej nik\'aj chi taq tzukub\'al upam chak</string>
+ <string name="preference_privacy_block_content_summary2">Le utzijik wene kub\'ano chi jujun taq uxaq wuj man eye\'tal ta le kkib\'ano</string>
+ <string name="preference_privacy_category_cookies">Chaq\'atej cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ja‘i‘ tyox</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Xew chaq‘atej le cookies rech terenem kech urox</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">&quot;Xew chaq\'atej cookies kech 3urox &quot;</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Chaq‘atej cookies pa taq uk‘olib‘al web‘</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Je‘ chab‘ana‘ jun toq‘ob‘</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Chakojo‘ uwi‘ q‘ab‘aj chech utzoqopitajik kojkemchak</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Chatzoqopij ruk‘ ukojik uwi‘q‘ab‘aj we akojom taq ramib‘al b‘ e we jaqatal chi le uk‘olib‘al web‘ pa %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Man q\'alaj taj</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Rowaxik taq uxaq web\' are taq kk\'ex taq kojkemchak.</string>
+
+ <string name="preference_category_security">Chajinem</string>
+
+ <string name="preference_category_performance">Chakunem</string>
+ <string name="preference_performance_block_webfonts">Uq\'atexik taq tz\'ib\' rech web\'</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Wene kub\'ano chi ke\'etzaq taq retno\'jib\'al on taq wachib\'al</string>
+
+ <string name="preference_performance_block_javascript">Uq\'atexik JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Le taq uxaq wuj wene aninaq uya\'ik uchuq\'ab\' , xa kut wene man eye\'tal ta le kkib\'ano</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Chab\'ana\' %1$s nik\'ob\'al ya\'om chi uloq</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Utaqik taq juq\'attzij rech ukojik</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Chaweta\'maj nik\'aj chik</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Le Mozilla kukoj uchuq\'ab\' chech umulixik xew le rajawaxik kya\'ik chi\'l uk\'exsuk\'umaxik %1$s chi kech konojel.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Ub\'ixikil rech echeb\'alil</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Q‘alajisanem rech wujil</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Taq k‘olwuj le kqakojo</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s OSS taq k‘olwuj</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Chi rij %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Jeqeb\'am taq ch\'ich\' rech tzukunem</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Utzalijisaxik taq ch\'ich\' rech tzukunem ya\'om chi uloq\n</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Chaya\' jun chi ch\'ich\' rech tzukub\'al</string>
+ <string name="preference_search_remove_title">Chawelesaj taq ch\'ich\' rech tzukub\'al</string>
+ <string name="preference_search_remove">Relesaxik</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Chaya‘ jun chik ch‘ich‘ rech tzukub‘al</string>
+
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Chacha‘ le ajawatal ch‘ich‘:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Chaya\' ch\'ich\' rech tzukub\'al</string>
+
+ <string name="search_add_manually_name_hint">Chatzukuj ub\'i\' ch\'ich\'</string>
+ <string name="search_add_manually_string">Chatzukuj jucholaj tzij chech ukojik</string>
+ <string name="search_add_manually_save">Uk\'olik</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">K\'utub\'al: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">K\'ak\' ch\'ich\' rech tzukub\'al ya\'om.</string>
+
+ <string name="search_add_error_empty_name">Chatz\'ib\'aj ub\'i\' ch\'ich\' rech tzukub\'al</string>
+ <string name="search_add_error_duplicate_name">Jun jeqeb\'am ch\'ich\' rech tzukub\'al ktajin chi kukoj la\' le b\'i\'aj.</string>
+
+ <string name="search_add_error_empty_search">Chatz\'ib\'aj cholaj tzij rech tzukunem</string>
+
+ <string name="search_add_error_format">Chaq\'atuj chi le cholaj tzij rech tzukunem kjunamataj ruk\' le k\'amwach rech k\'utub\'al</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Q\'alaj okib\'al</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Relesaxik</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Chayuju\' le b\'anatal kanoq rech nik\'onem</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Jaqatal taq k\'utjaqb\'al: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Chajital chajinem</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Ktajin uya\'ik uchuq\'ab\'</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Wokk\'olib\'al web\' ya\'om uchuq\'ab\'</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Nik\'aj chi Jalajoj taq ucha\'ik</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Pitz‘b‘al rech nik‘aj chik</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Nik\'onem chi uwach</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Uya\'ik chi jumul uchuq\'ab\' wokk\'olib\'al web\'</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Nik\'onem chi rij</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Uq\'atab\'axik uya\'ik uchuq\'ab\' uk\'olib\'al web\'</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Tzalijem pa kojkemchak kanoq</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Q‘atetal le ajilab‘al kech e terenelab‘</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Uq\'atexik taq tzukub\'al</string>
+
+ <string name="your_rights">Taq aya\'talil</string>
+
+ <string name="external_app_prompt_title">Chajaqa\' kemwiqb\'al pa jun chi kojkemchak</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Utz kaya\' kan %1$s chech ujaqik we kemwiqb\'al pa %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Chariqa\' jun kemwiqb\'al le kkowinik kujaq kemwiqb\'al</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Man k\'o ta jun chi kech taq kojkemchak pa le awiqkemchakub\'al kkowinik kujaq we kemwiqb\'al, utz kaya\' kan %1$s chech utzukuxik %2$s jun kojkemchak le kkowinik.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">¿Kawaj katel pa Nik\'ob\'al rech echeb\'alil?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s k\'isom</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Ujaqik</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Ya‘om pa ramib‘al b‘e</string>
+
+ <string name="error_hostLookup_title">Man kriqitaj ta le kempatanel</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Chatz‘apij</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Utz apetem pa %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Aninaq. Echeb‘alil. Man k‘o ta kyujuw uwach.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Chamajij</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s man junam ta kuk‘ e nik‘aj chi nik‘onelab‘</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Xqajosq‘ij le xajtajem are taq xatz‘apij le kojkemchak.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Chab‘ana‘ %1$s chech le ya‘om chi uloq chech uchajixik le ajuq‘attzij ruk‘ apachike kemwiqb‘al le kajaqo. </string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Chajeqeb‘a‘ pacha‘ nik‘onel ya‘om chi uloq</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Relesaxik</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Chaya\' uchuq\'ab\' le awecheb\'alil</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Chak\'ama\' b\'i le nik\'ob\'al rech echeb\'alil pa le jun chi cholajil. Che\'aq\'atej taq ukemtzijob\'exik chi\'l jun chi upam chak le kkowinik ktzukun pa taq kemk\'olib\'al web\' chi\'l kuq\'atej taq ukanil uya\'ik uchuq\'ab\' uxaq wuj.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Le atzukunem, le a b\'e</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">¿Ktajin katzukuj jalan taq jastaq? Chacha\' jun chi chi\'ch\' rech tzukunem ya\'om chi uloq pa taq suk\'manem.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Chaya\' taq ramb\'al b\'e pa le umajib\'al q\'axwach</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Chattzalija pa taq ajawatal taq wokk\'olib\'al web\' pa %1$s aninaq. Xew chacha\' \&quot;Uya\'ik pa umajib\'al q\'axwach\&quot; pa le %1$s cholokib\'al.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Chab\'ana\' jun amaq\'el ub\'anik chech le echeb\'alil</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Chaya\' %1$s pacha\' anik\'onel ya\'om chi uloq chi\'l chariqa\' le tob\'anem rech nik\'onem rech echeb\'alil are taq kajaq taq uxaq web\' pa nik\'aj chi taq kojkemchak.</string>
+
+ <string name="firstrun_close_button">Utz, ¡xink\'oxomaj!</string>
+ <string name="firstrun_skip_button">Relesaxik</string>
+ <string name="firstrun_next_button">Le teren chi uloq</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Uya\'ik</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">JE‘</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Uq\'atexik</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">JA‘I‘</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Chuputal chajib‘al rech kexsuk‘umatal chajib‘al rech uterne‘xik</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Kemchak rech echeb\'alil tzukub\'al</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Le taq Ub\'ixikil kuya\' b\'e kachup le %1$s kemchak ruk\' jun pitz\'onik. Man rajawaxik taj kajaq le kojkemchak on kawilo jas ktajin kub\'an le anik\'onel.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Uchupik b\'antal kanoq rech nik\'onel</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Chaqasaj Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s are jun cholwach le man k\'o ta jaqatal retokib\'al winaqirisam rumal Mozilla chi\'l nik\'aj chi tob\'anelab\'.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s ya‘tal chi awech chi uxe‘ taqanik rech le <a href="%2$s">Uwujil Mozilla kech uk‘iyal</a> chi‘l nik‘aj chi jaqatal taq uwujil uxe‘al. ]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Man ya‘om ta b‘e chi awech xuquje‘ man k‘o ta uwujil taq retwokaj rech Mozilla on kech urox ya‘tal chi awech xuquje‘ le taq b‘i‘aj ch‘il taq retal Mozilla, Firefox on %1$s taq b‘i‘aj on taq etal. Nik‘aj chi q‘alajisame wene kriqitaj <a href="%2$s">waral</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Utz‘aqatil uxe‘al retokib‘al chech %1$s k‘olik chi uxe‘ nik‘aj chi tzoqopitalil chi‘l jaqatal uxe‘al <a href="%2$s">taq uwujil</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s xuquje kukoj taq q‘atetal ucholajil ruk‘ utoq‘ixik t‘iqonem, Inc. pacha‘ tastalik xuquje‘ utukelal chakunel chi uxe‘ le <a href="%2$s">GNU Wujil kech uk‘iyal v3</a>, xuquje‘ k‘o pa <a href="%3$s">waral</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Ub\'i\' rajaw</string>
+ <string name="gv_prompt_password_hint">Retokib\'al</string>
+ <string name="gv_prompt_clear">Uchupik</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Chajital t\'iqonem</string>
+ <string name="security_popup_insecure_connection">Man chajital ta t\'iqonem</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Q\'atum rumal: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Chajital wokk\'olib\'al web\'</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL k\'o chik</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Uriqik pa uxaq wuj</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Uriqik pa uxaq wuj</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d man k\'o ta pa%2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Chariqa\' uwachinem teren chi uloq</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Chariqa\' uwachinem kanoq</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Man kriqitaj ta pa uxaq wuj</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Tz\'onoj rech wokk\'olib\'al web\' rech ilwach chak</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Uk‘olib‘al ilwach</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Elesam uwach URL</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Chakub‘al kech winaqirisanelab‘</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Ujaqik taq kemwiqb‘al pa taq kemkojchak</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Cholpaqalik</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Taq ya‘b‘al b‘e rech k‘olib‘al</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ja\'i\'</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Je\'</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Relesaxik</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-quy/strings.xml b/mobile/android/focus-android/app/src/main/res/values-quy/strings.xml
new file mode 100644
index 0000000000..456e37c9da
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-quy/strings.xml
@@ -0,0 +1,302 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <string name="action_cancel">Tatiy</string>
+ <string name="action_ok">ARI</string>
+
+ <string name="action_save">Jallich\'ay</string>
+
+ <string name="urlbar_hint">Mask\'ay mana chay dirección ñisqaman yaykuy</string>
+
+ <string name="teaser">Sapanmanta asuy t\'aqwiriy. T\'aqwiriy. Pichay. Kutikipay.</string>
+
+ <string name="feedback_erase">Ñawpa yaykusqa t\'aqwiriyniyki picharpakun.</string>
+
+ <string name="search_hint">Mask\'ay kaypaq %1$s</string>
+
+ <string name="menu_share">Qunakuy…</string>
+
+ <string name="menu_report_site_issue">Kitiqpata Ch\'ampanta Willay</string>
+
+ <string name="menu_open_with_default_browser2">Kichariy kaypi %1$s</string>
+
+ <string name="menu_open_with_a_browser2">Kichariy kaypi…</string>
+
+ <string name="menu_add_to_home_screen">Qallariy pantallaman yapaykuy</string>
+
+ <string name="menu_settings">Allinchaykuna</string>
+ <string name="menu_about">Kaymanta</string>
+ <string name="menu_help">Yanapay</string>
+ <string name="menu_rights">Derechosniyki</string>
+
+ <string name="menu_trackers_blocked_title">Mask\'achiqkuna ch\'atasqa</string>
+
+ <string name="menu_custom_tab_branding">Kallpachasqa kaywan %1$s</string>
+
+ <string name="share_dialog_title">Via ñisqata qunakuy</string>
+
+ <string name="notification_erase_text">Ñawpa yaykusqa t\'aqwiriyta pichay</string>
+
+ <string name="notification_action_open">Kichay</string>
+
+ <string name="notification_action_erase_and_open">Pichaytaq kichariytaq</string>
+
+ <string name="shortcut_erase_short_label">Pichay</string>
+
+ <string name="shortcut_erase_long_label">Ñawpa yaykusqa t\'aqwiriyta pichay</string>
+
+
+ <string name="preference_privacy_and_security_header">Asuy chanta Takya</string>
+
+ <string name="preference_privacy_and_security_summary">Tarichiqkunamanta, cookies kaqkunamanta, willaykunamanta ima akllaykuna</string>
+
+ <string name="preference_search_summary">Akllasqañajinata churay, sapanmanta junt\'achiy</string>
+
+ <string name="preference_mozilla_summary">Kaymanta %1$s, yanapay</string>
+
+ <string name="preference_category_web_content">Web kaqmanta Tiyapuynin</string>
+
+ <string name="preference_category_switching_apps">Apps kaqkunata tikraychaspa</string>
+
+ <string name="preference_category_general">Jatunnin</string>
+
+ <string name="preference_category_data_collection_use">Willaykunamanta tantaynin chanta llamk\'aynin ima</string>
+
+ <string name="preference_category_search">Mask\'ay</string>
+
+ <string name="preference_search_engine_default">Ajinaña jamuq</string>
+
+ <string name="preference_state_on">Jap\'ichisqa</string>
+
+ <string name="preference_state_off">Wañuchisqa</string>
+
+ <string name="preference_subitem_autocomplete">URL sapanmanta junt\'achiy</string>
+
+ <string name="preference_autocomplete_action_add">+ sapanchaykunata yapay URL</string>
+
+ <string name="preference_autocomplete_title_add">Sapanchaykunata yapay URL</string>
+
+ <string name="custom_autocomplete_quick_add">Sapanchaykunata yapay URL</string>
+
+ <string name="preference_category_cookies">Cookies chanta Kitimanta Willaykuna</string>
+
+ <string name="preference_category_data_choices">Willaykunamanta Akllaykuna</string>
+
+ <string name="preference_autocomplete_title_remove">Sapanchasqa URLs raqpay</string>
+
+ <string name="preference_autocomplete_learn_more">Astawan yachay</string>
+
+ <string name="preference_autocomplete_custom_summary">Yapay chanta kamachiy sapanchasqa sapanmanta junt\'achiyta URLs.</string>
+
+ <string name="preference_autocomplete_add_title">URL yapanapaq</string>
+
+ <string name="preference_autocomplete_add_hint">Mach\'ay mana chay URL qillqay</string>
+
+ <string name="preference_autocomplete_add_example2">Kayjina: mozilla.org</string>
+
+ <string name="preference_autocomplete_add_example">Kayjina: example.com</string>
+
+ <string name="preference_autocomplete_add_confirmation">Musuq sapanchasqa URL yapasqa.</string>
+
+ <string name="preference_autocomplete_menu_remove">Raqpay</string>
+
+ <string name="preference_autocomplete_action_remove_content_description">Raqpay</string>
+
+ <string name="preference_autocomplete_add_error">Watiqmanta qhawaykuy kay URL qillqasqaykita.</string>
+
+ <string name="preference_language">Runasimi</string>
+ <string name="preference_language_systemdefault">Sistemaqpata ajinaña jamuynin</string>
+
+ <string name="preference_category_privacy">Asuy</string>
+ <string name="preference_privacy_block_ads">Publicidadmanta tarichiqkunata ch\'ataykuy</string>
+ <string name="preference_privacy_block_ads_summary">Wakin willaykuna, manapis qam paykunaman yaykuykuqtiykipis, yaykusqaykita kay web raphikunaman tarinku</string>
+ <string name="preference_privacy_block_analytics">Analiticos tarichiqkunata ch\'ataykuy</string>
+ <string name="preference_privacy_block_analytics_summary">Kaywan llamk\'akun ruwaykunaykita tantanapaq, qhawaykachanapaq chanta tupunapaq ima, kikinta imaynatachus jukta akllaptiyki mana chay raphinta suchuptiykijina</string>
+ <string name="preference_privacy_block_social">Social tarichiqkunata ch\'ataykuy</string>
+ <string name="preference_privacy_block_social_summary">Raphikunapi yapasqa kachkanku yaykuyniykita tarinankupaq chanta llamk\'ayta rikuchinanpaq, kikin botonesjina qunakunapaq</string>
+ <string name="preference_privacy_block_content">Wak tiyapuykunamanta tarichiqkunata ch\'ataykuy</string>
+ <string name="preference_privacy_block_content_summary2">Kawsachiyqa wakin raphikuna mana suyaq llamk\'achiy kanankuta ruwachinman</string>
+ <string name="preference_privacy_category_cookies">Cookies ch\'ataykuy</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Cookies 3 ñiqi kaqkunallaqpata ch\'ataykuy</string>
+
+ <string name="preference_privacy_secure_mode">Mana rikukuq</string>
+ <string name="preference_privacy_stealth_summary">Web raphikunata pakay ruwaykunata chhalaptiyki</string>
+
+ <string name="preference_category_performance">Llamk\'ay thaskiynin</string>
+ <string name="preference_performance_block_webfonts">Web paqariykunata ch\'ataykuy</string>
+ <string name="preference_performance_block_webfonts_summary">Unanchakunata mana chay rikch\'aykunata pisichiy atinman</string>
+
+ <string name="preference_performance_block_javascript">JavaScript ch\'ataykuy</string>
+ <string name="preference_performance_block_javascript_summary">Raphikuna aswan utqhayta chaqnanay atinkuman, ichaqa mana suyaq kaqjinata llamk\'ay atillankutaq</string>
+
+ <string name="preference_default_browser2">Tikray %1$s ajinaña churasqa t\'aqwiriqniykipi</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Llamk\'akusqamanta willaykunata kachay</string>
+
+ <string name="preference_mozilla_telemetry_summary">Astawan yachay</string>
+
+ <string name="preference_mozilla_telemetry_summary2">Mozilla aswan munasqallata tantananpaq kaypachakun qusunankupaq chanta allinchanankupaq %1$s tukuypaq.</string>
+
+ <string name="preference_privacy_notice">Asuymanta willay</string>
+
+ <string name="preference_about">Kaymanta %1$s</string>
+
+ <string name="preference_search_installed_search_engines">Mask\'aq motores chantisqa</string>
+
+ <string name="preference_search_restore">Ajinaña jamuq mask\'aq motoresta jamuyninman kutichiy</string>
+
+ <string name="preference_search_add2">+ Wak mask\'aq motorta yapay</string>
+ <string name="preference_search_remove_title">Mask\'aq motoresta raqpay</string>
+ <string name="preference_search_remove">Raqpay</string>
+
+ <string name="action_option_add_search_engine">Mask\'aq motorta yapay</string>
+
+ <string name="search_add_manually_name_hint">Mask\'aq motorpata sutin</string>
+ <string name="search_add_manually_string">Mayqin mask\'aq wallqawanchus llamk\'akunqa</string>
+ <string name="search_add_manually_save">Jallich\'ay</string>
+
+ <string name="search_add_manually_example">Kayjina: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Musuq mask\'aq motor yapasqa.</string>
+
+ <string name="search_add_error_empty_name">Mask\'aq motor sutinta qillqay</string>
+ <string name="search_add_error_duplicate_name">Juk chantisqa mask\'aq motor chay sutiwan llamk\'achkanña.</string>
+
+ <string name="search_add_error_empty_search">Mask\'aq wallqata qillqay</string>
+
+ <string name="search_add_error_format">Qhawaykachay mask\'aq wallqaqa kikin kananta ejemplo rikukuywan</string>
+
+ <string name="content_description_clear_input">Registrota pichay</string>
+
+ <string name="content_description_dismiss_input">Wich\'uy</string>
+
+ <string name="content_description_erase">Ñawpa yaykusqa t\'aqwiriyta pichay</string>
+
+ <string name="content_description_tab_counter">Tikllakuna kichasqa: %1$s</string>
+
+ <string name="content_description_lock">Takya t\'inkiy</string>
+
+ <string name="accessibility_announcement_loading">Chaqnanachkan</string>
+
+ <string name="accessibility_announcement_loading_finished">Web raphi chaqnanasqa</string>
+
+ <string name="content_description_menu">Aswan akllaykuna</string>
+
+ <string name="content_description_forward">Ñawpaqman riy</string>
+
+ <string name="content_description_reload">Watiqmanta chaqnanay web raphita</string>
+
+ <string name="content_description_back">Ñawpa raphiman riy</string>
+
+ <string name="content_description_stop">Kay raphiqpata chaqnanayninta sayay</string>
+
+ <string name="content_description_customtab_exit">Ñawpa aplicacionman kutiy</string>
+
+ <string name="content_description_blocking_switch">Tarichiqkunata ch\'ataykuy</string>
+
+ <string name="your_rights">Derechosniyki</string>
+
+ <string name="external_app_prompt_title">T\'inkiyta kichariy wak aplicaciónwan</string>
+ <string name="external_app_prompt">Lluqsiy atiwaq kaymanta %1$s kay t\'inkiyta kaypi %2$s kichanaykipaq.</string>
+ <string name="external_app_prompt_no_app_title">Juk aplicación tariy mayqinchus kay t\'inkiyta kichariy atinanpaq</string>
+ <string name="external_app_prompt_no_app">Ni mayqin aplicaciones kay dispositivoykiqpata kay t\'inkiyta kichariy atinchu. Lluqsiy atiwaq kaymanta %1$s mask\'anaykipaq kaypi %2$s juk tupakuq aplicacionta.</string>
+ <string name="external_multiple_apps_matched_exit">¿Asuy t\'aqwiriymanta lluqsinkichu?</string>
+
+ <string name="download_snackbar_finished">%1$s tukusqa</string>
+
+ <string name="download_snackbar_open">Kichay</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Mana jaywaqta tarikunchu</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <string name="firstrun_defaultbrowser_title">Asuykita kallpachay</string>
+ <string name="firstrun_defaultbrowser_text2">Qhipan ñiqiman kay asuy t\'aqwiriyta apay. Willaykunata chanta wak tiyapuykunata ima ch\'ataykuy mayqinkunachus tarisuy atinkuman kitinninta chanta raphikunaqpata chaqnanayninta jayrayan ima.</string>
+
+ <string name="firstrun_search_title">Mask\'ayniyki, munasqaykimanjina</string>
+ <string name="firstrun_search_text">¿Jukjinatachu mask\'achkanki? Wak ajinaña jamuq mask\'aq motorta akllay configuracionpi.</string>
+
+ <string name="firstrun_shortcut_title">Qallariy pantallaykiman chiqan yaykunata yapay</string>
+ <string name="firstrun_shortcut_text">Aswan munasqa kitikunaykita watiqmanta watukuy kaypi %1$s utqhaytapacha. Akllay \&quot;Qallariy pantallaman yapay\&quot; kay %1$s menu kaqpi.</string>
+
+ <string name="firstrun_privacy_title">Asuymanta juk sapakuti ruwayta ruway</string>
+ <string name="firstrun_privacy_text">Churaykuy kayta %1$s ajinaña jamuq t\'aqwiriqjinata chanta asuy t\'aqwiriy allin jamuyninta qhawaykachay ima kay web raphikunata kicharispa wak aplicacionesmantapacha.</string>
+
+ <string name="firstrun_close_button">¡Ari, jap\'iqasqa!</string>
+ <string name="firstrun_skip_button">Phinkiy</string>
+ <string name="firstrun_next_button">Qhipan</string>
+
+ <string name="content_blocking_disabled">-</string>
+
+ <string name="dialog_addtohomescreen_action_add">Yapay</string>
+
+ <string name="dialog_addtohomescreen_action_cancel">Tatiy</string>
+
+ <string name="notification_browsing_session_channel_name">Asuy t\'aqwiriymanta sesión</string>
+
+ <string name="notification_browsing_session_channel_description">Willaykuqkuna sesion kaqta pichay atichisunki kaymanta %1$s juk ñit\'iywan. Mana aplicacionta kicharinallaykiñachu tiyan nitaq qhawayta imachus t\'aqwiriqpi llamk\'akuchkanta.</string>
+
+ <string name="tabs_tray_action_erase">Ñawpa yaykusqa t\'aqwiriyta pichay</string>
+
+ <string name="download_firefox">Firefox kaqta uraykuchiy</string>
+
+ <string name="your_rights_content1">%1$s kaqqa juk software kichasqa codigoyuqtaq chanta qhasitaq, Mozillawan chanta wak yanapaqkunawan ima paqarichisqa.</string>
+
+
+
+
+ <string name="gv_prompt_username_hint">Yaykuq suti</string>
+ <string name="gv_prompt_password_hint">Pakasqa willay</string>
+ <string name="gv_prompt_clear">Pichay</string>
+
+ <string name="security_popup_secure_connection">Takya t\'inkiy</string>
+ <string name="security_popup_insecure_connection">Mana takya t\'inkiy</string>
+ <string name="security_popup_security_verified">Qhawaychasqa kaywan: %1$s</string>
+
+ <string name="site_security_icon_content_description">Kitimanta takya</string>
+ <string name="preference_autocomplete_duplicate_url_error">Kay URL kanña</string>
+
+ <string name="find_in_page">Kay raphipi tariy</string>
+
+
+
+ <string name="preference_performance_request_desktop_site">Escritoriomanta kitita mañay</string>
+
+ <string name="custom_tab_copy_url_action">URL kikinchasqa</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ro/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ro/strings.xml
new file mode 100644
index 0000000000..b0387686ee
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ro/strings.xml
@@ -0,0 +1,661 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Renunță</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Salvează</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Caută sau introdu adresa</string>
+
+ <string name="teaser">Navigare privată automată.\nNavighează. Șterge. Repetă.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Istoricul de navigare a fost șters.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Istoricul de navigare al filei a fost șters.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Caută %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Partajează…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Raportează problemă cu site-ul</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Deschide în %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Deschide în…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Adaugă la ecranul principal</string>
+
+ <string name="menu_settings">Setări</string>
+ <string name="menu_about">Despre</string>
+ <string name="menu_help">Ajutor</string>
+ <string name="menu_rights">Drepturile tale</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Elemente de urmărire blocate</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Dezactivarea poate remedia unele probleme legate de site</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blocare de conținut</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Dezactivează pentru a repara unele site-uri</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Susținut de %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Partajează via</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Șterge istoricul de navigare</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Deschide</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Șterge și deschide</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Șterge</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Șterge istoricul de navigare</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Șterge și deschide</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Șterge și deschide %1$s</string>
+
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s îți oferă controlul.</p>
+<p>Folosește-l ca browser privat:
+ <ul>
+ <li>Caută și navighează direct în aplicație</li>
+ <li>Blochează elementele de urmărire (sau actualizează setările pentru a permite elementele de urmărire)</li>
+ <li>Șterge pentru a elimina cookie-urile, precum și istoricul de căutare și navigare</li>
+ </ul>
+</p>
+<p>%1$s este produs de Mozilla. Misiunea noastră este să promovăm un internet sănătos și deschis.<br/>
+<a href="%2$s">Află mai multe</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Confidențialitate și securitate</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Urmărire, cookie-uri, împărtășire de date</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Setează motorul implicit, completarea automată</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Despre %1$s, ajutor</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Conținut web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Comutare de aplicații</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">General</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Colectare de date și utilizare</string>
+
+ <string name="preference_category_search">Căutare</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Obține sugestii de căutare</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s va trimite ce tastezi în bara de adresă la motorul de căutare</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Implicit</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Motor de căutare</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Activat</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Dezactivat</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Completare automată de URL-uri</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Pentru site-uri de top</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Pentru site-uri pe care le adaugi</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Gestionează site-urile</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Gestionează site-urile</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Adaugă URL personalizat</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Adaugă URL personalizat</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Adaugă URL personalizat</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Adaugă un link pentru completare automată</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookie-uri și date ale site-urilor</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Împărtășire de date</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Elimină URL-uri personalizate</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Află mai multe</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Adaugă și gestionează URL-uri autocompletate personalizate.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL de adăugat</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Lipește sau introdu un URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Exemplu: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Exemplu: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Nou URL personalizat adăugat.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Elimină</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Elimină</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Verifică URL-ul introdus.</string>
+
+ <string name="preference_language">Limbă</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Setarea implicită a sistemului</string>
+
+ <string name="preference_category_privacy">Confidențialitate</string>
+ <string name="preference_privacy_block_ads">Blochează elementele de urmărire publicitare</string>
+ <string name="preference_privacy_block_ads_summary">Anumite reclame urmăresc vizitele pe site, chiar dacă nu dai clic pe reclame</string>
+ <string name="preference_privacy_block_analytics">Blochează elementele de urmărire analitice</string>
+ <string name="preference_privacy_block_analytics_summary">Folosite pentru a colecta, a analiza și a măsura activități precum atingerea și derularea</string>
+ <string name="preference_privacy_block_social">Blochează elementele de urmărire ale rețelelor sociale</string>
+ <string name="preference_privacy_block_social_summary">Încorporate în site-uri pentru a-ți urmări vizitele și a afișa funcții precum butoanele de distribuire</string>
+ <string name="preference_privacy_block_content">Blochează alte elemente de urmărire de conținut</string>
+ <string name="preference_privacy_block_content_summary2">Activarea poate cauza un comportament neașteptat al unor pagini</string>
+ <string name="preference_privacy_category_cookies">Blochează cookie-urile</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Blochează numai cookie-urile de urmărire de la terți</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Blochează numai cookie-urile de la terți</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blochează cookie-urile inter-site-uri</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Folosește amprenta pentru a debloca aplicația</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Discret</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Ascunde paginile web la comutarea între aplicații și blochează realizarea capturilor de ecran.</string>
+
+ <string name="preference_category_security">Securitate</string>
+
+ <string name="preference_category_performance">Performanță</string>
+ <string name="preference_performance_block_webfonts">Blochează fonturile web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Poate duce la pictograme și imagini lipsă</string>
+
+ <string name="preference_performance_block_javascript">Blochează JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Paginile se pot încărca mai rapid, dar este posibil și să aibă un comportament ciudat</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Desemnează %1$s ca browser implicit</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Trimite date privind utilizarea</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Află mai multe</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla se străduiește să colecteze doar strictul necesar pentru a furniza și a îmbunătăți %1$s pentru toți.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Politica de confidențialitate</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Despre %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Motoare de căutare instalate</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Restaurează motoarele de căutare implicite</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Adaugă alt motor de căutare</string>
+ <string name="preference_search_remove_title">Elimină motoare de căutare</string>
+ <string name="preference_search_remove">Elimină</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Adaugă motorul de căutare</string>
+
+ <string name="search_add_manually_name_hint">Numele motorului de căutare</string>
+ <string name="search_add_manually_string">Text de căutare spre utilizare</string>
+ <string name="search_add_manually_save">Salvează</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Exemplu: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Motor nou de căutare adăugat.</string>
+
+ <string name="search_add_error_empty_name">Introdu numele motorului de căutare</string>
+ <string name="search_add_error_duplicate_name">Un motor de căutare instalat folosește deja acest nume.</string>
+
+ <string name="search_add_error_empty_search">Introdu șirul de căutare</string>
+
+ <string name="search_add_error_format">Verifică dacă șirul de căutare se potrivește cu formatul exemplu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Șterge adresa introdusă</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Înlătură</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Șterge istoricul de navigare</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">File deschise: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Conexiune securizată</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Se încarcă</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Site web încărcat</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Mai multe opțiuni</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Buton pentru mai multe opțiuni</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Navighează înainte</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Reîncarcă site-ul web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Navighează înapoi</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Oprește încărcarea site-ului web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Întoarce-te la aplicația anterioară</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Numărul de elemente de urmărire blocate</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blochează elementele de urmărire</string>
+
+ <string name="your_rights">Drepturile tale</string>
+
+ <string name="external_app_prompt_title">Deschide linkul în altă aplicație</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Poți părăsi %1$s pentru a deschide acest link în %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Găsește o aplicație care poate deschide linkul</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Niciuna dintre aplicațiile de pe dispozitiv nu poate deschide acest link. Poți părăsi %1$s ca să cauți în %2$s o aplicație care poate.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Ieși din navigarea privată?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">Descărcarea %1$s s-a terminat</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Deschide</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Server negăsit</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Consolidează-ți confidențialitatea</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Du navigarea privată la nivelul următor. Blochează reclamele și alte tipuri de conținut care te pot urmări pe site-uri și care îngreunează timpii de încărcare.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Caută în felul tău</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Cauți ceva diferit? Alege un alt motor de căutare implicit din Setări.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Adaugă scurtături la ecranul principal</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Întoarce-te numaidecât la site-urile tale favorite în %1$s. Selectează pur și simplu „Adaugă la ecranul principal” din meniul %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Obișnuiește-te cu confidențialitatea</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Setează %1$s ca browser implicit și beneficiază de avantajele navigării private atunci când deschizi pagini web din alte aplicații.</string>
+
+ <string name="firstrun_close_button">OK, am înțeles!</string>
+ <string name="firstrun_skip_button">Omite</string>
+ <string name="firstrun_next_button">Înainte</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Adaugă</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Renunță</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sesiune de navigare privată</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Notificările îți permit să ștergi sesiunea %1$s cu o atingere. Nu e nevoie să deschizi aplicația sau să vezi ce rulează în browser.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Șterge istoricul de navigare</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Descarcă Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s este un program liber și cu sursă deschisă realizat de Mozilla și alți colaboratori.]]></string>
+
+
+
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Utilizator</string>
+ <string name="gv_prompt_password_hint">Parolă</string>
+ <string name="gv_prompt_clear">Curăță</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Conexiune securizată</string>
+ <string name="security_popup_insecure_connection">Conexiune nesigură</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verificat de: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Securitatea site-ului</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL-ul există deja</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Caută în pagină</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Caută în pagină</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d / %2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d din %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Caută următorul rezultat</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Caută rezultatul anterior</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Anulează căutarea în pagină</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Cere versiune de desktop</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL copiat</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Unelte dezvoltator</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avansat</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Depanare de la distanță prin USB/Wi-Fi</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Deschide linkul într-o nouă sesiune</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Pictogramă amprentă</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Amprentă nerecunoscută. Încearcă din nou.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Deget mutat prea repede. Încearcă din nou.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Nu</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Da</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Unele motoare de căutare nu pot afișa sugestii.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Înlătură</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Site-ul are un comportament neașteptat?\n Încearcă să dezactivezi protecția împotriva urmăririi</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Obține acces cu o singură atingere la site-urile pe care intri des%1$s Meniu > Adaugă la ecranul principal]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Deschide fiecare link în %1$s\n Setează %1$s ca browser implicit</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Completează automat URL-urile site-urilor pe care intri des\n Apasă lung pe orice URL din bara de adresă</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Deschide un link într-o filă nouă\n Apasă lung pe orice link dintr-o pagină</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Dezactivează ponturile din ecranul de start</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Filă nouă deschisă</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Comută</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Comută imediat pe link într-o filă nouă</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Blochează site-urile potențial periculoase și înșelătoare</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blochează site-urile raportate ca fiind înșelătoare și de atac, cu programe rău intenționate și programe nedorite.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Excepții</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Ai dezactivat blocarea de conținut pe aceste site-uri web.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Elimină</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Elimină toate site-urile web</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blochează cookie-uri</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Dorești să blochezi cookie-urile?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Filă închisă neașteptat</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Ne pare rău. Avem o problemă cu această filă.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Ca browser privat, nu salvăm niciodată și nu putem restaura această filă.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Închide fila</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Trimite un raport de defecțiune către Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ru/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ru/strings.xml
new file mode 100644
index 0000000000..3bc7cd998e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ru/strings.xml
@@ -0,0 +1,1122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Отмена</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ОК</string>
+
+ <string name="action_save">Сохранить</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Введите запрос или адрес</string>
+
+ <string name="teaser">Автоматический режим приватного просмотра.\nПросмотреть. Стереть. Повторить.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Ваша история посещения сайтов была стёрта.</string>
+
+ <string name="feedback_erase2">История просмотра сети удалена</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">История просмотров вкладки была стёрта.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Поиск %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Поделиться…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Сообщить о проблеме с сайтом</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Открыть в %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Открыть в…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Добавить на домашний экран</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Добавить в ярлыки</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Удалить из ярлыков</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Настройки</string>
+ <string name="menu_about">О приложении</string>
+ <string name="menu_help">Справка</string>
+ <string name="menu_rights">Ваши права</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Трекеров заблокировано</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Отключение этой функции может решить некоторые проблемы с сайтом</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Блокировка содержимого</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Отключить для решения проблем с некоторыми сайтами</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">На движке %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Поделиться через</string>
+
+ <string name="notification_erase_title_android_14">Удалить историю просмотра?</string>
+
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Нажмите или снимите это уведомление, чтобы надежно удалить свою историю просмотра.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Нажмите или снимите это уведомление, чтобы надежно удалить свою историю просмотра.</string>
+
+ <string name="notification_erase_text">Удалить историю просмотра сети</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Открыть</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Удалить и открыть</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Удалить</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Удалить историю просмотра сети</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Стереть и открыть</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Удалить и открыть %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Искать в Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Искать в Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Искать в Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Искать в Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s даёт вам контроль.</p>
+<p>Используйте его как приватный браузер:
+ <ul>
+ <li>Ищите и просматривайте сеть</li>
+ <li>Блокируйте трекеры (или измените настройки, чтобы разрешить их)</li>
+ <li>Стирайте и удаляйте куки, историю поиска и просмотра</li>
+ </ul>
+</p>
+<p>%1$s создан Mozilla. Наша миссия способствовать здоровому, открытому Интернету.<br/>
+<a href="%2$s">Узнать больше</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Приватность и защита</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Отслеживание, куки, выбор данных</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Установка по умолчанию, автодополнение</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">О %1$s, помощь</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Улучшенная защита от отслеживания</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Сетевое содержимое</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Смена приложений</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Основные</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Браузер по умолчанию, язык</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Сбор и использование данных</string>
+
+ <string name="preference_category_search">Поиск</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Получать поисковые предложения</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s будет отправлять поисковой системе текст, который вы вводите в адресной строке</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">По умолчанию</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Поисковая система</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Включено</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Отключено</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL-адрес автодополнения</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Для топа сайтов</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Включить автодополнение в %s для более чем 450 популярных сайтов в адресной строке.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Для добавленных вами сайтов</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Включить автодополнение %s URL ваших любимых сайтов.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Управление сайтами</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Управление сайтами</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Добавить пользовательский URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Ваш список автодополнения:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Добавить URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Добавить пользовательский URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Добавить пользовательский URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Добавить ссылку для автодополнения</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Куки и данные сайтов</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Выбор данных</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Удалить пользовательские URL</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Подробнее</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Добавление и управление пользовательскими URL автодополнения.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL для добавления</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Вставьте или введите URL-адрес</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Пример: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Пример: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Новый пользовательский URL добавлен.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Удалить</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Удалить</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Внимательно проверьте введённый URL.</string>
+
+ <string name="preference_language">Язык</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Язык устройства</string>
+
+ <string name="preference_category_privacy">Приватность</string>
+ <string name="preference_privacy_block_ads">Блокировать трекеры рекламы</string>
+ <string name="preference_privacy_block_ads_summary">Некоторая реклама отслеживает посещения сайтов, даже если вы на неё не нажимали</string>
+ <string name="preference_privacy_block_analytics">Блокировать трекеры аналитики</string>
+ <string name="preference_privacy_block_analytics_summary">Используются для сбора, анализа и измерения активности, например, нажатий и скроллинга</string>
+ <string name="preference_privacy_block_social">Блокировать социальные трекеры</string>
+ <string name="preference_privacy_block_social_summary">Вставляются на сайты, чтобы отслеживать ваши посещения и внедрять дополнительную функциональность, например, кнопку «Поделиться»</string>
+ <string name="preference_privacy_block_content">Блокировать другие трекеры содержимого</string>
+ <string name="preference_privacy_block_content_summary2">Включение этой функции может вызвать непредсказуемое поведение некоторых страниц</string>
+ <string name="preference_privacy_category_cookies">Не принимать куки</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Нет, спасибо</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Не принимать только куки от сторонних трекеров</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Не принимать только куки со сторонних веб-сайтов</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Блокировать межсайтовые куки</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Да, пожалуйста</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Использовать отпечатки пальцев для разблокировки приложения</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Разблокировать с помощью отпечатка пальца, если вы добавили ярлыки или когда веб-сайт уже открыт в %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Невидимка</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Скрывать веб-страницы при переключении приложений и блокировать создание скриншотов.</string>
+
+ <string name="preference_category_security">Защита</string>
+
+ <string name="preference_category_performance">Производительность</string>
+ <string name="preference_performance_block_webfonts">Блокировать веб-шрифты</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Может привести к отсутствию значков или изображений</string>
+
+ <string name="preference_performance_block_javascript">Блокировать JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Страницы могут загружаться быстрее, но также могут вести себя неожиданно</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Сделать %1$s браузером по умолчанию</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Отправлять данные об использовании</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Подробнее</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla обязуется собирать только ту информацию, которая необходима для работы %1$s и его улучшения в будущем.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Политика приватности</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Сведения о лицензии</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Используемые библиотеки</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Свободные библиотеки</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">О %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Установленные поисковые системы</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Выберите поисковую систему</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Восстановить поисковые системы</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Добавить другую поисковую систему</string>
+ <string name="preference_search_remove_title">Удалить поисковые системы</string>
+ <string name="preference_search_remove">Удалить</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Добавить другую поисковую систему</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Выберите свою поисковую систему:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Добавить поисковую систему</string>
+
+ <string name="search_add_manually_name_hint">Имя поисковой системы</string>
+ <string name="search_add_manually_string">Строка поискового запроса</string>
+ <string name="search_add_manually_save">Сохранить</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Пример: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Добавлена новая поисковая система.</string>
+
+ <string name="search_add_error_empty_name">Введите имя поисковой системы</string>
+ <string name="search_add_error_duplicate_name">Установленная поисковая система уже использует это имя.</string>
+
+ <string name="search_add_error_empty_search">Введите поисковую строку</string>
+
+ <string name="search_add_error_format">Убедитесь, что поисковая строка соответствует формату примера</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Очистить ввод</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Пропустить</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Удалить историю веб-сёрфинга</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Открытых вкладок: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Защищённое соединение</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Загрузка</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Сайт загружен</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Дополнительно</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Кнопка дополнительных настроек</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Вперёд</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Перезагрузить сайт</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Перейти назад</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Остановить загрузку сайта</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Вернуться к последнему приложению</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Трекеров заблокировано</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Блокировать трекеры</string>
+
+ <string name="your_rights">Ваши права</string>
+
+ <string name="external_app_prompt_title">Открыть ссылку в другом приложении</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Вы можете выйти из %1$s, чтобы открыть эту ссылку в %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Найдите приложение, которое может открыть эту ссылку</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ни одно из приложений на вашем устройстве не может открыть эту ссылку. Вы можете выйти из %1$s для поиска подходящего приложения в %2$s.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Выйти из приватного просмотра?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s загружено</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Открыть</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Добавлено в ярлыки!</string>
+
+ <string name="error_hostLookup_title">Сервер не найден</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Закрыть</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Добро пожаловать в %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Быстро. Приватный. Никаких отвлечений.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Начать</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s не похож на другие браузеры</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Мы удаляем вашу историю, когда вы закрываете приложение, для повышения приватности.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Используйте %1$s по умолчанию, чтобы защитить свои данные при открытии каждой ссылки.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Установить браузером по умолчанию</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Пропустить</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Усильте свою приватность</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Поднимите приватный просмотр на новый уровень. Блокируйте рекламу и другое содержимое, которое может отслеживать вас и замедлять загрузку страниц.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Ваш поиск, Ваш Интернет</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Искали что-то другое? Выберите другую поисковую систему по умолчанию в настройках.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Добавьте ярлыки на домашний экран</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">С %1$s вы сможете быстро вернуться к любимым сайтам. Просто выберите «Добавить на домашний экран» из меню %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Сделайте приватность своей привычкой</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Установите %1$s своим браузером по умолчанию и получите преимущества приватного веб-сёрфинга, когда вы открываете веб-страницы из других приложений.</string>
+
+ <string name="firstrun_close_button">ОК, понятно!</string>
+ <string name="firstrun_skip_button">Пропустить</string>
+ <string name="firstrun_next_button">Далее</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Добавить</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ДА</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Отмена</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">НЕТ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Ссылка будет открываться без улучшенной защиты от отслеживания</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Приватный сеанс</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Уведомления позволяют стереть ваш сеанс в %1$s одним касанием. Вам не нужно открывать приложение или видеть, что запущено в вашем браузере.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Удалить историю просмотра сети</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Загрузить Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s является бесплатным приложением с открытым исходным кодом, созданным Mozilla и другими участниками.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s предоставляется вам на условиях <a href="%2$s">Mozilla Public License</a> и других лицензий для открытого исходного кода.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Вы не получаете никаких прав или лицензий на товарные знаки Mozilla Foundation или любой другой стороны, включая имена или логотипы Mozilla, Firefox или %1$s. Дополнительную информацию можно найти <a href="%2$s">здесь</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Дополнительный исходный код для %1$s доступен под различными другими свободными и открытыми <a href="%2$s">лицензиями</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s также использует списки блокировки от Disconnect, Inc. как отдельные и независимые работы на условиях <a href="%2$s">Основной общественной лицензии GNU 3-ей версии</a>, доступные <a href="%3$s">здесь</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Имя пользователя</string>
+ <string name="gv_prompt_password_hint">Пароль</string>
+ <string name="gv_prompt_clear">Очистить</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Защищённое соединение</string>
+ <string name="security_popup_insecure_connection">Незащищённое соединение</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Подтверждено: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Защита сайта</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL уже существует</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Найти на странице</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Найти на странице</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d из %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Найти следующее совпадение</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Найти предыдущее совпадение</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Убрать поиск на странице</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Запросить полную версию сайта</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Версия для ПК</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Ссылка скопирована</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Инструменты разработчика</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Открывать ссылки в приложениях</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Дополнительно</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Разрешения для сайтов</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Снижение числа уведомлений о куках</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Включено</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Отключено</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Снижение числа уведомлений о куках</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Уменьшите число уведомлений, по возможности автоматически отклоняя запросы на использование кук.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Снижение числа уведомлений о куках</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ВКЛЮЧЕНО для этого сайта</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">В настоящее время сайт не поддерживается</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">ОТКЛЮЧЕНО для этого сайта</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Снижение числа уведомлений о куках</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">ОТКЛЮЧЕНО для этого сайта</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ВКЛЮЧЕНО для этого сайта</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Включить Снижение числа уведомлений о куках для %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Отключить Снижение числа уведомлений о куках для %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s удалит куки этого сайта и обновит страницу. Удаление всех кук может привести к выходу из системы или к пропаже покупок из корзины.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s может попытаться автоматически отклонить запросы на использование кук.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Этот сайт в настоящее время не поддерживается функцией Уменьшения числа уведомлений о куках. Вы хотите, чтобы наша команда проверила этот веб-сайт и добавила поддержку в будущем?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Отмена</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Запросить поддержку</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Запрос на поддержку сайта отправлен.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Запрос на поддержку сайта отправлен.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s пытается отклонить запросы кук, чтобы убрать надоедливые уведомления о куках.\n\nУправляйте настройками уведомлений о куках в %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">настройках</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Автовоспроизведение</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Чтобы разрешить это:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Перейдите в настройки Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Нажмите на <b>Разрешения</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Перейти в Настройки</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Переключите <b>%1$s</b> в состояние РАЗРЕШЕНО]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Камера</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Микрофон</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Местоположение</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Уведомления</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Защищённое авторским правом содержимое</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Всегда спрашивать</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Блокировать</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Разрешить</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Заблокировано Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Разрешить аудио и видео</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Блокировать только звук</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Желательно</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Блокировать звуки и видео</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Исследования</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox может время от времени устанавливать и проводить исследования.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Подробнее</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Приложение закроется, чтобы применить изменения</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Удалить</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Активно</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Завершено</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Удалённая отладка через USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Разблокировать</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Подтвердите с помощью отпечатка пальца</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Вы можете использовать свой отпечаток пальца, чтобы продолжить текущий сеанс работы с приложением.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Открыть ссылку в новом сеансе</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Значок отпечатков пальцев</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Отпечатки пальцев не распознаны. Попробуйте снова.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Слишком быстрое прикосновение. Попробуйте снова.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Показывать поисковые предложения?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Для получения предложений %1$s необходимо отправлять то, что вы вводите в адресной строке, в поисковую систему.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Нет</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Да</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Некоторые поисковые системы не могут показывать предложения.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Закрыть</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Сайт ведёт себя неожиданно?\n Попробуйте отключить защиту от отслеживания</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Получайте доступ к нужным сайтам в одно касание%1$s Меню > Добавить на домашний экран]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Открывайте все ссылки в %1$s\n Установить %1$s браузером по умолчанию</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Автодополнение URL для часто посещаемых сайтов\n Произведите долгое нажатие на любой URL в адресной строке</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Открывайте ссылки в новых вкладках\n Произведите долгое нажатие на любую ссылку на странице</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Отключить советы на домашнем экране</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Открыта новая вкладка</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Перейти</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Вход в полноэкранный режим</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Сразу переходить на новую вкладку</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Блокировать потенциально опасные и обманывающие сайты</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Блокировать известные обманывающие и вредоносные сайты, заражённые сайты и сайты с нежелательным ПО.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Режим «Только HTTPS»</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Автоматически пытаться подключиться к сайтам через протокол шифрования HTTPS для повышения безопасности.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Исключения</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Вы отключили блокировку содержимого для этих веб-сайтов.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Удалить</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Удалить все веб-сайты</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Блокировать куки</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Хотите заблокировать куки?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Вкладка упала</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Извините. С этой вкладкой возникли проблемы.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Как приватный браузер, мы никогда не сохраняем и не можем восстановить эту вкладку.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Закрыть вкладку</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Отправить сообщение о падении в Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Заблокировано трекеров, начиная с %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Содержимое</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Реклама</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Соцсети</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Аналитика</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Улучшенная защита от отслеживания</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Защита для этого сайта отключена</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Защита для этого сайта включена</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Соединение защищено</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Соединение не защищено</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Блокируемые трекеры и скрипты</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Вернуться назад</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Удалить</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Переименовать</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Переименовать</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Название ярлыка</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Сохранённые и отправленные изображения &lt;b&gt;не будут&lt;/b&gt; удалены, когда вы сотрёте историю %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Тема</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Светлая</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Тёмная</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Учитывать режим экономии батареи</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Использовать тему устройства</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Этот сайт не поддерживает HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s пытается использовать HTTPS-соединение, когда это возможно, для повышения безопасности.
+ <a href="%2$s">Подробнее</a> <br/><br/>
+ Измените эту настройку в меню «Настройки» > «Приватность и защита» > «Защита».]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Незащищённое соединение</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Это может быть проблемой с конфигурацией сервера или же кто-то пытается подменить нужный вам сервер другим. <br/><br/>
+ Если в прошлом вы успешно соединялись с этим сервером, то, возможно, эта ошибка является временной.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Возможно, кто-то пытается подменить нужный вам сайт другим, поэтому продолжение может быть рискованным.</label>
+ <br><br>
+ <label>%1$s не может доверять <b>%2$s</b>, потому что издатель его сертификата неизвестен, сертификат подписан самим сайтом или его сервер не отправляет правильные промежуточные сертификаты.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Закрыть вкладку</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Попались! Мы остановили слежку этого сайта за вами. Коснитесь щита всякий раз, чтобы узнать, что мы блокируем.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Закрыть всплывающее окно</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Вы защищены!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Эти настройки по умолчанию обеспечивают надежную защиту. Но вы можете легко изменить их под ваши конкретные потребности.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Убрать</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Нажмите здесь, чтобы удалить всё — историю, куки, всё — и начать заново на новой вкладке.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Закрыть</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Виджет поиска</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">История веб-сёрфинга удалена! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Начните сеанс приватного просмотра, и мы будем блокировать трекеры и другие плохие штуки.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Мы оставим вас в приватном просмотре, но в следующий раз можно войти в него быстрее с помощью виджета %1$s на Домашнем экране.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Добавить виджет на домашний экран</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Виджет добавлен на домашний экран</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-si/strings.xml b/mobile/android/focus-android/app/src/main/res/values-si/strings.xml
new file mode 100644
index 0000000000..072628d497
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-si/strings.xml
@@ -0,0 +1,1078 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">අවලංගු</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">හරි</string>
+
+ <string name="action_save">සුරකින්න</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">සොයන්න හෝ ලිපිනය ලියන්න</string>
+
+ <string name="teaser">ස්වයංක්‍රීය පෞද්. පිරික්සීම.\nපිරික්සන්න. මකන්න. නැවතත්.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">ඔබගේ පිරික්සුම් ඉතිහාසය මකා දමා ඇත.</string>
+ <string name="feedback_erase2">පිරික්සුම් ඉතිහාසය මැකිණි</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">පටිත්තෙහි පිරික්සුම් ඉතිහාසය මකා දමා ඇත.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s සඳහා සොයන්න</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">බෙදාගන්න…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">අඩවියේ දෝෂ වාර්තාව</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s හි අරින්න</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">මෙහි අරින්න…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">මුල් තිරයට යොදන්න</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">කෙටිමං වෙත යොදන්න</string>
+
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">කෙටිමං වෙතින් ඉවත් කරන්න</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">සැකසුම්</string>
+ <string name="menu_about">පිළිබඳව</string>
+ <string name="menu_help">උදව්</string>
+ <string name="menu_rights">ඔබගේ අයිතීන්</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">ලුහුබැඳීම් අවහිරයි</string>
+
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">මෙය අක්‍රිය කිරීමෙන් ඇතැම් අඩවිවල ගැටළු විසඳේ</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">අන්තර්ගත අවහිරය</string>
+
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">ඇතැම් අඩවි නිරාකරණයට නවතන්න</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%s මගින් බලගැන්වේ</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">හරහා බෙදාගන්න</string>
+
+ <string name="notification_erase_title_android_14">පිරික්සුම් ඉතිහාසය මකන්නද?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">ඔබගේ පිරික්සුම් ඉතිහාසය ආරක්‍ෂිතව මැකීමට මෙම දැනුම්දීම මත තට්ටු කරන්න හෝ හිස් කරන්න.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">ඔබගේ පිරික්සුම් ඉතිහාසය ආරක්‍ෂිතව මැකීමට මෙම දැනුම්දීම මත තට්ටු කරන්න හෝ තල්ලු කරන්න.</string>
+
+ <string name="notification_erase_text">පිරික්සුම් ඉතිහාසය මකන්න</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">අරින්න</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">මකා දමා අරින්න</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">මකන්න</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">පිරික්සුම් ඉතිහාසය මකන්න</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">මකා දමා අරින්න</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">මකා දමා %1$s අරින්න</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">ෆෝකස්හි සොයන්න</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">ක්ලාර්හි සොයන්න</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">ෆෝකස් බීටා හි සොයන්න</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">ෆෝකස් නයිට්ලි හි සොයන්න</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s ඔබව පාලනයේ තබයි.</p>
+<p>පෞද්. අතිරික්සුවක් ලෙස යොදාගන්න:
+ <ul>
+ <li>යෙදුමෙහි සොයන්න සහ පිරික්සන්න</li>
+ <li>ලුහුබැඳීම් අවහිර කරන්න (හෝ සැකසුම් තුළින් ඉඩ දෙන්න)</li>
+ <li>දත්තකඩ මෙන්ම සෙවුම් හා පිරික්සුම් ඉතිහාසය ඉවත් කිරීමට මකන්න</li>
+ </ul>
+</p>
+<p>මොසිල්ලා හරහා %1$s නිෂ්පාදනය කෙරේ. හිතකර, විවෘත අන්තර්ජාලයකට පිහිටාධාර සැපයීම අපගේ මෙහෙවරයි.<br/>
+<a href="%2$s">තව දැනගන්න</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">පෞද්ගලිකත්‍වය හා ආරක්‍ෂාව</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">ලුහුබැඳීම්, දත්තකඩ, දත්ත තේරීම්</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">පෙරනිමි සකසන්න, ස්වයං පිරවීම</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s ගැන, උදව්</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">දියුණු කළ ලුහුබැඳීමේ රැකවරණය</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">වියමන අන්තර්ගතය</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">යෙදුම් මාරුව</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">සාමාන්‍ය</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">පෙරනිමි අතිරික්සුව, භාෂාව</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">දත්ත රැස් කිරීම හා භාවිතය</string>
+
+ <string name="preference_category_search">සොයන්න</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">සෙවුම් යෝජනා ගන්න</string>
+
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">ඔබ ලිපින තීරුවේ ලියන දෑ ඔබගේ සෙවුම් යන්ත්‍රයට %1$s හරහා යවයි</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">පෙරනිමි</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">සෙවුම් යන්ත්‍රය</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">සක්‍රිය</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">අක්‍රිය</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">ඒ.ස.නි. ස්වයං පිරවීම</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">ප්‍රචලිත අඩවි සඳහා</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">ලිපින තීරුවේ %s ජනප්‍රිය ඒ.ස.නි. 450 කට වඩා ස්වයං පිරවීමට සබල කරන්න.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">එක් කරන අඩවි සඳහා</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">%s ඔබගේ ප්‍රියතම ඒ.ස.නි. ස්වයං පිරවීම සබල කරන්න.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">අඩවි කළමනාකරණය</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">අඩවි කළමනාකරණය</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ අභිරුචි ඒ.ස.නි. යොදන්න</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">ඔබගේ ස්වයං පිරවුම් ලේඛනය:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">ඒ.ස.නි. යොදන්න</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">අභිරුචි ඒ.ස.නි. යොදන්න</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">අභිරුචි ඒ.ස.නි. යොදන්න</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">ස්වයං පිරවීමට සබැඳිය යොදන්න</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">දත්තකඩ හා අඩවි දත්ත</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">දත්ත තේරීම්</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">අභිරුචි ඒ.ස.නි. ඉවත් කරන්න</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">තව දැනගන්න</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">අභිරුචි ස්වයං පිරවුම් ඒ.ස.නි. එක් කර කළමනාකරණය.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">එක් කිරීමට ඒ.ස.නි.</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">අලවන්න හෝ ඒ.ස.නි. යොදන්න</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">නිදසුන: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">නිදසුන: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">නව අභිරුචි ඒ.ස.නි. එක් කෙරිණි.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">ඉවත් කරන්න</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">ඉවත් කරන්න</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">ඇතුල් කළ ඒ.ස.නි. දෙවරක් පරීක්‍ෂා කරන්න.</string>
+
+ <string name="preference_language">භාෂාව</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">පද්ධතියේ පෙරනිමි</string>
+
+ <string name="preference_category_privacy">පෞද්ගලිකත්‍වය</string>
+
+ <string name="preference_privacy_block_ads">දැන්වීම් ලුහුබැඳීම් අවහිරය</string>
+ <string name="preference_privacy_block_ads_summary">ඔබ දැන්වීම් නොඑබුවත් ඇතැම් දැන්වීම් අඩවියට පැමිණීම් ලුහුබඳියි</string>
+ <string name="preference_privacy_block_analytics">විශ්ලේෂ ලුහුබැඳීම් අවහිරය</string>
+ <string name="preference_privacy_block_analytics_summary">තට්ටු කිරීම හා අනුචලනය වැනි ක්‍රියාකාරකම් රැස් කිරීමට, විශ්ලේෂණයට සහ මැනීමට භාවිතා කරයි</string>
+ <string name="preference_privacy_block_social">සමාජ ලුහුබැඳීම් අවහිරය</string>
+ <string name="preference_privacy_block_social_summary">ඔබගේ ගොඩවැදීම් ලුහුබැඳීමට හා බෙදාගැනීමේ බොත්තම් වැනි දෑ පෙන්වීමට අඩවි වෙත කාවද්දා තිබේ</string>
+ <string name="preference_privacy_block_content">අන් අන්තර්ගත ලුහුබැඳීම් අවහිරය</string>
+ <string name="preference_privacy_block_content_summary2">සබල කිරීමෙන් ඇතැම් පිටු අනපේක්‍ෂිත ලෙස හැසිරීමට හේතු වනු ඇත</string>
+ <string name="preference_privacy_category_cookies">දත්තකඩ අවහිරය</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">එපා, ස්තුතියි</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">තෙවන පාර්ශ්ව ලුහුබඳින දත්තකඩ අවහිරය</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">තෙවන පාර්ශ්ව දත්තකඩ අවහිරය</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">හරස් අඩවි දත්තකඩ අවහිරය</string>
+
+ <string name="preference_privacy_should_block_cookies_yes_option2">ඔව්, කරුණාකර</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">යෙදුම අගුළු ඇරීමට ඇඟිලි සටහන</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">ඔබ කෙටිමං එක් කර ඇත්නම් හෝ අඩවියක් දැනටමත් %s තුළ විවෘතව තිබෙන විට ඇඟිලි සටහන භාවිතයෙන් අගුළු හරින්න.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">රහසිගත</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">යෙදුම් මාරු කිරීමේදී පිටු සඟවන්න සහ තිරසේයා ගැනීම අවහිර කරන්න.</string>
+
+ <string name="preference_category_security">ආරක්‍ෂාව</string>
+
+ <string name="preference_category_performance">කාර්ය සාධනය</string>
+ <string name="preference_performance_block_webfonts">වියමන අකුරු අවහිරය</string>
+
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">නිරූපක හෝ රූප මඟහැරීමට හේතු විය හැකිය</string>
+
+ <string name="preference_performance_block_javascript">ජාවාස්ක්‍රිප්ට් අවහිරය</string>
+
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">පිටු වේගයෙන් පූරණය වන නමුත් අනපේක්‍ෂිත ලෙස හැසිරිය හැකිය</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s පෙරනිමි අතිරික්සුව කරන්න</string>
+
+ <string name="preference_category_mozilla">මොසිල්ලා</string>
+ <string name="preference_mozilla_telemetry2">භාවිත දත්ත යවන්න</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">තව දැනගන්න</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">සැමට %1$s වැඩිදියුණු කර දීමට හා සැපයීමට අවශ්‍ය දෑ පමණක් රැස් කර ගැනීමට මොසිල්ලා උත්සාහ කරයි.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">පෞද්ගලිකත්‍ව දැන්වීම</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">බලපත්‍රදායක තොරතුරු</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">අපි භාවිතා කරන එකතු</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS එකතු</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s ගැන</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">ස්ථාපිත සෙවුම් යන්ත්‍ර</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">සෙවුම් යන්ත්‍රය තෝරන්න</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">පෙරනිමි සෙවුම් එළවුම් ප්‍රත්‍යර්පණය</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ අන් සෙවුම් යන්ත්‍රයක් එක් කරන්න</string>
+ <string name="preference_search_remove_title">සෙවුම් යන්ත්‍ර ඉවත් කරන්න</string>
+ <string name="preference_search_remove">ඉවත් කරන්න</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">අන් සෙවුම් යන්ත්‍රයක් එක් කරන්න</string>
+
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">ප්‍රියතම යන්ත්‍රය තෝරන්න:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">සෙවුම් යන්ත්‍රයක් යොදන්න</string>
+
+ <string name="search_add_manually_name_hint">සෙවුම් යන්ත්‍රයේ නම</string>
+ <string name="search_add_manually_string">භාවිතයට සෙවුම් තන්තුව</string>
+ <string name="search_add_manually_save">සුරකින්න</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">උදාහරණය: නිදසුන.ලංකා/සොයන්න/?q=%s</string>
+
+ <string name="search_add_confirmation">නව සෙවුම් යන්ත්‍රයක් එක් විය.</string>
+
+ <string name="search_add_error_empty_name">සෙවුම් යන්ත්‍රයේ නම යොදන්න</string>
+ <string name="search_add_error_duplicate_name">ස්ථාපිත සෙවුම් යන්ත්‍රයක් දැනටමත් එම නම භාවිතා කරයි.</string>
+
+ <string name="search_add_error_empty_search">සෙවුම් පදය යොදන්න</string>
+
+ <string name="search_add_error_format">සෙවුම් තන්තු උදාහරණ ආකෘතියට ගැළපෙන බව පරීක්‍ෂා කරන්න</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">ආදානය මකන්න</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">ඉවතලන්න</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">පිරික්සුම් ඉතිහාසය මකන්න</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">විවෘත පටිති: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">ආරක්‍ෂිත සම්බන්ධතාවයකි</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">පූරණය වෙමින්</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">අඩවිය පූරණය විය</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">තවත් විකල්ප</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">තවත් විකල්ප බොත්තම</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">ඉදිරියට යාත්‍රණය</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">අඩවිය යළි පූරණය</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">ආපසු යාත්‍රණය</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">අඩවිය පූරණය වීම නවතන්න</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">කලින් යෙදුමට ආපසු</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">අවහිර කළ ලුහුබැඳීම් ගණන</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">ලුහුබැඳීම් අවහිරය</string>
+
+ <string name="your_rights">ඔබගේ අයිතීන්</string>
+
+ <string name="external_app_prompt_title">අන් යෙදුමක සබැඳිය අරින්න</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">මෙම සබැඳිය %2$s හි විවෘත කිරීමට %1$s හැර යාමට හැකිය.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">සබැඳිය විවෘත කළ හැකි යෙදුමක් සොයන්න</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">ඔබගේ උපාංගයේ තිබෙන යෙදුම් කිසිවකට මෙම සබැඳිය විවෘත කළ නොහැකිය. %2$s හි යෙදුමක් සොයා ගැනීම සඳහා %1$s හැර යාමට හැකිය.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">පෞද්. පිරික්සුමෙන් පිටවන්නද?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s අවසන්</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">අරින්න</string>
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">කෙටිමං වෙත එක් කෙරිණි!</string>
+
+ <string name="error_hostLookup_title">සේවාදායකය හමු නොවුණි</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">වසන්න</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">%1$s වෙත පිළිගනිමු</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">වේගවත්. පෞද්ගලික. බාධා රහිත.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">පටන් ගන්න</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s වෙනත් අතිරික්සු මෙන් නොවේ</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">අතිරේක පෞද්ගලිකත්‍වයක් උදෙසා යෙදුම වසා දැමූ විට ඔබගේ ඉතිහාසය හිස් කෙරේ.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">විවෘත වන සෑම සබැඳියක් සමඟ ඔබගේ දත්ත රැකවරණයට %1$s පෙරනිමි කරන්න.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">පෙරනිමි අතිරික්සුව කරන්න</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">මඟහරින්න</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">ඔබගේ පෞද්ගලිකත්‍වය බලගන්වන්න</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">පෞද්ගලික පිරික්සීම ඊළඟ මට්ටමට ගෙන යන්න. අඩවි හරහා ඔබව ලුහුබැඳීමට හැකි දැන්වීම් හා වෙනත් අන්තර්ගත අවහිර කර පිටු පූරණ කාලය අවම කර ගන්න.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">ඔබගේ සෙවීම, ඔබගේ මාවත</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">වෙනස් දෙයක් සොයනවාද? සැකසුම් තුළ වෙනත් පෙරනිමි සෙවුම් යන්ත්‍රයක් තෝරන්න.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">ඔබගේ මුල් තිරයට කෙටිමං එක් කරන්න</string>
+
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">ඉක්මනින් %1$s තුළ ඔබගේ ප්‍රියතම අඩවි වෙත ආපසු යන්න. %1$s වට්ටෝරුවෙන් \&quot;මුල් තිරයට යොදන්න\&quot; තෝරන්න.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">පෞද්ගලිකත්‍වය පුරුද්දක් කරගන්න</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">ඔබගේ පෙරනිමි අතිරික්සුව ලෙස %1$s සකසා ඔබ වෙනත් යෙදුම්වලින් වියමන පිටු විවෘත කරන විට පෞද්ගලික පිරික්සුමෙහි ප්‍රතිලාභ අත්විඳින්න.</string>
+
+ <string name="firstrun_close_button">හරි, තේරුණා!</string>
+ <string name="firstrun_skip_button">මඟහරින්න</string>
+ <string name="firstrun_next_button">ඊළඟ</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">එකතු</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ඔව්</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">අවලංගු</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">නැහැ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">දියුණු කළ ලුහුබැඳීමේ ආරක්‍ෂාව රහිතව කෙටිමඟ විවෘත වනු ඇත</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">පෞද්. පිරික්සුම් වාරය</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">ඔබගේ %1$s වාරය තට්ටු කිරීමකින් මකා දැමීමට දැනුම්දීම් ඔබට ඉඩ සලසයි. යෙදුම විවෘත කිරීමට හෝ ඔබගේ අතිරික්සුවෙහි ධාවනය වන දෑ බැලීමට අවශ්‍ය නොවේ.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">පිරික්සුම් ඉතිහාසය මකන්න</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">ෆයර්ෆොක්ස් බාගන්න</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s යනු මොසිල්ලා සහ අනෙකුත් දායකයින් විසින් සාදන ලද නොමිලේ හා විවෘත කේත මෘදුකාංගයකි.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[<a href="%2$s">මොසිල්ලා පොදු බලපත්‍රය</a> සහ අනෙකුත් විවෘත මූලාශ්‍ර බලපත්‍රවල නියම යටතේ ඔබට %1$s ලබා ගැනීමට හැකිය.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Mozilla පදනමේ හෝ Mozilla, Firefox හෝ %1$s ආදී නම් හෝ ලාංඡන ඇතුළුව ඕනෑම පාර්ශ්වයක වෙළඳ ලකුණු සඳහා ඔබට කිසිදු අයිතියක් හෝ බලපත්‍රයක් ලබා දී නැත. අතිරේක තොරතුරු <a href="%2$s">මෙතැන</a> තිබේ.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[%1$s සඳහා අතිරේක මූලාශ්‍ර කේත වෙනත් විවිධ නොමිලේ සහ විවෘත මූලාශ්‍ර <a href="%2$s">බලපත්‍ර</a> යටතේ තිබේ.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[ඩිස්කනෙක්ට් සමාගම වෙතින් සපයන ලද අවහිර ලේඛනයක් ද %1$s භාවිතා කරයි. එය <a href="%2$s">ජීඑන්යූ සාමාන්‍ය පොදු බලපත්‍රය අනු. 3</a> යටතේ ස්වාධීන ව්‍යාපෘතියකි, සහ <a href="%3$s">මෙහි</a> තිබේ.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">පරිශීලක නාමය</string>
+ <string name="gv_prompt_password_hint">මුරපදය</string>
+ <string name="gv_prompt_clear">මකන්න</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">ආරක්‍ෂිත සම්බන්ධතාවයකි</string>
+ <string name="security_popup_insecure_connection">ආනාරක්‍ෂිත සම්බන්ධතාවයකි</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">සත්‍යාපනය: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">අඩවියේ ආරක්‍ෂාව</string>
+ <string name="preference_autocomplete_duplicate_url_error">ඒ.ස.නි. දැනටමත් පවතී</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">පිටුවේ සොයන්න</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">පිටුවේ සොයන්න</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d / %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">ඊළඟ ප්‍රතිඵලය සොයන්න</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">කලින් ප්‍රතිඵලය සොයන්න</string>
+
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">පිටුවේ සෙවීම ඉවතලන්න</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">වැඩතල අඩවිය ඉල්ලන්න</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">වැඩතල අඩවිය</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">ඒ.ස.නි. පිටපත් විය</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">සංවර්ධක මෙවලම්</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">යෙදුම්වල සබැඳි අරින්න</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">වැඩිදුර</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">අඩවි අවසර</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">දත්තකඩ පතාක අවකරණය</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">සක්‍රියයි</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">අක්‍රියයි</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">දත්තකඩ පතාක අවකරණය</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">පිළිවන් විට දත්තකඩ ඉල්ලීම් ස්වයංක්‍රීයව ඉවතලීමෙන් පතාක අඩුවෙන් පෙන්වයි.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">දත්තකඩ පතාක අවකරණය</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">මෙම අඩවියට සක්‍රියයි</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">අඩවියට සහාය නොදක්වයි</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">මෙම අඩවියට අක්‍රියයි</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">දත්තකඩ පතාක අවකරණය</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">මෙම අඩවියට අක්‍රියයි</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">මෙම අඩවියට සක්‍රියයි</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">%1$s සඳහා දත්තකඩ පතාක අවකරණය සක්‍රිය කරන්නද?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">%1$s සඳහා දත්තකඩ පතාක අවකරණය අක්‍රිය කරන්නද?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s මෙම අඩවියේ දත්තකඩ ඉවත් කර පිටුව නැවුම් කරයි. සියළුම දත්තකඩ මැකීමෙන් බඩු කරත්ත හිස් වීමට හෝ ඔබව නික්මවීමට ඉඩ ඇත.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s මඟින් දත්තකඩ ඉල්ලීම් ස්වයංක්‍රීයව ඉවතලීමට හැකිය.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">මෙම අඩවිය දැනට දත්තකඩ පතාක අවකරණයට සහාය නොදක්වයි. මෙම වියමන අඩවිය සමාලෝචනය කර අනාගතයේදී සහාය දක්වන ලෙස අපගේ කණ්ඩායමට දැන්වීමට කැමතිද?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">අවලංගු</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">සහාය ඉල්ලන්න</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">අඩවිය සඳහා සහාය ඉල්ලීම යොමු කෙරිණි.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">අඩවිය සඳහා සහාය ඉල්ලීම යොමු කෙරිණි.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">කරදරකාරී දත්තකඩ පතාක ඉවතලීම සඳහා දත්තකඩ ඉල්ලීම් ප්‍රතික්‍ෂේප කිරීමට %1$s උත්සාහ කරයි.\n\n%2$s තුළ දත්තකඩ පතාක අභිප්‍රේත කළමනාකරණය කරන්න.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">සැකසුම්</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">ස්වයං වාදනය</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">එයට ඉඩ දීමට:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. ඇන්ඩ්‍රොයිඩ් සැකසුම් වෙත යන්න</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. <b>අවසර</b> තට්ටු කරන්න]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">සැකසුම් වෙත යන්න</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. <b>%1$s</b> සබල කරන්න]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">රූගතය</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">ශබ්දවාහිනිය</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">ස්ථානය</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">දැනුම්දීම්</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-පාලිත අන්තර්ගතය</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">ඉඩදීමට අසන්න</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">අවහිරයි</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">ඉඩ දී ඇත</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">ඇන්ඩ්‍රොයිඩ් මගින් අවහිරයි</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">ශ්‍රව්‍ය හා දෘශ්‍ය සඳහා ඉඩදෙන්න</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">හඬ පමණක් අවහිරය</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">නිර්දේශිත</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">ශ්‍රව්‍ය සහ දෘශ්‍ය අවහිරය</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">අධ්‍යන</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">ෆයර්ෆොක්ස් මගින් කලින් කලට අධ්‍යන ස්ථාපනය කර ධාවනය කරයි.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">තව දැනගන්න</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">වෙනස්කම් යෙදීම සඳහා යෙදුම ඉවත් වනු ඇත</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">ඉවත් කරන්න</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">සක්‍රිය</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">සම්පූර්ණයි</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">USB/වයි-ෆයි හරහා දුරස්ථ නිදොස්කරණය</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">අගුළු හරින්න</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">ඇඟිලි සටහන භාවිතයෙන් තහවුරු කරන්න</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">වත්මන් වාරය සමඟ ඉදිරියට යාමට ඔබගේ ඇඟිලි සටහන භාවිතා කිරීමට හැකිය.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">නව පටිත්තකින් වාරය අරින්න</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">ඇඟිලි සටහන් නිරූපකය</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">ඇඟිලි සටහන හඳුනාගෙන නැත. යළි උත්සාහ කරන්න.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">ඇඟිල්ල වේගයෙන් චලනය විය. යළි උත්සාහ කරන්න.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">සෙවුම් යෝජනා පෙන්වන්නද?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">යෝජනා ලබා ගැනීමට, ඔබ ලිපින තීරුවේ ලියන දෑ සෙවුම් යන්ත්‍රය වෙත යැවීම %1$s මගින් සිදු කළ යුතුය.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">නැහැ</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">ඔව්</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">ඇතැම් සෙවුම් යන්ත්‍රවලට යෝජනා පෙන්වීමට නොහැකිය.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">ඉවතලන්න</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">අඩවිය අනපේක්‍ෂිත ලෙස හැසිරෙන්නේද?\n
+ ලුහුබැඳීමේ රැකවරණය අක්‍රිය කර බලන්න</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[ඔබ නිතර භාවිතා කරන අඩවි වෙත එක් තට්ටුවකින් ප්‍රවේශ වන්න%1$s වට්ටෝරුව > මුල් තිරයට යොදන්න]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">සෑම සබැඳියක්ම %1$s\n හි විවෘත කරන්න
+ %1$s පෙරනිමි අතිරික්සුව ලෙස සකසන්න
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">නිතර භාවිතා කරන අඩවි සඳහා ඒ.ස.නි. ස්වයං පිරවීම\n
+ ලිපින තීරුවේ ඕනෑම ඒ.ස.නි. මත මද වේලාවක් ඔබන්න
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">සබැඳියක් නව පටිත්තක විවෘත කරන්න\n
+ පිටුවක ඇති ඕනෑම සබැඳියක් මද වේලාවක් ඔබන්න
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">ආරම්භක තිරය මත ඉඟි අක්‍රිය කරන්න</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">නව පටිත්තක් විවෘතයි</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">මාරු වන්න</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">පූර්ණ තිර ප්‍රකාරයට ඇතුල් වෙමින්</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">වහාම නව පටිත්තක සබැඳියට මාරු වන්න</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">භයානක හා කූට අන්තර්ගත අවහිර කරන්න</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">වාර්තා වූ කූට හා ප්‍රහාරක අඩවි, අනිෂ්ට අඩවි, සහ අනවශ්‍ය මෘදුකාංග අඩවි අවහිර කරන්න.</string>
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">HTTPS-පමණි ප්‍රකාරය</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">ඉහළ ආරක්‍ෂාවක් සඳහා HTTPS සංකේතන කෙටුම්පත භාවිතයෙන් අඩවි වෙත ස්වයංක්‍රීයව සම්බන්ධ වීමට තැත් කරයි.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">හැරදැමීම්</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">ඔබ මෙම අඩවි සඳහා අන්තර්ගත අවහිර කිරීම අබල කර ඇත.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">ඉවත් කරන්න</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">සියළු අඩවි ඉවත් කරන්න</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">දත්තකඩ අවහිරය</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">ඔබ දත්තකඩ අවහිර කිරීමට කැමතිද?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">පටිත්ත බිඳ වැටුණි</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">කණගාටුයි. මෙම පටිත්ත සමඟ ගැටලුවක් තිබේ.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">පෞද්. අතිරික්සුවක් බැවින් සුරැකීමට හෝ මෙම පටිත්ත ප්‍රත්‍යර්පණය කළ නොහැකිය.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">පටිත්ත වසන්න</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">මොසිල්ලා වෙත බිඳ වැටීම් වාර්තාව යවන්න</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">%s සිට අවහිර කළ ලුහුබැඳීම්</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">අන්තර්ගතය</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">දැන්වීම්</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">සමාජ</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">විශ්ලේෂ</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">දියුණු කළ ලුහුබැඳීමේ රැකවරණය</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">අඩවියට දියුණු කළ ලුහුබැඳීමේ රැකවරණය අක්‍රියයි</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">අඩවියට දියුණු කළ ලුහුබැඳීමේ රැකවරණය සක්‍රියයි</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">සම්බන්ධතාවය ආරක්‍ෂිතයි</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">සම්බන්ධතාවය අනාරක්‍ෂිතයි</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">අවහිර කිරීමට ලුහුබැඳීම් හා අත්පත්</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">ආපසු යන්න</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">ඉවත් කරන්න</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">නම් කරන්න</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">නම් කරන්න</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">කෙටිමඟ නාමය</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">ඔබ %1$s ඉතිහාසය මකන විට සුරකින ලද සහ බෙදා ගත් රූප &lt;b&gt;මකනු නොලැබේ&lt;/b&gt;</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">තේමාව</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">දීප්ත</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">අඳුරු</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">විදුලිකෝෂ සුරැකුමෙන් සැකසූ</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">උපාංගයේ තේමාව</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">අඩවිය HTTPS සඳහා සහය නොදක්වයි</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[වැඩි ආරක්‍ෂාවක් සඳහා %1$s හැකි සෑම විටම HTTPS සම්බන්ධතාවයක් භාවිතයට උත්සාහ කරයි.
+ <a href="%2$s">තව දැනගන්න</a> <br/><br/>
+ සැකසුම් > පෞද්ගලිකත්‍වය හා ආරක්‍ෂාව > ආරක්‍ෂාව හරහා සැකසුම වෙනස් කරන්න.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">සම්බන්ධතාවය අනාරක්‍ෂිතයි</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ මෙය සේවාදායකයේ වින්‍යාසයෙහි ගැටලුවක් විය හැකිය, හෝ යමෙක් සේවාදායකය ලෙස වංචනිකව පෙනී සිටීමට තැත් කරනවා විය හැකිය. <br/><br/>
+ ඔබ කලින් මෙම සේවාදායකයට සාර්ථකව සම්බන්‍ධ වී ඇත්නම්, මෙය තාවකාලික දෝෂයක් විය හැකිය.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>යමෙක් වංචනිකව මෙම අඩවිය හසුරුවීමට තැත් කරන හෙයින් ඉදිරියට යාම අවදානම් සහගතය.</label>
+ <br><br>
+ <label><b>%2$s</b> හි සහතිකයේ නිකුත්කරු නොදන්නා නිසා %1$s එය විශ්වාස නොකරයි, සහතිකය ස්වයං-අත්සන් කර හෝ සේවාදායකය නිවැරදි අතරමැදි සහතිකය එවන්නේ නැත.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">පටිත්ත වසන්න</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">ඒවා ලැබුණා! අපි මෙම අඩවිය ඔබ ගැන ඔත්තු බැලීම නැවැත්තුවෙමු. අපි අවහිර කරන දෑ බැලීමට පලිහ මත තට්ටු කරන්න.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">උත්පතනය වසන්න</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">ඔබ සුරක්‍ෂිතයි!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">මෙම පෙරනිමි සැකසුම් ඉහළ ආරක්‍ෂාවක් සපයයි. නමුත් ඔබගේ අවශ්‍යතා වලට යෝග්‍ය ලෙස සැකසුම් හැඩගැසීමට පහසුය.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">ඉවතලන්න</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">ඉතිහාසය, දත්තකඩ, හා අනෙකුත් දෑ — සියල්ල කුණු කූඩයට දැමීමට මෙහි තට්ටු කරන්න — සහ නව පටිත්තකින් නැවුම්ව අරඹන්න.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">වසන්න</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">පිරික්සුම් ඉතිහාසය මැකිණි! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">ඔබගේ පෞද්ගලික පිරික්සුම් වාරය අරඹන්න, ඔබ යන හැටියට ලුහුබැඳීම් සහ වෙනත් නරක දෑ අවහිර කෙරේ.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-sk/strings.xml b/mobile/android/focus-android/app/src/main/res/values-sk/strings.xml
new file mode 100644
index 0000000000..886c54f665
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-sk/strings.xml
@@ -0,0 +1,1121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Zrušiť</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Uložiť</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Zadajte hľadanie alebo adresu</string>
+
+ <string name="teaser">Automatické súkromné prehliadanie.\nPrehliadajte. Vymažte históriu. Opakujte.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Vaša história prehliadania bola vymazaná.</string>
+
+ <string name="feedback_erase2">História prehliadania bola vymazaná</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">História bola vymazaná.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Vyhľadať %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Zdieľať…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Nahlásiť problém so stránkou</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Otvoriť v aplikácii %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Otvoriť pomocou…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Pridať na úvodnú obrazovku</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Pridať medzi Skratky</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Odstrániť zo Skratiek</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Nastavenia</string>
+ <string name="menu_about">O aplikácii</string>
+ <string name="menu_help">Pomocník</string>
+ <string name="menu_rights">Vaše práva</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Počet zablokovaných sledovacích prvkov</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Vypnutie tejto funkcie môže odstrániť niektoré problémy</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Blokovanie obsahu</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Vypnutie tejto funkcie odstráni niektoré problémy so stránkami</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Powered by %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Zdieľať cez</string>
+
+ <string name="notification_erase_title_android_14">Vymazať históriu prehliadania?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Ťuknutím alebo vymazaním tohto upozornenia bezpečne vymažete svoju históriu prehliadania.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Ťuknutím alebo potiahnutím tohto upozornenia bezpečne vymažete históriu prehliadania.</string>
+
+ <string name="notification_erase_text">Vymazať históriu prehliadania</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Otvoriť</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Vymazať a otvoriť</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Vymazať</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Vymazať históriu</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Vymazať a otvoriť</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Vymazať a otvoriť %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Hľadať vo Focuse</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Hľadať v Klare</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Hľadať vo Focuse Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Hľadať vo Focuse Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s vám dáva kontrolu.</p>
+<p>Používajte ho ako súkromný prehliadač:
+ <ul>
+ <li>Hľadajte a prehliadajte priamo v aplikácii</li>
+ <li>Blokujte sledovacie prvky (alebo aktualizujte nastavenia a povoľte niektoré sledovacie prvky)</li>
+ <li>Jednoducho odstraňujte súbory cookie, ako aj históriu vyhľadávania a prehliadania</li>
+ </ul>
+</p>
+<p>%1$s je vytváraný spoločnosťou Mozilla. Našim poslaním je podporovať zdravý a otvorený internet.<br/>
+<a href="%2$s">Ďalšie informácie</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Súkromie a bezpečnosť</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Sledovanie, súbory cookie, údaje o používaní</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Predvolené nastavenia, automatické dopĺňanie</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">O aplikácii %1$s, pomocník</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Rozšírená ochrana pred sledovaním</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Webový obsah</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Prepínanie medzi aplikáciami</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Všeobecné</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Predvolený prehliadač, jazyk</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Zbieranie údajov a ich použitie</string>
+
+ <string name="preference_category_search">Vyhľadávanie</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Zobrazovať návrhy vyhľadávania</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s bude odosielať vami napísaný text v paneli s adresou vyhľadávaciemu modulu</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Predvolený</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Vyhľadávací modul</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Zapnuté</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Vypnuté</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Automatické dokončovanie URL adries</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Pre top stránky</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Povolením tejto možnosti umožníte aplikácii %s automaticky dokončovať viac než 450 populárnych adries URL.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Pre vami pridané stránky</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Ak chcete, aby %s automaticky dopĺňal vaše obľúbené adresy, aktivujte túto funkciu.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Spravovať stránky</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Spravovať stránky</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Pridať vlastnú URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Váš zoznam automatického dopĺňania:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Pridať adresu URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Pridať vlastnú URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Pridať vlastnú URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Pridať odkaz na automatické dokončovanie</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies a údaje stránok</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Odosielanie údajov</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Odstrániť vlastné URL</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Ďalšie informácie</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Pridanie a správa vlastných URL adries na dokončovanie.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Adresa na pridanie</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Prilepte alebo zadajte URL adresu</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Príklad: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Príklad: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Bola pridaná nová vlastná URL adresa.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Odstrániť</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Odstrániť</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Skontrolujte zadanú URL adresu.</string>
+
+ <string name="preference_language">Jazyk</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Jazyk zariadenia</string>
+
+ <string name="preference_category_privacy">Súkromie</string>
+ <string name="preference_privacy_block_ads">Blokovať reklamné sledovacie prvky</string>
+ <string name="preference_privacy_block_ads_summary">Niektoré reklamy vás sledujú aj keď na ne nekliknete</string>
+ <string name="preference_privacy_block_analytics">Blokovať analytické sledovacie prvky</string>
+ <string name="preference_privacy_block_analytics_summary">Tieto sa používajú na zbieranie a analýzu údajov o aktivitách, napríklad o posúvaní sa na stránke</string>
+ <string name="preference_privacy_block_social">Blokovať sledovacie prvky sociálnych sietí</string>
+ <string name="preference_privacy_block_social_summary">Tieto sa používajú na sledovanie vašich návštev a na zobrazovanie špecifických funkcií, napríklad tlačidla na zdieľanie</string>
+ <string name="preference_privacy_block_content">Blokovať ostatné sledovacie prvky</string>
+ <string name="preference_privacy_block_content_summary2">Niektoré stránky sa môžu chovať neočakávane</string>
+ <string name="preference_privacy_category_cookies">Blokovať cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Nie, ďakujem</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Len sledovacie cookies tretích strán</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Len cookies tretích strán</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blokovať súbory cookie tretích strán</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Áno, prosím</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Na odomknutie aplikácie používať odtlačok prsta</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Odomknite pomocou odtlačku prsta, ak ste pridali Skratky alebo keď je už webová lokalita otvorená v %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Nenápadnosť</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Skryje náhľad webových stránok pri zobrazení nedávnych aplikácii a zablokuje ukladanie snímok obrazovky.</string>
+
+ <string name="preference_category_security">Bezpečnosť</string>
+
+ <string name="preference_category_performance">Výkon</string>
+ <string name="preference_performance_block_webfonts">Blokovať webové písma</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Niektoré ikony alebo obrázky sa nemusia zobrazovať</string>
+
+ <string name="preference_performance_block_javascript">Blokovať JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Stránky sa môžu načítavať rýchlejšie, no môžu sa správať nepredvídateľne</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Nastaviť %1$s ako predvolený prehliadač</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Odosielať údaje o používaní</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Ďalšie informácie</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla sa usiluje zbierať len údaje, ktoré potrebujeme na vylepšenie aplikácie %1$s pre všetkých.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Vyhlásenie o ochrane osobných údajov</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Informácie o licenciách</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Knižnice, ktoré používame</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Knižnice OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">O aplikácii %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Nainštalované vyhľadávacie moduly</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Zvoľte vyhľadávací modul</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Obnoviť predvolené vyhľadávacie moduly</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Pridať ďalší vyhľadávací modul</string>
+ <string name="preference_search_remove_title">Odstrániť vyhľadávacie moduly</string>
+ <string name="preference_search_remove">Odstrániť</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Pridať ďalší vyhľadávací modul</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Vyberte si vami požadovaný modul:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Pridať vyhľadávací modul</string>
+
+ <string name="search_add_manually_name_hint">Názov vyhľadávacieho modulu</string>
+ <string name="search_add_manually_string">Výraz vyhľadávania</string>
+ <string name="search_add_manually_save">Uložiť</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Príklad: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Bol pridaný nový vyhľadávací modul.</string>
+
+ <string name="search_add_error_empty_name">Zadajte názov vyhľadávacieho modulu</string>
+ <string name="search_add_error_duplicate_name">Tento názov už používa nainštalovaný vyhľadávací modul.</string>
+
+ <string name="search_add_error_empty_search">Zadajte hľadaný výraz</string>
+
+ <string name="search_add_error_format">Skontrolujte, či sa hľadaný výraz formátovo zhoduje s príkladom</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Vymazať pole</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Zavrieť</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Vymazať históriu prehliadania</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Otvorené karty: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Zabezpečené pripojenie</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Načítava sa</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Stránka bola načítaná</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Ďalšie možnosti</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Tlačidlo ďalších možností</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Prejsť dopredu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Obnoviť stránku</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Prejsť dozadu</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Zastaviť načítavanie webovej stránky</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Návrat do predchádzajúcej aplikácie</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Počet zablokovaných sledovacích prvkov</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blokovať sledovacie prvky</string>
+
+ <string name="your_rights">Vaše práva</string>
+
+ <string name="external_app_prompt_title">Otvoriť odkaz v inej aplikácii</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Môžete opustiť aplikáciu %1$s a otvoriť tento odkaz v aplikácii %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Nájsť aplikáciu, ktorá môže otvoriť tento odkaz</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Žiadna aplikácia na vašom zariadení nie je schopná otvoriť tento odkaz. Môžete opustiť aplikáciu %1$s a nájsť vhodnú aplikáciu v %2$s.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Ukončiť režim Súkromné prehliadanie?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">Hotovo pre %1$s</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Otvoriť</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Pridané medzi skratky!</string>
+
+ <string name="error_hostLookup_title">Server sa nenašiel</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Zavrieť</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Víta vás %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Rýchly. Zameraný na súkromie. Žiadne rozptyľovanie.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Začíname</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s nie je ako iné prehliadače</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Po zatvorení aplikácie vymažeme vašu históriu, aby ste získali väčšie súkromie.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Nastavte si %1$s ako predvolený, aby ste ochránili svoje údaje pri každom otvorení odkazu.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Nastaviť ako predvolený prehliadač</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Preskočiť</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Posuňte svoje súkromie na vyššiu úroveň</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Súkromné prehliadanie na úplne inej úrovni. Blokujte reklamy a ostatný obsah, ktorý vás môže sledovať naprieč stránkami.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Prehliadanie podľa vás</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Hľadáte niečo iné? Vyberte si iný predvolený vyhľadávací modul v nastaveniach.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Pridajte si na svoju úvodnú obrazovku skratky</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">S aplikáciou %1$s sa môžete vrátiť ku svojim obľúbeným stránkam prakticky okamžite. Stačí, ak v ponuke aplikácie %1$s vyberiete možnosť „Pridať na úvodnú obrazovku“.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Zvyknite si na súkromie</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Nastavte si %1$s ako svoj predvolený prehliadač a získajte výhody súkromného prehliadania vždy, keď otvoríte webové stránky z iných aplikácií.</string>
+
+ <string name="firstrun_close_button">Ok, rozumiem!</string>
+ <string name="firstrun_skip_button">Preskočiť</string>
+ <string name="firstrun_next_button">Ďalej</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Pridať</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ÁNO</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Zrušiť</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NIE</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Skratka sa otvorí s vypnutou ochranou pred sledovaním</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Súkromné prehliadanie</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Upozornenia aplikácie %1$s vám umožnia vymazať históriu jedným ťuknutím. Nemusíte ani otvárať aplikáciu.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Vymazať históriu prehliadania</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Stiahnite si Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s je slobodný a otvorený softvér od Mozilly a jej prispievateľov.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s je dostupný za podmienok licencie <a href="%2$s">Mozilla Public License</a> a ďalších licencií pre open source.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Nemáte žiadne práva alebo licencie na používanie ochranných známok Mozilla Foundation alebo inej strany, vrátane názvov Mozilla, Firefox, %1$s alebo ich logotypov. Ďalšie informácie o ochranných známkach získate <a href="%2$s">na týchto stránkach</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Ďalší zdrojový kód pre %1$s s je k dispozícii pod rôznymi ďalšími bezplatnými a otvorenými zdrojovými <a href="%2$s"> licenciami</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s tiež používa zoznamy od spoločnosti Disconnect, Inc. ako samostatné a nezávislé diela podľa licencie <a href="%2$s">GNU General Public License v3</a>, ktoré sú dostupné <a href="%3$s">na týchto stránkach</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Používateľské meno</string>
+ <string name="gv_prompt_password_hint">Heslo</string>
+ <string name="gv_prompt_clear">Vymazať</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Zabezpečené pripojenie</string>
+ <string name="security_popup_insecure_connection">Nezabezpečené pripojenie</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Overil ju %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Zabezpečenie stránky</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL adresa už existuje</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Hľadať na stránke</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Hľadať na stránke</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d z %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Nájsť ďalší výsledok</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Nájsť predchádzajúci výsledok</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Zavrieť hľadanie na stránke</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Verzia pre počítače</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Verzia pre počítače</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Adresa bola skopírovaná</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Vývojárske nástroje</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Otvárať odkazy v aplikáciách</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Rozšírené</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Oprávnenia stránok</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Zníženie počtu bannerov k súborom cookie</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Zapnuté</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Vypnuté</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Zníženie počtu bannerov k súborom cookie</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Zobrazuje menej bannerov automatickým odmietnutím žiadostí o použitie súborov cookie (kde je to možné).</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Zníženie počtu bannerov k súborom cookie</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ZAPNUTÉ pre túto stránku</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Stránka momentálne nie je podporovaná</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">VYPNUTÉ pre túto stránku</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Zníženie počtu bannerov k súborom cookie</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">VYPNUTÉ pre túto stránku</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ZAPNUTÉ pre túto stránku</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Zapnúť znižovanie počtu bannerov k súborom cookie pre %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Vypnúť znižovanie počtu bannerov k súborom cookie pre %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s vymaže súbory cookie tohto webu a obnoví stránku. Vymazanie všetkých súborov cookie vás môže odhlásiť zo stránky alebo vyprázdniť nákupné košíky.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s sa môže pokúsiť automaticky odmietnuť žiadosti o súbory cookie.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Na tejto stránke momentálne nie je podporované znižovanie počtu súborov cookie. Chceli by ste požiadať náš tím o kontrolu tejto webovej stránky a pridanie podpory v budúcnosti?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Zrušiť</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Vyžiadať podporu</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Žiadosť o podporu stránky bola odoslaná.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Žiadosť o podporu stránky bola odoslaná.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s sa pokúša odmietnuť žiadosti o súbory cookie, aby zrušil nepríjemné bannery k súborom cookie.\n\nPredvoľby správania bannerov k súborom cookie môžete spravovať v %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">nastaveniach</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automatické prehrávanie</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Postup pre povolenie:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Prejdite do nastavení Androidu</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Ťuknite na <b>Povolenia</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Prejsť do nastavení</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Prepnite prepínač <b>%1$s</b> do polohy ZAPNUTÉ]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofón</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Poloha</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Upozornenia</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Obsah chránený pomocou DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Vždy sa opýtať</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blokované</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Povolené</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blokované systémom Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Povoliť zvuk a video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blokovať len zvuk</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Odporúčané</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blokovať zvuk a video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Štúdie</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox môže občas inštalovať a spúšťať štúdie.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Ďalšie informácie</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Aplikácia sa ukončí, aby sa mohli prejaviť zmeny</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Odstrániť</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktívne</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Ukončené</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Vzdialené ladenie cez USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Odomknúť</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Potvrďte pomocou odtlačku prsta</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Na pokračovanie aktuálnej relácie aplikácie môžete použiť odtlačok prsta.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Otvoriť odkaz v novej relácii</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Ikona odtlačku prsta</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Odtlačok prsta nebol rozpoznaný. Skúste to znova.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Pohli ste prstom príliš rýchlo. Skúste to znova.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Zobrazovať návrhy vyhľadávania?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Ak chcete získavať návrhy vyhľadávania, %1$s bude odosielať vami písaný text vyhľadávaciemu modulu.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Nie</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Áno</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Niektoré vyhľadávacie moduly nedokážu zobrazovať návrhy vyhľadávania.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Zavrieť</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Správa sa stránka neočakávane?\n Skúste vypnúť Ochranu pred sledovaním</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Získajte jednoduchý prístup ku svojim obľúbeným stránkam%1$s Ponuka > Pridať na úvodnú obrazovku]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Otvárajte každý odkaz v aplikácii %1$s\n Nastavte si %1$s ako predvolený prehliadač</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Automatické dopĺňanie URL adries je tu\n Podržte prst na akejkoľvek adrese v paneli s adresou</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Otvorte odkaz na novej karte\n Podržte prst na akomkoľvek odkaze na stránke</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Vypnúť tipy na úvodnej obrazovke aplikácie</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Bola otvorená nová karta</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Prepnúť</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Bol spustený režim celej obrazovky</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Prepnúť na odkaz na novej karte okamžite</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Blokovať potenciálne nebezpečné a podvodné stránky</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blokovať nahlásené podvodné a útočné stránky, stránky s malvérom a nevyžiadaným softvérom.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Režim &quot;Len HTTPS&quot;</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Automaticky sa pokúša pripojiť k stránkam pomocou šifrovacieho protokolu HTTPS na zvýšenie bezpečnosti.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Výnimky</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Na týchto stránkach ste vypli blokovanie obsahu.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Odstrániť</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Odstrániť všetky stránky</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blokovanie cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Chcete zablokovať súbory cookie?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Karta zlyhala</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Ospravedlňujeme sa, no vyskytol sa problém s touto kartou.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Keďže sme súkromný prehliadač, nikdy neukladáme karty a nemôžeme ich tým pádom ani obnoviť.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Zavrieť kartu</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Odoslať správu o zlyhaní Mozille</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Sledovacie prvky zablokované od %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Obsah</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Reklamy</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Sociálne siete</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analytika</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Rozšírená ochrana pred sledovaním</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Ochrana je na tejto stránke vypnutá</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Ochrana je na tejto stránke zapnutá</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Pripojenie je zabezpečené</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Pripojenie nie je zabezpečené</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Sledovacie prvky a skripty na zablokovanie</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Prejsť naspäť</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Odstrániť</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Premenovať</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Premenovanie</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Názov skratky</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Uložené a zdieľané obrázky &lt;b&gt;nebudú&lt;/b&gt; odstránené pri vymazaní histórie aplikácie %1$s.</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Téma vzhľadu</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Svetlá</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Tmavá</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Podľa šetriča batérie</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Podľa zariadenia</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Táto stránka nepodporuje HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s sa v záujme väčšej bezpečnosti pokúša použiť zabezpečené pripojenie cez protokol HTTPS vždy, keď je to možné.
+ <a href="%2$s">Ďalšie informácie</a> <br/><br/>
+ Toto nastavenie môžete zmeniť v časti Nastavenia > Súkromie a bezpečnosť > Bezpečnosť.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Pripojenie nie je zabezpečené</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Môže to byť problém s konfiguráciou servera alebo sa ho niekto snaží napodobniť. <br/><br/>
+ Ak ste sa k tomuto serveru úspešne pripojili v minulosti, chyba môže byť dočasná.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Niekto sa môže vydávať za tento server, a preto pokračovať by mohlo byť riskantné.</label>
+ <br><br>
+ <label>%1$s nedôveruje serveru <b>%2$s</b>, pretože vydavateľ jeho certifikátu je neznámy, certifikát je podpísaný sám sebou alebo server neposiela správne prechodné certifikáty.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Zavrieť kartu</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Máme ich! Zabránili sme tejto stránke špehovať vás. Kedykoľvek ťuknite na štít, aby ste videli, čo všetko blokujeme.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Zavrieť vyskakovacie okno</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Ste chránení!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Tieto predvolené nastavenia ponúkajú silnú ochranu. Je však ľahké vyladiť nastavenia tak, aby vyhovovali vašim špecifickým potrebám.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Zavrieť</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Ťuknutím sem všetko vyhodíte do koša – históriu, súbory cookie, všetko – a začnete odznova na novej karte.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Zavrieť</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Miniaplikácia vyhľadávania</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">História prehliadania bola vymazaná! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Začnite svoju reláciu súkromného prehliadania a my zablokujeme sledovacie prvky a iné zlé veci.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Necháme vás v súkromnom prehliadaní, ale nabudúce môžete začať rýchlejšie s miniaplikáciou %1$s na domovskej obrazovke.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Pridá miniaplikáciu na domovskú obrazovku</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Miniaplikácia bola pridaná na domovskú obrazovku</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-skr/strings.xml b/mobile/android/focus-android/app/src/main/res/values-skr/strings.xml
new file mode 100644
index 0000000000..37a03de51f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-skr/strings.xml
@@ -0,0 +1,1107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">منسوخ</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ٹھیک ہے</string>
+
+ <string name="action_save">محفوظ</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">ڳولو یا پتہ درج کرو</string>
+
+
+ <string name="teaser">خودکار نجی براوزنگ۔\nبراوز کرو۔ مٹاؤ۔ دہراؤ۔</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">تہاݙی براؤزنگ تاریخ مٹا ڈتی ڳئی ہے۔</string>
+ <string name="feedback_erase2">براؤزنگ تاریخ صاف تھی ڳئی</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">ٹیب دی براؤزنگ تاریخ مٹا ڈتی ڳئی ہے۔</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s کیتے ڳول</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">شیئر۔۔۔</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">سائٹ مسئلہ رپورٹ کرو</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s وچ کھولو</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">۔۔۔ وچ کھولو</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">ہوم سکرین تے شامل کرو</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">شارٹ کٹاں وچ شامل کرو</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">شارٹ کٹاں کنوں ہٹاؤ</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">ترتیباں</string>
+ <string name="menu_about">تعارف</string>
+ <string name="menu_help">مدد</string>
+
+ <string name="menu_rights">تہاݙے حقوق</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">ٹریکر بلاک تھئے</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">ایں کوں بند کرݨ نال سائٹ دے کجھ مسئلے ٹھیک تھی سڳدن</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">مواد روکݨ</string>
+
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">کجھ سائٹاں کوں ٹھیک کرݨ کیتے بند کرو</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s ولوں تکڑا تھیا</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">شیئر بذریعہ</string>
+
+ <string name="notification_erase_title_android_14">براؤزنگ تاریخ مٹاؤں؟</string>
+
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">آپݨی براؤزنگ تاریخ کوں محفوظ طریقے نال مٹاوݨ کیتے ایں اطلاع نامے تے انگل پھیرو یا صاف کرو۔</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">آپݨی براؤزنگ تاریخ کوں محفوظ طریقے نال مٹاوݨ کیتے ایں اطلاع نامے تے انگل پھیرو یا انگل نال پونجھو۔</string>
+
+ <string name="notification_erase_text">براؤزنگ تاریخ مٹاؤ</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">کھولو</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">مٹاؤ تے کھولو</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">مٹاؤ</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">براؤزنگ تاریخ مٹاؤ</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">مٹاؤ تے کھولو</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">مٹاؤ تے %1$s کھولو</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">فوکس وچ ڳولو</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">کلار وچ ڳولو</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">فوکس بیٹا وچ ڳولو</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">فوکس نائٹلی وچ ڳولو</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s تہاکوں کنٹرول ݙیندی ہے </p>
+<p> ایں کوں نجی براؤزر وانگوں ورتو:
+ <ul>
+ <li> ایپ وچ لبھو تے براؤز کرو </li>
+ <li>ٹریکراں کوں بلاک کرو (یا ترتیباں دی تازہ کاری کر تے ٹریکراں کوں اجازت ݙیوو)۔ </li>
+ <li> کوکیاں دے نال نال ڳولݨ تے براؤزنگ تاریخ کوں وی مٹاؤ </li>
+ </ul>
+</p>
+<p>%1$s موزلّا دی پیداوار ہے۔ ساݙی مہم ہک صحت مند کھلے انٹرنیٹ کوں فروعٰ ݙیوݨ ہے۔ <br/>
+<a href="%2$s"> ٻیا سِکھو </a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">رازداری تے سلامتی</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">ٹریکنگ، کوکیاں، ڈیٹا چوائس</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">ڈیفالٹ مقرر کرو، خودکار مکمل</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s دا تعارف، مدد</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">بہتر ٹریکنگ حفاظت</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">ویب مواد</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">ایپاں تبدیل کرݨ</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">عمومی</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">ڈیفالٹ براؤزر، زبان</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">ڈیٹا مجموعہ تے ورتاوا</string>
+
+ <string name="preference_category_search">ڳولو</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">ڳولݨ تجویزاں گھنو</string>
+
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">تساں جہڑا کجھ تساں ڳولݨ انجݨ دی پتہ پٹی وچ ٹائپ کریسو تہاکوں %1$s بھیڄ ݙیسی</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">ڈیفالٹ</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">ڳولݨ انجݨ</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">چالو</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">بند</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">یوآرایل خودکار تکمیل</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">بہترین سائٹاں کیتے</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">پتہ پٹی وچ ٤٥٠ کنوں ودھ مقبول یوآرایل آں کیتے %s خودکار تکمیل کوں فعال کرو۔</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">سائٹاں کیتے جہڑیاں تساں شامل کرو</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">آپݨی پسندیدہ یوآرایلاں کوں %s خودکار مکمل کرݨ کیتے فعال کرو</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">سائٹاں دا بندوبست کرو</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">سائٹاں دا بندوبست کرو</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ کسٹم یوآرایل شامل کرو</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">تہاݙی خودکار تکمیل تندیر:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">یوآرایل شامل کرو</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">کسٹم یوآرایل شامل کرو</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">کسٹم یوآرایل شامل کرو</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">خودکار تکمیل کیتے لنک شامل کرو</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">کوکیاں تے سائٹ ڈیٹا</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">ڈیٹا چوائس</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">من پسند یوآرایلاں ہٹاؤ</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">ٻیا سِکھو</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">من پسند خودکار مکمل یوآرایلاں دا بندوبست کرو تے شامل کرو۔</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">شامل کرݨ کیتے یوآرایل</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">یوآرایل پیسٹ یا درج کرو</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">مثال دے طور تے: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">مثال: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">نویں من پسند یوآرایل شامل تھی ڳئی۔</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">ہٹاؤ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">ہٹاؤ</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">درج تھئے یوآرایل دی ݙو واری پڑتال کرو۔</string>
+
+ <string name="preference_language">زبان</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">نظام ڈیفالٹ</string>
+
+ <string name="preference_category_privacy">رازداری</string>
+
+ <string name="preference_privacy_block_ads">اشتہار ٹریکر کوں بلاک کرو</string>
+ <string name="preference_privacy_block_ads_summary">کجھ اشتہار سائٹ دے دورے کوں ٹریک کریندن، بھان٘ویں تساں مشہوریاں تے کلک وی نہ کرو۔</string>
+ <string name="preference_privacy_block_analytics">تجزیاتی ٹریکر بلاک کرو</string>
+ <string name="preference_privacy_block_analytics_summary">انگل پھیرݨ تے سکرول کرݨ جیہاں سرگرمیاں کوݨ مِݨݨ، کٹھا کرݨ تے تجزیہ کرݨ کیتے ورتِیندے</string>
+ <string name="preference_privacy_block_social">سماجی ٹریکراں کوں بلاک کرو</string>
+ <string name="preference_privacy_block_social_summary">تہاݙے دوریاں کوں ٹریک کرݨ تے شیئر بٹݨ وانگوں فعالیت ظاہر کرݨ کیتے سائٹاں تے ایمبیڈ تھئے</string>
+ <string name="preference_privacy_block_content">ٻئے مواد ٹریکر بلاک کرو</string>
+ <string name="preference_privacy_block_content_summary2">فعال کرݨ نال کجھ ورقے غیرمتوقع خراب تھی سڳدن</string>
+ <string name="preference_privacy_category_cookies">کوکیاں بلاک کرو</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">کو، شکریہ</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">صرف تریجھا فریق ٹریکر کوکیاں بلاک کرو </string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">صرف تریجھا فریق کوکیاں بلاک کرو </string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">کراس سائٹ کوکیاں بلاک کرو</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">جیا سوہݨا</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">ایپ دا جندرا کھولݨ کیتے فنگرپرنٹ ورتو</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">جے تساں شاٹ کٹ شامل کیتے ہن یا کوئی ویب سائٹ %s وچ پہلے ہی کھلی ہے تاں فنگر پرنٹ نال جندرہ کھولو</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">سٹلتھ</string>
+
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">ایپاں سوئچ کرݨ ویلے ویب ورقیاں کوں لُکاؤ تے سکرین شاٹ گھنݨ بلاک کرو۔ </string>
+
+ <string name="preference_category_security">سلامتی</string>
+
+ <string name="preference_category_performance">کارکردگی</string>
+ <string name="preference_performance_block_webfonts">ویب فونٹ بلاک کرو</string>
+
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">ایندے نال کجھ تصویراں یا آئیکان غائب تھی سڳدن</string>
+
+ <string name="preference_performance_block_javascript">JavaScript بلاک کرو</string>
+
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">ورقے تکھے تکھے لوڈ تھی سڳدن، پر کم خراب وی تھی سڳدے۔</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s کوں پہلوں مقرر براؤز بݨاؤ</string>
+
+ <string name="preference_category_mozilla">موزلّا</string>
+
+ <string name="preference_mozilla_telemetry2">ورتیل ڈیٹا پٹھو</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">ٻیا سِکھو</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">موزلّا صرف ایں کوں وٹلا کرݨ دی کوشش کریندےجہڑا ساکوں ہر کہیں کیتے %1$s فراہم کرݨ تے چنڳا بݨاوݨ دی لوڑ ہے۔</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">رازداری نوٹس</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">لائسنس ڄاݨکاری</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">لائبریریاں جہڑیاں اساں ورتیندوں</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">OSS | %s لائبریریاں</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s دے بارے</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">انسٹال تھئے ڳولݨ انجݨ</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">ڳولݨ انجݨ چݨو</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">ڈیفالٹ ڳولݨ انجݨ بحال کرو</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ ہک ٻیا ڳولݨ انجݨ شامل کرو</string>
+ <string name="preference_search_remove_title">ڳولݨ انجݨ ہٹاؤ</string>
+ <string name="preference_search_remove">ہٹاؤ</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">ہک ٻیا ڳولݨ انجݨ شامل کرو</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">آپݨاں ترجیحی انجݨ چݨو:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">ڳولݨ انجݨ شامل کرو</string>
+
+ <string name="search_add_manually_name_hint">ڳولݨ انجݨ ناں</string>
+ <string name="search_add_manually_string">ورتݨ کیتے تند ڳولو</string>
+ <string name="search_add_manually_save">محفوظ</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">مثال: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">نواں ڳولݨ انجݨ شامل تھی ڳیا۔</string>
+
+ <string name="search_add_error_empty_name">ڳولݨ انجݨ دا ناں درج کرو</string>
+
+ <string name="search_add_error_duplicate_name">ہک انسٹال تھیا ڳولݨ انجݨ پہلے ہی ایہ ناں ورتیندا پئے۔</string>
+
+ <string name="search_add_error_empty_search">ڳولݨ تن٘د درج کرو</string>
+
+ <string name="search_add_error_format">پڑتال کرو جو ڳولݨ تند مثال دے نمونے مطابق ہے</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">ان پٹ صاف کرو</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">فارغ کرو</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">براؤزنگ تاریخ مٹاؤ</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">%1$s ٹیب کھلے ہن</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">محفوظ کنکشن</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">لوڈ تھیندا پئے</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">ویب سائٹ لوڈ تھی ڳئی</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">ٻیاں آپشناں</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">ٻیاں آپشناں بٹݨ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">اڳوں تے ون٘ڄو</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">ویب سائٹ ولدا لوڈ کرو</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">واپس ون٘ڄو</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">ویب سائٹ لوڈ کرݨ بند کرو</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">پچھلی ایپ تے واپس ون٘ڄو</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">بلاک تھئے ٹریکراں دی تعداد</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">ٹریکراں کوں بلاک کرو</string>
+
+ <string name="your_rights">تہاݙے حقوق</string>
+
+ <string name="external_app_prompt_title">لنک ہک ٻئی ایپ وچ کھولو</string>
+
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">ایں لنک کوں %2$s وچ کھولݨ کیتے تساں %1$s چھوڑ سڳدے ہو۔</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">ہک ایپ لبھو جہڑی لنک کوں کھول سڳے</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">تہاݙی ڈیوائس تے کوئی ایپ ایں کوں کھولݨ دی اہل کائنی۔ اہل ایپ کیتے تساں %1$s کوں چھوڑ تے %2$s کوں ڳولو۔</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">نجی براؤزنگ وچوں نکلوں؟</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s مکمل تھیا</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">کھولو</string>
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">شارٹ کٹاں وچ شامل تھی ڳیا!</string>
+
+ <string name="error_hostLookup_title">سرور کائنی لبھا</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">بند کرو</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">%1$s وچ ست بسم اللہ</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">تکھا۔ نجی۔ کوئی پریشانی کائنی۔</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">شروع کرو</string>
+
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s ٻئے براؤزراں وانگوں کائنی</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">تساں ایپ بند کریسو تاں اساں وادھوں رازداری کیتے تہاݙی تاریخ صاف کر ݙیسوں۔</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">تساں جہڑے وی لنک کھولو آپݨے ڈیٹا دی حفاظت کیتے %1$s کوں آپݨا ڈیفالٹ براؤزر بݨاؤ۔ </string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">پہلوں مقرر براؤز تے طور تے سیٹ کرو</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">چھوڑو</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">آپݨی رازداری تکڑی کرو</string>
+
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">نجی براؤزنگ کوں اڳلی سطح تے گھن ون٘ڄو۔ مشہوریاں تے ٻیا مواد، جہڑا تہاکوں سائٹاں تے ٹریک کر سڳدے تے ورقہ لوڈ تھیوں دے ویلے کوں پھسا سڳدن، کوں بلاک کرو۔</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">تہاݙا ڳولݨ۔ تہاݙا راہ</string>
+
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">کوئی وکھری شئے ڳولیندے پئے ہو؟ ترتیباں وچ ٻیا ڈیفالٹ ڳولݨ انجݨ چُݨو۔</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">آپݨی ہوم سکرین تے شارٹ کٹاں شامل کرو</string>
+
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">%1$s وچ تکھے تکھے آپݨی پسند دی سائٹ تے واپس آؤ۔ صرف %1$s مینو وچوں \&quot;گھر سکرین تے شامل کرو\&quot; کوں چُݨو۔</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">رازداری کوں عادت بݨاؤ</string>
+
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">%1$s کوں آپݨاں ڈیفالٹ براؤزر مقرر کرو تے ڄݙݨ تساں ویب ورقے ٻئی ایپاں وچ کھولو تاں نجی براؤزنگ دے فائدے گھنو۔</string>
+
+ <string name="firstrun_close_button">ٹھیک ہے، میکوں سمجھ آڳئی ہے!</string>
+ <string name="firstrun_skip_button">چھوڑو</string>
+ <string name="firstrun_next_button">اڳلا</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">شامل کرو</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ڄیا</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">منسوخ</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">کو</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">بہترین ٹریکنگ حفاظت غیرفعال کرݨ نال شارٹ کٹ کھُلسی</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">نجی براؤزنگ سیشن</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">اطلاعواں تہاکوں %1$s مجلس ہک انگل پھیرݨ نال مٹاوݨ دی اجازت ݙیندیاں ہن۔ تہاکوں ایپ کھولݨ یا ایہ ݙیکھݨ دی لوڑ کائنی جو تہاݙے براؤزر وچ کیا چلدا پئے۔</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">براؤزنگ تاریخ مٹاؤ</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">فائرفوکس ڈاؤن لوڈ کرو</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s ہک مفت کھلا ماخذ سافٹ ویئر ہے جہڑا موزلّا تے ٻئے ونگارواں بݨایا ہے۔]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[ <a href="%2$s">موزلّا عوامی لائسنس</a> تے ٻئے کھلے ماخذ لائسنساں دیاں شرطاں دے تحت تہاݙے کیتے %1$s دستیاب بݨایا ڳئے۔]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[تہاکوں موزلّا فاؤنڈیشن یا کہیں ٻئی پارٹی دے ٹریڈ مارک، موزلّا، فائرفوکس یا %1$s ناں یا لوگو سمیت، کوئی خاص حق یا لائسنس کائنی ݙتا ڳیا۔ وادھوں ڄاݨکاری <a href="%2$s">اتھ</a> لبھ سڳدی ہے۔]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[%1$s کیتے ٻئے ٻہوں سارے مفتی تے کھلے ماخذ <a href="%2$s">لائسنس</a> دے تحت وادھوں ماخذ کوڈ دستیاب ہے۔]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[ %1$s<a href="%2$s">جی این یو عمومی عوامی لائسنس وی3</a> دے تحت انج تے آزاد کماں دے طور تے ڈسکنکٹ، انک۔ ولوں فراہم تھیاں بلاک تندیراں کوں وی ورتیندے، تے <a href="%3$s">اِتھ</a> دستیاب ہے۔]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">ورتݨ ناں</string>
+ <string name="gv_prompt_password_hint">پاس ورڈ</string>
+ <string name="gv_prompt_clear">صاف کرو</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">محفوظ کنکشن</string>
+ <string name="security_popup_insecure_connection">غیرمحفوظ کنکشن</string>
+
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">ایندے ولوں پڑتال تھئی: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">سائٹ سلامتی</string>
+
+ <string name="preference_autocomplete_duplicate_url_error">یوآرایل پہلے ہی موجود ہے</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">ورقے وچ لبھو</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">ورقے وچ لبھو</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%2$d وچوں %1$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">اڳلا نتیجہ لبھو</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">پچھلا نتیجہ لبھو</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">ورقے وچ لبھݨ کوں فارغ کرو</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">ڈیسک ٹاپ سائٹ دی ارداس کرو</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">ڈیسک ٹاپ سائٹ</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">یوآرایل نقل تھی ڳیا</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">تخلیق کار اوزار</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">لنک ایپاں وچ کھولو</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">ودھایا</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">سائٹ اجازتاں</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">کوکی بینر گھٹاوݨ</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">چالو</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">بند</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">کوکی بینر گھٹاوݨ</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">جہڑے ویلے ممکن ہووے، کوکی ارداساں کوں آپݨے آپ مسترد کرتے گھٹ بینر ݙکھاؤ۔</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">کوکی بینر گھٹاوݨ</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ایں سائٹ کیتے چالو کرو</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">سائٹ فی الحال سہارا تھئی کائنی</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">ایں سائٹ کیتے بند کرو</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">کوکی بینر گھٹاوݨ</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">ایں سائٹ کیتے بند کرو</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ایں سائٹ کیتے چالو کرو</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">%1$s کیتے کوکی بینر گھٹاوݨ چالو کروں؟</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">%1$s کیتے کوکی بینر گھٹاوݨ بند کروں؟</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s ایں سائٹ دیاں کوکیاں صاف کریسی تے ورقہ تازہ کریسی۔ساریاں کوکیاں صاف کرݨ نال تساں سائن آوٹ تھی سڳدے ہو یا تہاݙی خریداری ریڑھی خالی تھی ویسی۔</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s آپݨے آپ کوکی ارداساں کوں مسترد کرݨ دی کوشش کر سڳدے۔</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">ایہ سائٹ کوکی بینر گھٹاوݨ ولوں حمایت یافتہ کائنی۔ بھلا تساں ساݙی ٹیم کوں ایں ویب سائٹ تے نظرثانی کرݨ تے مستقبل وچ سپورٹ شامل کرݨ کیتے ارداس کرݨ پسند کریسو؟</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">منسوخ</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">سپورٹ کیتے ارداس کرو</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">سپورٹ سائٹ دی ارداس جمع کرا ݙتی ڳئی ہے۔</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">سپورٹ سائٹ دی ارداس جمع کرا ݙتی ڳئی ہے۔</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s پریشان کن کوکی بینراں کوں برخواست کرݨ دیاں کوکی ارداساں کوں مسترد کرݨ دی کوشش کریندے۔ \n\n %2$s وچ کوکی بینر ترجیحاں دا بندوبست کرو۔</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">ترتیباں</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">آٹو پلے</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">ایں کوں اجازت ݙیوݨ کیتے:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">١۔ اینڈرائیڈ ترتیباں تے ون٘ڄو</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[٢. <b>اجازتاں</b> تے دباؤ]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">ترتیباں تے ون٘ڄو</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. <b>%1$s</b> کوں چالو کرݨ کیتے ٹوگل کرو]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">کیمرہ</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">مائیکروفون</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">مقام</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">اطلاع نامہ</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM دے زیرانتظام مواد</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">اجازت کیتے پُچھو</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">بلاک تھی ڳیا</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">اجازت ݙتے ہوئے</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">اینڈرائیڈ ولوں بلاک تھئے</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">آڈیو تے وڈیو دی اجازت ݙیوو</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">صرف آڈیو بلاک کرو</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">سفارش تھئے ہوئے</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">آڈیو تے وڈیو بلاک کرو</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">مطالعہ</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">فائرفوکس وقتاً فوقتاً مطالعہ انسٹال کرسڳدے تے چلا سڳدے۔</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">ٻیا سِکھو</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">تبدیلیاں لاگو کرݨ کیتے ایپ چھوڑ ݙتی ویسی</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">ہٹاؤ</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">فعال</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">مکمل تھی ڳیا</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">یوایس بی/وائی فائی دے ذریعے بعید ٹھیک کاری</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">جندرہ کھولو</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">آپݨی فنگرپرنٹ ورتݨ نال تصدیق کرو</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">آپݨی رواں ایپ مجلس جاری رکھݨ کیتے تساں آپݨے فنگرپرنٹ ورت سڳدے ہو۔</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">لنک نویں سیشن وچ کھولو</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">فنگر پرنٹ آئیکان</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">فنگرپرنٹ دی سُن٘ڄاݨ کائنی تھئی۔ ولدا کوشش کرو۔</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">انگل ݙاڈھی تکھی ہلی ہے۔ ولدا کوشش کرو۔</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">ڳولݨ تجویزاں ݙکھاؤں؟</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">تجویزاں گھنݨ کیتے، %1$s کوں، تساں جہڑا کجھ تساں ڳولݨ انجݨ دی پتہ پٹی وچ ٹائپ کریندے ہو، بھیڄݨ دی ضرورت ہے۔</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">کو</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">جیا</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">کجھ ڳولݨ انجݨ تجویزاں کائنی ݙکھا سڳدے۔</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">فارغ کرو</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">بھلا سائٹ غیر متوقع سلوک کریندی پئی ہے؟\n
+ ٹریکنگ حفاظت بند کر تے ݙیکھو</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[جہڑیاں سائٹاں کوں تساں ڈھیر ورتیندے ہو %1$s انہاں تے ہک انگل پھیرݨ نال رسائی گھنو مینیو> گھر سکرین وچ شامل کرو]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">سارے لنک %1$s وچ کھولو \n
+ %1$s کوں ڈیفالٹ براؤزر مقرر کرو
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">جہہڑیاں سائٹاں تساں ودھ ورتیاں ہن انہاں کیتے خودکار تکمیل یوآرایل آں\n
+ پتہ پٹی تے کہیں وی یوآرایل تے لمبا دباؤ
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">لنک نویں ٹیب وچ کھولو\n
+ ورقے تے کہیں لنک کوں لمبا دباؤ
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">موہری سکرین تے تجویزاں بند کرو</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">نواں ٹیب کھل ڳیا</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">سوئچ کرو</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">پوری سکرین موڈ وچ داخل تھیندا پئے</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">فوری طور تے نویں ٹیب وچ لنک تے سوئچ کرو</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">ممکنہ خطرناک تے فریبی سائٹاں بلاک کرو</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">گمراہ کن تے حملہ کرݨ آلی سائٹاں، میلویئر سائٹاں، تے اݨ بھاندے سافٹ ویئر سائٹاں کوں بلاک کرو۔</string>
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">ایچ ٹی ٹی پی ایس ــ صرف موڈ</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">خودکار طور تے ودھدی ہوئی حفاظت کیتے ایچ ٹی ٹی پی ایس خفیہ کاری پروٹوکول ورتندے ہوئے سائٹاں کوں کنکٹ کرݨ دی کوشش کریندے۔</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">استثنيات</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">انہاں ویب سائٹاں کیتے تساں مواد بلاک کرݨ غیرفعال کر ݙتا ہے۔</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">ہٹاؤ</string>
+
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">ساریاں ویب سائٹاں ہٹاؤ</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">کوکیاں بلاک کرو</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">بھلا تساں کوکیاں کوں بلاک کرݨ چاہندے ہو؟</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">ٹیب تباہ تھی ڳیا</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">افسوس، ساکوں ایں ٹیب نال ہک مسئلہ ہے۔</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">ہک نجی براؤزر دے طور تے، اساں ایں ٹیب کوں کݙاہیں وی محفوظ یا بحال نسّے کر سڳدے۔</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">ٹیب بند کرو</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">موزلّا کوں کریش رپوٹ بھیڄو</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">ٹریکرز %s کنوں بلاک ہن۔</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">مواد</string>
+
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">اشتہار</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">سماجی</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">تجزیہ</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">بہتر ٹریکنگ حفاظت</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">ایں سائٹ کیتے حفاظتاں بند ہن۔</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">ایں سائٹ کیتے حفاظتاں چالو ہن۔</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">کنکشن محفوظ ہے۔</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">کنکشن محفوظ کائنی۔</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">بلاک کرݨ کیتے ٹریکر تے سکرپٹ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">واپس ون٘ڄو</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">ہٹاؤ</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">ناں وٹاؤ</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">ناں وٹاؤ</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">شارٹ کٹ ناں</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">تساں جہڑے ویلے %1$s تاریخ مٹیسو تاں محفوظ تے شیئر تھیاں تصویراں &lt;b&gt;کائناں مٹسن&lt;/b&gt;</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">تھیم</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">پھکا</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">شوخ</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">بیٹری سیور نال سیٹ تھیا</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">ڈیوائس تھیم تے عمل کرو</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">ایہ سائٹ ایچ ٹی ٹی پی ایس کوں سہارا کائنی ݙیندی</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[ڄݙݨ ممکن ہووے ودھیک سلامتی سانگے %1$s ایچ ٹی ٹی پی ایس کنکشن ورتݨ دی کوشش کریندے۔
+ <a href="%2$s">ٻیا سکھو</a><br/><br/>
+ ایہ ترتیباں وٹاؤ، ترتیباں > رازداری &amp; سلامتی > سلامتی۔]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">ناقابل بھروسا کنکشن</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ ایہ سرور دی کنفیگریشن وِچ مسئلہ تھی سڳدا ہے، یا ایہ تھی سڳدا ہے جو کوئی سرور دی نقل کرݨ دی کوشش کریندا پیا ہووے۔ <br/><br/>
+ جے تساں پچھوکڑ وِچ ایں سرور نال کامیابی دے نال جڑ چکے او، تاں غلطی عارضی تھی سڳدی ہے، تے تساں بعد اِچ دوبارہ کوشش کر سڳدے او۔
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[<label>تھی سڳدا ہے جو کوئی سائٹ دی نقل بݨاوݨ دی کوشش کریندا پیا ہووے تے جاری رکھݨ نال خدشہ تھی سڳدے۔</label>
+ <br><br>
+ <label> %1$s، ایں <b>%2$s</b> تے بھروسہ کائنی کریندا کیوں جو سرٹیفکیٹ جاری کرݨ آلا نامعلوم ہے، سرٹیفکیٹ تے خود آپ دستخط کیتے ہوئے ہن یا سرور صحیح درمیانی سرٹیفیکیٹ کائنی پٹھیندا پیا۔</label>]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">ٹیب بند کرو</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">ایں کوں سمجھ گھدے! اساں ایں سائٹ کوں تہاݙی جاسوسی کرݨ کنوں روک ݙتے۔ جہڑی شئے اساں روکی ہے اوں کوں ݙیکھݨ کیتے کہیں وی ویلے شیلڈ تے انگل لاؤ۔</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">پوپ اپ بند کرو</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">تساں محفوظ ہو!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">ایہ ڈیفالٹ ترتیباں ݙاڈھی سخت حفاظت کریندیاں ہن۔ پر تہاݙیاں خاص ضروریات کوں پورا کرݨ کیتے ترتیباں کوں موافق کرݨ سوکھا ہے۔</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">فارغ کرو</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">تاریخ، کوکیاں تے سب کجھ ــــ ایں کوں ردی دی ٹوکری وچ سٹݨ کیتے انگل لاؤ ـــ تے نویں ٹیب تے تازہ شروع کرو۔</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">بند کرو</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">ویجٹ ڳولو</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">براؤزنگ تاریخ صاف تھی ڳئی! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">آپݨاں نجی براؤزنگ سیشن شروع کرو، اساں تہاݙے ون٘ڄݨ سیتی ٹریکراں تے ٻیاں خراب شئیاں کوں بلاک کر ݙیسوں۔</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">اساں تہاکوں تہاݙی نجی براؤزنگ تے چھوڑ ݙیسوں، پر تساں اڳلی واری آپݨی ہوم سکرین تے %1$s ویجٹ نال تکھیرا شروع کرو۔ </string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">ہوم سکرین تے ویجٹ شامل کرو</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">ہوم سکرین تے ویجٹ شامل تھی ڳیا</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-sl/strings.xml b/mobile/android/focus-android/app/src/main/res/values-sl/strings.xml
new file mode 100644
index 0000000000..6c3f7349e3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-sl/strings.xml
@@ -0,0 +1,1123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Prekliči</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">V redu</string>
+
+ <string name="action_save">Shrani</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Iskanje ali naslov strani</string>
+
+ <string name="teaser">Samodejno zasebno brskanje.\nBrskajte. Izbrišite. Ponovite.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Vaša zgodovina brskanja je bila izbrisana.</string>
+ <string name="feedback_erase2">Zgodovina brskanja izbrisana</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Zgodovina brskanja tega zavihka je bila izbrisana.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Išči %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Deli …</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Prijavi napako strani</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Odpri v %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Odpri v …</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Dodaj na domač zaslon</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Dodaj med bližnjice</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Odstrani iz bližnjic</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Nastavitve</string>
+ <string name="menu_about">Predstavitev</string>
+ <string name="menu_help">Pomoč</string>
+ <string name="menu_rights">Vaše pravice</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Zavrnjeni sledilci</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Z izklopom zavračanja lahko odpravite nekatere težave s stranjo</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Zavračanje vsebine</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Izklopite za pravilno delovanje nekaterih strani</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Omogoča: %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Deli preko</string>
+
+ <string name="notification_erase_title_android_14">Izbrišem zgodovino brskanja?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tapnite ali odstranite to obvestilo za varen izbris zgodovine brskanja.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tapnite to obvestilo ali ga podrsajte vstran za varen izbris zgodovine brskanja.</string>
+
+ <string name="notification_erase_text">Počisti zgodovino brskanja</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Odpri</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Izbriši in odpri</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Izbriši</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Počisti zgodovino brskanja</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Izbriši in odpri</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Izbriši in odpri %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Išči v Focusu</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Išči v Klaru</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Išči v Focusu Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Išči v Focusu Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s daje nadzor v vaše roke.</p>
+<p>Uporabljajte ga kot zaseben brskalnik:
+ <ul>
+ <li>Iščite in brskajte naravnost iz aplikacije</li>
+ <li>Zavračajte sledilce (ali spremenite nastavitve zavračanja sledilcev)</li>
+ <li>Brišite piškotke ter zgodovino strani in iskanja</li>
+ </ul>
+</p>
+<p>%1$s razvija Mozilla. Naše poslanstvo je spodbujati zdrav in odprt internet.<br/>
+<a href="%2$s">Več o tem</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Zasebnost in varnost</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Sledenje, piškotki, podatkovne možnosti</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Nastavi kot privzeto, samodejno dopolni</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">O %1$su, pomoč</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Izboljšana zaščita pred sledenjem</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Spletna vsebina</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Preklapljanje aplikacij</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Splošno</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Privzeti brskalnik, jezik</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Zbiranje in uporaba podatkov</string>
+
+ <string name="preference_category_search">Iskanje</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Prejemaj predloge iskanja</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s bo natipkano v naslovno vrstico poslal iskalniku</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Privzet</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Iskalnik</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Vključeno</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Izklopljeno</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Samodejno dopolnjevanje URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Za glavne strani</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Omogočite, če želite, da %s v naslovni vrstici samodejno dopolni preko 450 pogostih spletnih naslovov.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Za strani, ki jih dodate</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Omogočite, če želite, da %s samodejno dopolni vaše priljubljene naslove.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Upravljanje strani</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Upravljanje strani</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Dodaj URL po meri</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Vaš seznam za samodokončanje:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Dodaj spletni naslov</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Dodaj URL po meri</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Dodaj spletni naslov po meri</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Dodaj povezavo za samodejno dopolnjevanje</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Piškotki in podatki strani</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Podatkovne možnosti</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Odstrani URL po meri</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Več o tem</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Dodajte in upravljajte z URL-ji po meri za samodejno dokončevanje.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL za dodajanje</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Prilepite ali vpišite URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Primer: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Primer: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Nov URL po meri dodan.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Odstrani</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Odstrani</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Preverite vneseni URL.</string>
+
+ <string name="preference_language">Jezik</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Privzet v sistemu</string>
+
+ <string name="preference_category_privacy">Zasebnost</string>
+ <string name="preference_privacy_block_ads">Zavračaj sledilce oglasov</string>
+ <string name="preference_privacy_block_ads_summary">Nekateri oglasi beležijo obiske strani, tudi če ne klikate nanje</string>
+ <string name="preference_privacy_block_analytics">Zavračaj sledilce analitike</string>
+ <string name="preference_privacy_block_analytics_summary">V uporabi za zbiranje, analiziranje in merjenje dejanj, kot je pritiskanje in drsenje po strani</string>
+ <string name="preference_privacy_block_social">Zavračaj sledilce družbenih omrežij</string>
+ <string name="preference_privacy_block_social_summary">Vgrajeni na straneh za sledenje vašim obiskom in za prikaz možnosti, kot so gumbi za deljenje</string>
+ <string name="preference_privacy_block_content">Zavračaj druge vsebinske sledilce</string>
+ <string name="preference_privacy_block_content_summary2">Nastavitev lahko povzroči nepravilno delovanje nekaterih strani</string>
+ <string name="preference_privacy_category_cookies">Zavračaj piškotke</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ne, hvala</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Zavračaj samo sledilne piškotke tretjih strani</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Zavračaj samo piškotke tretjih strani</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Zavračaj spletne piškotke</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Da!</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Uporabljaj prstni odtis za odklepanje aplikacije</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Odklenite s prstnim odtisom, če ste dodali bližnjice ali če je spletno mesto že odprto v %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Skrivni način</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Skrij strani pri preklapljanju med aplikacijami in prepreči zajemanje posnetkov zaslona.</string>
+
+ <string name="preference_category_security">Varnost</string>
+
+ <string name="preference_category_performance">Učinkovitost</string>
+ <string name="preference_performance_block_webfonts">Zavračaj spletne pisave</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Lahko povzroči izginotje ikon ali slik</string>
+
+ <string name="preference_performance_block_javascript">Onemogoči JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Strani se bodo lahko nalagale hitreje, vendar morda ne bodo delovale pravilno</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Nastavi %1$s kot privzeti brskalnik</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Pošiljaj podatke o uporabi</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Več o tem</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla se trudi, da zbira samo podatke, ki jih potrebuje za razvoj in izboljševanje %1$sa.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Obvestilo o zasebnosti</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Podatki o dovoljenjih</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Knjižnice, ki jih uporabljamo</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Knjižnice OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">O %1$su</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Nameščeni iskalniki</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Izberi iskalnik</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Ponastavi privzete iskalnike</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Dodaj drug iskalnik</string>
+ <string name="preference_search_remove_title">Odstrani iskalnike</string>
+ <string name="preference_search_remove">Odstrani</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Dodaj drug iskalnik</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Izberite želeni iskalnik:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Dodaj iskalnik</string>
+
+ <string name="search_add_manually_name_hint">Ime iskalnika</string>
+ <string name="search_add_manually_string">Iskalni niz za uporabo</string>
+ <string name="search_add_manually_save">Shrani</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Primer: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Nov iskalnik dodan.</string>
+
+ <string name="search_add_error_empty_name">Vnesite ime iskalnika</string>
+ <string name="search_add_error_duplicate_name">Nameščeni iskalnik že uporablja to ime.</string>
+
+ <string name="search_add_error_empty_search">Vnesite iskalni niz</string>
+
+ <string name="search_add_error_format">Prepričajte se, da se iskalni niz ujema z obliko primera</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Počisti vnos</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Opusti</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Počisti zgodovino brskanja</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Odprtih zavihkov: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Varna povezava</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Nalaganje</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Spletna stran naložena</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Več možnosti</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Gumb za več možnosti</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Krmari naprej</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Ponovno naloži stran</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Krmari nazaj</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Prekini nalaganje strani</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Nazaj na prejšnjo aplikacijo</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Število zavrnjenih sledilcev</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Zavračaj sledilce</string>
+
+ <string name="your_rights">Vaše pravice</string>
+
+ <string name="external_app_prompt_title">Odpri povezavo v drugi aplikaciji</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Lahko zapustite %1$s in to povezavo odprete v %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Poišči aplikacijo, ki lahko odpre povezavo</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Nobena aplikacija na napravi ne more odpreti te povezave. Lahko zapustite %1$s in v %2$s poiščete aplikacijo, ki jo lahko.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Končam zasebno brskanje?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">Datoteka %1$s končana</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Odpri</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Dodano med bližnjice!</string>
+
+ <string name="error_hostLookup_title">Strežnika ni mogoče najti</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Zapri</string>
+
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Dobrodošli v %su</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Hitro. Zasebno. Brez motenj.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Začnite</string>
+
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s ni kot drugi brskalniki</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Za dodatno zasebnost izbrišemo vašo zgodovino, ko zaprete aplikacijo.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Nastavite %1$s kot privzeti brskalnik, ki naj ščiti vaše podatke vsakič, ko odprete povezavo.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Nastavi kot privzeti brskalnik</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Preskoči</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Okrepite svojo zasebnost</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Zasebno brskanje na višjem nivoju. Zavračajte oglase in drugo vsebino, ki vam lahko sledi prek strani, in pohitrite svoje brskanje.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Vaše iskanje, na vaš način</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Iščete nekaj drugačnega? V nastavitvah izberite drug privzeti iskalnik.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Dodajte bližnjice na domač zaslon</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Hitro se vrnite na svoje priljubljene strani v %1$su. Preprosto izberite \&quot;Dodaj na domač zaslon\&quot; v meniju %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Naj zasebnost postane navada</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Nastavite %1$s kot privzet brskalnik in uživajte prednosti zasebnega brskanja, ko odprete spletne strani v drugih aplikacijah.</string>
+
+ <string name="firstrun_close_button">V redu, razumem!</string>
+ <string name="firstrun_skip_button">Preskoči</string>
+ <string name="firstrun_next_button">Naprej</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Dodaj</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">DA</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Prekliči</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NE</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Bližnjica se bo odprla z onemogočeno izboljšano zaščito pred sledenjem</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Seja zasebnega brskanja</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Obvestila vam omogočajo izbrisati %1$sovo sejo z enim dotikom. Aplikacije vam ni potrebno niti odpreti niti videti, kaj je v brskalniku odprto.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Počisti zgodovino brskanja</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Prenesite Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s je brezplačna in odprtokodna programska oprema, ki jo razvija Mozilla in ostali sodelavci.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s vam je na voljo pod pogoji <a href="%2$s">Mozilla Public License</a> in drugih odprtokodnih licenc.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Nikakršne pravice niti licence nimate za uporabo blagovnih znamk Fundacije Mozilla ali kateregakoli od izdelkov, vključno z imeni in logotipi Mozille, Firefoxa ali %1$sa. Dodatne informacije lahko najdete <a href="%2$s">tukaj</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Dodatna izvorna koda za %1$s je na voljo pod raznimi drugimi prostimi in odprtokodnimi <a href="%2$s">licencami</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s uporablja tudi sezname za zavračanje podjetja Disconnect Inc. kot ločena in neodvisna dela, ki so na voljo pod licenco <a href="%2$s">GNU General Public License v3</a> <a href="%3$s">tukaj</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Uporabniško ime</string>
+ <string name="gv_prompt_password_hint">Geslo</string>
+ <string name="gv_prompt_clear">Počisti</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Varna povezava</string>
+ <string name="security_popup_insecure_connection">Povezava ni varna</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Overil: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Varnost strani</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL že obstaja</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Najdi na strani</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Najdi na strani</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d od %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Najdi naslednji zadetek</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Najdi prejšnji zadetek</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Končaj iskanje na strani</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Zahtevaj stran za namizja</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Stran za namizja</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Spletni naslov kopiran</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Orodja za razvijalce</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Odpiraj povezave v aplikacijah</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Napredno</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Dovoljenja strani</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Zmanjšanje števila pasic s piškotki</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Vključeno</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Izključeno</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Zmanjšanje števila pasic s piškotki</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Zmanjšajte število pasic s samodejnim zavračanjem zahtev za nastavljanje piškotkov, kadar je to mogoče.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Zmanjšanje števila pasic s piškotki</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">VKLJUČENO na tem spletnem mestu</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Spletno mesto trenutno ni podprto</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">IZKLJUČENO na tem spletnem mestu</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Zmanjšanje števila pasic s piškotki</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">IZKLJUČENO na tem spletnem mestu</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">VKLJUČENO na tem spletnem mestu</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Vključim zmanjšanje števila pasic s piškotki za %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Izključim zmanjšanje števila pasic s piškotki za %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s bo počistil piškotke tega spletnega mesta in osvežil stran. Če počistite vse piškotke, boste morda odjavljeni ali se bo izpraznila vaša nakupovalna košarica.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s lahko poskusi samodejno zavrniti zahteve za shranjevanje piškotkov.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Zmanjšanje pasic s piškotki zaenkrat ne podpira tega spletnega mesta. Ali želite poslati zahtevek, naj spletno mesto pregleda naša ekipa in doda podporo v prihodnjih različicah?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Prekliči</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Zaprosi za podporo</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Zahtevek spletnemu mestu za podporo poslan.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Zahtevek spletnemu mestu za podporo poslan.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s poskuša samodejno zavrniti zahteve za nastavljanje piškotkov, da ne prikazuje nadležnih pasic s piškotki.\n\nNastavitve pasic s piškotki lahko spremenite v %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">nastavitvah</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Samodejno predvajanje</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Če želite omogočiti:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Pojdite v Nastavitve Androida</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tapnite <b>Dovoljenja</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Odpri nastavitve</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Preklopite <b>%1$s</b> na VKLOPLJENO]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Lokacija</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Obvestila</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Vsebina, zaščitena z DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Vprašaj za dovoljenje</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Zavrnjeno</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Dovoljeno</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Zavrnil Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Dovoli zvok in video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Zavrni samo zvok</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Priporočeno</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Zavrni zvok in video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Raziskave</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox lahko občasno namesti in zažene raziskave.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Več o tem</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Aplikacija se bo zaprla za uveljavitev sprememb</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Odstrani</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Dejavna</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Končana</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Oddaljeno razhroščevanje preko USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Odkleni</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Potrdite s prstnim odtisom</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Za nadaljevanje trenutne seje aplikacije lahko uporabite svoj prstni odtis.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Odpri povezavo v novi seji</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Ikona prstnega odtisa</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Prstni odtis ni prepoznan. Poskusite ponovno.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Prst se je premaknil prehitro. Poskusite znova.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Prikaži predloge iskanja?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Da pridobi predloge iskanja, mora %1$s besede, ki jih natipkate v naslovno vrstico, pošiljati iskalniku.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ne</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Da</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Nekateri iskalniki ne morejo prikazovati predlogov.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">V redu</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Ali stran deluje nepravilno?\n Poskusite izklopiti zaščito pred sledenjem</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Nastavite si hiter dostop do priljubljenih strani%1$s Meni > Dodaj na domači zaslon]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Odpiraj vse povezave v %1$su\n Nastavite %1$s za privzeti brskalnik</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Samodejno dokončajte spletne naslove za strani, ki jih najpogosteje obiskujete\n Pridržite prst na kateremkoli spletnem naslovu v naslovni vrstici</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Odprite povezavo v novem zavihku\n Pridržite prst na katerikoli povezavi na strani</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Izključi namige na začetnem zaslonu</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Odprt nov zavihek</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Preklopi</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Vstopanje v celozaslonski način</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Takoj preklopi na povezavo v novem zavihku</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Zavrni morebitne nevarne in zavajajoče strani</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Zavračaj znane zavajajoče in napadalne strani ter strani z zlonamerno ali neželeno programsko opremo.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Način &quot;samo HTTPS&quot;</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Za večjo varnost poskuša samodejno vzpostaviti povezavo s šifrirnim protokolom HTTPS.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Izjeme</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Za ta spletna mesta ste onemogočili zavračanje vsebine.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Odstrani</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Odstrani vse spletne strani</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Zavračaj piškotke</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Ali želite zavračati piškotke?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Zavihek se je sesul</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Oprostite. S tem zavihkom imamo težavo.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Kot zaseben brskalnik nikoli ne shranimo vaših zavihkov in ga ne moremo obnoviti.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Zapri zavihek</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Pošlji poročilo o sesutju Mozilli</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Zavrnjeni sledilci od %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Vsebina</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Oglasi</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Družbeni</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analitika</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Izboljšana zaščita pred sledenjem</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Zaščite za to spletno mesto so IZKLJUČENE</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Zaščite za to spletno mesto so VKLJUČENE</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Povezava je varna</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Povezava ni varna</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Sledilci in skripte za zavračanje</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Nazaj</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Odstrani</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Preimenuj</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Preimenuj</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Ime bližnjice</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Ob izbrisu zgodovine %1$sa shranjene in deljene slike &lt;b&gt;ne bodo&lt;/b&gt; izbrisane</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Svetla</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Temna</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Nastavi ohranjevalnik baterije</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Sledi temi naprave</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">To spletno mesto ne podpira HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s poskuša za večjo varnost uporabiti povezavo HTTPS, kadarkoli je to mogoče.
+ <a href="%2$s">Več o tem</a> <br/><br/>
+ To lahko spremenite v Nastavitve > Zasebnost in varnost > Varnost.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Povezava ni varna</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Težava je lahko v nastavitvah strežnika ali pa ga kdo poskuša oponašati. <br/><br/>
+ Če ste se v preteklosti že uspešno povezali na ta strežnik, je napaka morda samo začasna.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Nekdo lahko poskuša oponašati to spletno mesto, zato je nadaljevanje lahko tvegano.</label>
+ <br><br>
+ <label>%1$s ne zaupa spletnemu mestu <b>%2$s</b>, ker izdajatelj njegovega digitalnega potrdila ni znan, ker je potrdilo samopodpisano ali pa strežnik ne pošilja pravih vmesnih digitalnih potrdil.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Zapri zavihek</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Imamo jih! Temu spletnemu mestu smo preprečili vohunjenje za vami. Če želite videti, kaj blokiramo, tapnite ščit.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Zapri pojavno okno</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Zaščiteni ste!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Te privzete nastavitve nudijo močno zaščito. Preprosto pa jih lahko prilagodite tako, da ustrezajo vašim potrebam.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Zapri</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tapnite tukaj, da vse vržete v smeti – zgodovino, piškotke, vse – in začnete na novo v novem zavihku.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Zapri</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Pripomoček za iskanje</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Zgodovina brskanja izbrisana! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Začnite zasebno sejo brskanja in sproti bomo zavračali sledilce ter druge škodljive elemente.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Prepustili vas bomo zasebnemu brskanju, vendar lahko naslednjič hitreje začnete s pripomočkom %1$s na domačem zaslonu.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Dodaj pripomoček na začetni zaslon</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Pripomoček dodan na začetni zaslon</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-sn/strings.xml b/mobile/android/focus-android/app/src/main/res/values-sn/strings.xml
new file mode 100644
index 0000000000..e9a8b41537
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-sn/strings.xml
@@ -0,0 +1,403 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <string name="action_cancel">Kanzura</string>
+ <string name="action_ok">Zvakanaka</string>
+
+ <string name="action_save">Sevha</string>
+
+ <string name="urlbar_hint">Tsvaga kana kunyora kero</string>
+
+ <string name="teaser">Tsvaga zvakawanzika.\nTsvaga. Dzima. Dzokorora.</string>
+
+ <string name="feedback_erase">Zvawaiita paindaneti zvadzimwa.</string>
+
+ <string name="feedback_erase_custom_tab">Zvawaiita paindaneti zvadzimwa.</string>
+
+ <string name="search_hint">Tsvaga %1$s</string>
+
+ <string name="menu_share">Paradzira…</string>
+
+ <string name="menu_report_site_issue">Mhan\'ara Mhosho Pano</string>
+
+ <string name="menu_open_with_default_browser2">Vhurira mu %1$s</string>
+
+ <string name="menu_open_with_a_browser2">Vhurira mu…</string>
+
+ <string name="menu_add_to_home_screen">Isa pa peji Repekutanga</string>
+
+ <string name="menu_settings">Gadziriso</string>
+ <string name="menu_about">Nezvedu</string>
+ <string name="menu_help">Rubatsiro</string>
+ <string name="menu_rights">Kodzero dzako</string>
+
+ <string name="menu_trackers_blocked_title">Zvinotevera zvavharwa</string>
+
+ <string name="menu_trackers_blocked_subtitle">Kuita izvi zvingagadzirisa zvimwe zvinetso zvepasaiti</string>
+
+ <string name="menu_content_blocking">Kubhuloka kondendi</string>
+ <string name="menu_content_blocking_subtitle">Bvisa kugadzirisa dzimwe nzvimbo</string>
+
+ <string name="menu_custom_tab_branding">Zvasimbiswa na%1$s</string>
+
+ <string name="share_dialog_title">Govera uchishandisa</string>
+
+ <string name="notification_erase_text">Dzima nhoroondo yezvakatsvakwa</string>
+
+ <string name="notification_action_open">Vhura</string>
+
+ <string name="notification_action_erase_and_open">Dzima neku Vhura</string>
+
+ <string name="shortcut_erase_short_label">Dzima</string>
+
+ <string name="shortcut_erase_long_label">Dzima zvawaita paindaneti</string>
+
+
+ <string name="shortcut_erase_and_open_short_label">Dzima wovhura</string>
+
+ <string name="shortcut_erase_and_open_long_label">Dzima wovhura %1$s</string>
+
+ <string name="preference_privacy_and_security_header">Kuchengeteka ne Puraivhesi</string>
+
+ <string name="preference_privacy_and_security_summary">Kuchengeta, makuki, kusarudzwa kwe data</string>
+
+ <string name="preference_search_summary">Ita zvisizvo, zvakakwana</string>
+
+ <string name="preference_mozilla_summary">Nezvedu %1$s, rubatsiro</string>
+
+ <string name="preference_category_web_content">Zviri paindaneti</string>
+
+ <string name="preference_category_switching_apps">Kuchinja maapurikesheni</string>
+
+ <string name="preference_category_general">Zvechigarire</string>
+
+ <string name="preference_category_data_collection_use">Kutorwa kweData nekushandiswa kwaro</string>
+
+ <string name="preference_category_search">Tsvaga</string>
+
+ <string name="preference_show_search_suggestions">Tsvaga mazano ekutsvaga</string>
+ <string name="preference_show_search_suggestions_summary">%1$s ichatumira zvaunonyora mu adhiresi bha yako ye injini yekutsvaga</string>
+
+ <string name="preference_search_engine_default">Zvagara zviripo</string>
+
+ <string name="preference_search_engine_label">Injini yekutsvaga</string>
+
+ <string name="preference_state_on">Batira</string>
+
+ <string name="preference_state_off">Dzimwa</string>
+
+ <string name="preference_subitem_autocomplete">URL Yapedziswa</string>
+
+ <string name="preference_switch_autocomplete_topsites">Masaiti anoendwa zvakanyanya</string>
+
+ <string name="preference_switch_autocomplete_user_list">Pema Saitsi awa isa woga</string>
+
+ <string name="preference_category_autocomplete_manage_sites">Ronga masaitsi</string>
+
+ <string name="preference_autocomplete_subitem_manage_sites">Ronga masaitsi</string>
+
+ <string name="preference_autocomplete_action_add">+ Wedzera yaunodao URL</string>
+
+ <string name="preference_autocomplete_title_add">Wedzera yaunodao URL</string>
+
+ <string name="custom_autocomplete_quick_add">Wedzera yaunodao URL</string>
+
+ <string name="add_custom_autocomplete_label">Isa ringi ku atokombuliti</string>
+
+ <string name="preference_category_cookies">Makuki uye Site Data</string>
+
+ <string name="preference_category_data_choices">Zvaungada kuti zvibude</string>
+
+ <string name="preference_autocomplete_title_remove">Bvisa aunoda aya URLs</string>
+
+ <string name="preference_autocomplete_learn_more">Dzidza zvimwe</string>
+
+ <string name="preference_autocomplete_custom_summary">Wedzera uye gadzirisa aunoda anozvipedzisa URLs.</string>
+
+ <string name="preference_autocomplete_add_title">URL yaurikuda kuisa</string>
+
+ <string name="preference_autocomplete_add_hint">Isa kana kunonyora kero</string>
+
+ <string name="preference_autocomplete_add_example2">Muenzaniso: mozilla.org</string>
+
+ <string name="preference_autocomplete_add_example">Muenzaniso: muenzaniso.com</string>
+
+ <string name="preference_autocomplete_add_confirmation">Itsva URL yakawedzerwa.</string>
+
+ <string name="preference_autocomplete_menu_remove">Bvisa</string>
+
+ <string name="preference_autocomplete_action_remove_content_description">Bvisa</string>
+
+ <string name="preference_autocomplete_add_error">Tarisa kaviri URL yawaisa.</string>
+
+ <string name="preference_language">Mutauro</string>
+ <string name="preference_language_systemdefault">Magariro azvo musisitimu</string>
+
+ <string name="preference_category_privacy">Vanza</string>
+ <string name="preference_privacy_block_ads">Vharira tunotsvaka kwauri twemaadhivhetsi</string>
+ <string name="preference_privacy_block_ads_summary">Zvimwe zvinoshambadzirwa zvinotengeswa nzvimbo yekushanyira nzvimbo, kunyange kana iwe usingadi kubaya adhivheti racho</string>
+ <string name="preference_privacy_block_analytics">Vharira tunotsvaka kwauri twemaadhivhetsi</string>
+ <string name="preference_privacy_block_analytics_summary">Inoshandiswa kuunganidza, kuongorora uye kuenzanisa zvinhu zvakadai sokubaya uye kudzika</string>
+ <string name="preference_privacy_block_social">Vharira tunotsvaka twehupenyu</string>
+ <string name="preference_privacy_block_social_summary">Yakabudiswa panzvimbo dzekutsvaga kutarisa kushanyira kwako uye kuratidza kushanda sezvikwata zvekugovera</string>
+ <string name="preference_privacy_block_content">Vharira vamwe vateereri vezvinhu</string>
+ <string name="preference_privacy_block_content_summary2">Ukabatidza mamwe mapeji anogona kushanda neutowo usiri iwo</string>
+ <string name="preference_privacy_category_cookies">Vhara makuki</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Vharira 3-party tracker cookies chete</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Vharira 3-party tracker cookies chete</string>
+
+ <string name="preference_security_biometric">Shandisa munwe kuvhura app</string>
+
+ <string name="preference_privacy_secure_mode">Hauchaoneke</string>
+ <string name="preference_privacy_stealth_summary">Viga mapepa epakombiyuta paunoshandura mapurogiramu uye udzivise kutora masikirini shoti.</string>
+
+ <string name="preference_category_security">Chengetedzo</string>
+
+ <string name="preference_category_performance">Maitiro</string>
+ <string name="preference_performance_block_webfonts">Vhara runyoro rwepaDande</string>
+ <string name="preference_performance_block_webfonts_summary">Izvozvo zvinogona kukonzera kushaikwa kwemaayikoni kana mifananidzo</string>
+
+ <string name="preference_performance_block_javascript">Vhara JavaScript</string>
+ <string name="preference_performance_block_javascript_summary">Mapeji anogona kuvhura nokukurumidza, asi anogonawo kutanga kuita zvisingatarisirwe</string>
+
+ <string name="preference_default_browser2">Ita %1$s bhurauza rechigarire</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Tumira data maererano nemashandisirwo</string>
+
+ <string name="preference_mozilla_telemetry_summary">Dzidza zvimwe</string>
+
+ <string name="preference_mozilla_telemetry_summary2">Mozilla inoedza kuunganidza chete zvatinoda kupa nekuvandudza %1$s kune munhu wose.</string>
+
+ <string name="preference_privacy_notice">Chiziviso pamusoro pekuvanza</string>
+
+ <string name="preference_about">Nezvedu %1$s</string>
+
+ <string name="preference_search_installed_search_engines">Mainjini ekutsvaga akaiswa</string>
+
+ <string name="preference_search_restore">Dzorera mainjini okutsvaga echigaririre</string>
+
+ <string name="preference_search_add2">+ Wedzera imwe injini yekutsvaga</string>
+ <string name="preference_search_remove_title">Bvisa mainjini ekutsvaga</string>
+ <string name="preference_search_remove">Bvisa</string>
+
+ <string name="action_option_add_search_engine">Wedzera injini yekutsvaga</string>
+
+ <string name="search_add_manually_name_hint">Zita reinjini yekutsvaga</string>
+ <string name="search_add_manually_string">Manzwi ekushandisa pakutsvaga</string>
+ <string name="search_add_manually_save">Sevha</string>
+
+ <string name="search_add_manually_example">Muenzaniso: muenzaniso.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Injini yekutsvaga itsva yaiswa.</string>
+
+ <string name="search_add_error_empty_name">Nyora zita reinjini yekutsvaga</string>
+ <string name="search_add_error_duplicate_name">Imwe injini yekutsvaga yakaiswa irikutoshandisa zita iroro.</string>
+
+ <string name="search_add_error_empty_search">Nyora mazwi ekutsvagisa</string>
+
+ <string name="search_add_error_format">Cherechedza kuti tsananguro yekutsvaga yakafanana nemuenzaniso here</string>
+
+ <string name="content_description_clear_input">Dzima zvaiswa</string>
+
+ <string name="content_description_dismiss_input">Siyana nazvo</string>
+
+ <string name="content_description_erase">Bvisa zvawambotsvaga padande</string>
+
+ <string name="content_description_tab_counter">Matebhu akavhurika: %1$s</string>
+
+ <string name="content_description_lock">Pinda zvakachengetedzwa</string>
+
+ <string name="accessibility_announcement_loading">Zvavakuda kuita</string>
+
+ <string name="accessibility_announcement_loading_finished">Webhusaiti yavhurwa</string>
+
+ <string name="content_description_menu">Dzimwe sarudzo</string>
+
+ <string name="indicator_content_description_menu">Button rinoratidza zvimwe zvingaratidzwa</string>
+
+ <string name="content_description_forward">Enda kumberi</string>
+
+ <string name="content_description_reload">Vhura webhusaiti zvakare</string>
+
+ <string name="content_description_back">Dzoka kumashure</string>
+
+ <string name="content_description_stop">Mira kuvhura webhusaiti</string>
+
+ <string name="content_description_customtab_exit">Dzoka ku app yekupedzisira</string>
+
+ <string name="content_description_trackers_blocked">Nhamba yezvinotevera zvakavharwa</string>
+
+ <string name="content_description_blocking_switch">Vharira tunotsvaka kwauri</string>
+
+ <string name="your_rights">Kodzero dzako</string>
+
+ <string name="external_app_prompt_title">Vhura link mune imwe app</string>
+ <string name="external_app_prompt">Unogona kusiya %1$s kuti ugovhura zvinoenda kuna %2$s.</string>
+ <string name="external_app_prompt_no_app_title">Tsvaga app inokwanisa kuvhura link</string>
+ <string name="external_app_prompt_no_app">Tashaiwa app mufoni yako inokwanisa kuvhura link. Unokwanisa kusiya %1$s kuti ugotsaga %2$s kune app inozvikwanisa.</string>
+ <string name="external_multiple_apps_matched_exit">Wafunga kusiya kutsvaga pachivande?</string>
+
+ <string name="download_snackbar_finished">%1$s zvapera</string>
+
+ <string name="download_snackbar_open">Vhura</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Sevha harina kuoneka</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <string name="firstrun_defaultbrowser_title">Shandisa simba rako rechivande</string>
+ <string name="firstrun_defaultbrowser_text2">Tora browsing pachedu kune imwe inotevera. Chengetedza zvikwereti nezvimwe zvinhu zvinogona kukutevera pazvikwata uye kuvhara pasi peji kutengesa nguva.</string>
+
+ <string name="firstrun_search_title">Kutsvaga kwako, inzira yako</string>
+ <string name="firstrun_search_text">Kutsvaka chimwe chinhu chakasiyana? Sarudza imwe shandiso yekutsvaga injini muZvirevo.</string>
+
+ <string name="firstrun_shortcut_title">Wedzera zvidzitiro pamba peimba yako</string>
+ <string name="firstrun_shortcut_text">Dzokera kunzvimbo dzako dzaunoda mu %1$s nokukurumidza. Ingosarudza \&quot;Wedzera Pamba peji\&quot; kubva ku %1$s menyu.</string>
+
+ <string name="firstrun_privacy_title">Ita kuchengeteka kwako chive chijairire</string>
+ <string name="firstrun_privacy_text">Ita %1$s sechitsvaga chako chekutsvaga uye uwane mararamiro ehupfumi hwepachivande paunotanga mapepa ewebhu kubva kune mamwe maitiro.</string>
+
+ <string name="firstrun_close_button">Horait, Ndazvibata!</string>
+ <string name="firstrun_skip_button">Svetuka</string>
+ <string name="firstrun_next_button">Enda mberi</string>
+
+ <string name="content_blocking_disabled">-</string>
+
+ <string name="dialog_addtohomescreen_action_add">Wedzera</string>
+
+ <string name="dialog_addtohomescreen_action_cancel">Kanzura</string>
+
+ <string name="notification_browsing_session_channel_name">Sesheni yekutsvaga pachivande</string>
+
+ <string name="notification_browsing_session_channel_description">Izaziso dzinokubvumira kuti usasase %1$s svondo yako nepombi. Iwe haufaniri kuzarura purogiramu yacho kana kuona kuti chii chiri kushanda mu browser yako.</string>
+
+ <string name="tabs_tray_action_erase">Bvisa zvawamboona</string>
+
+ <string name="download_firefox">Dounirodha Firefox</string>
+
+ <string name="your_rights_content1">%1$s yakasununguka uye yakasununguka purogiramu software yakagadzirwa naMozilla nevamwe vanobatsira.</string>
+
+
+
+
+ <string name="gv_prompt_username_hint">Zita rekushandisa</string>
+ <string name="gv_prompt_password_hint">Pasiwedhi</string>
+ <string name="gv_prompt_clear">Bvisa</string>
+
+ <string name="security_popup_secure_connection">Konekisheni yakachengeteka</string>
+ <string name="security_popup_insecure_connection">Konekisheni haina kuchengeteka</string>
+ <string name="security_popup_security_verified">Zvabvumikiswa na: %1$s</string>
+
+ <string name="site_security_icon_content_description">Saiti Sekiyuriti</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL yagara iriko</string>
+
+ <string name="find_in_page">Tsvaga mupeji</string>
+
+ <string name="find_in_page_input">Tsvaga papeji</string>
+
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <string name="accessibility_find_in_page_result">%1$d ezvimwe %2$d</string>
+
+ <string name="accessibility_next_result">Tarisa zvinotevera zvabuda</string>
+ <string name="accessibility_previous_result">Tarisa zvirikumashure zvabuda</string>
+ <string name="accessibility_dismiss_find_in_page">Bvisa peji rakutsvaga</string>
+
+
+
+ <string name="preference_performance_request_desktop_site">Kumbira peji repadhesikitopu</string>
+
+ <string name="custom_tab_copy_url_action">URL yakopwa</string>
+
+ <string name="preference_advanced_summary">Maturuzi evanogadzira</string>
+
+ <string name="preference_category_advanced">Zviriadhivhanzidhi</string>
+
+ <string name="preference_remote_debugging">Kugadzirisa usiripanzvimbo ne USB/Wi-Fi</string>
+
+ <string name="biometric_auth_image_description">Ayikoni yepikicha yechigunwe</string>
+
+ <string name="biometric_auth_not_recognized_error">Hatina kuziva chigunwe chako. Edza zvakare.</string>
+
+ <string name="biometric_auth_moved_too_quickly">Chigunwe chamhanya zvakanyanya. Edza zvakare.</string>
+
+ <string name="enable_search_suggestions_no">Kwete</string>
+
+ <string name="enable_search_suggestions_yes">Hongu</string>
+
+ <string name="no_suggestions_message">Mimwe injini dzinotsvaga haigone kuratidza mazano.</string>
+
+ <string name="dismiss_no_suggestions_prompt_button">Siyana nazvo</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <string name="tip_disable_tracking_protection">Site yaita zvisingatarisirwi?\n Edza kubvisa Kuchengetedzwa Kwekutevera</string>
+
+ <string name="tip_add_to_homescreen">Iva one-tap-access kune masayiti ako anoshandisa%1$s Menyu &gt; Wedzera kusikirini rekutanga</string>
+
+ <string name="tip_set_default_browser">Vhura mazano ose mu %1$s\n Ita %1$s sechekutsvagisa</string>
+
+ <string name="tip_autocomplete_url">Ma URLs echikwata zvemasayiti aunonyanya kushandisa\n Dhinda kwenguva ipi neipi URL mubhare rekero</string>
+
+ <string name="tip_open_in_new_tab">Vhura lingi mune imwe tebhu\n Dhinda kwenguva refu chero chibatanidza pane peji</string>
+
+ <string name="tip_disable_tips2">Dzima mazano papeji yekutangisa</string>
+
+ <string name="new_tab_opened_snackbar">Tebhu idzva yavhurwa</string>
+
+ <string name="open_new_tab_snackbar">Chinja</string>
+
+ <string name="preference_open_new_tab">Chinja ringi kune tebhu idzva pakarepo</string>
+
+ <string name="preference_safe_browsing_title">Chengetedza nzvimbo dzingangove dzine ngozi uye dzinonyengedza</string>
+ <string name="preference_safe_browsing_summary">Vharira nzvimbo dzinonyengedza kunze uye dzekurwisa, nzvimbo dzisina kuwanikwa, uye dzisina kuwanikwa software.</string>
+
+ <string name="preference_exceptions">Zvisarudzo</string>
+ <string name="preference_exceptions_description">Wadzima Content Blocking nekuda kwemawebsite aya.</string>
+ <string name="preference_exceptions_menu_remove">Bvisa</string>
+ <string name="preference_exceptions_remove_all_button_label">Bvisa mawebhusaiti ese</string>
+
+ <string name="tab_crash_report_title">Tebhu rakirasha</string>
+ <string name="tab_crash_report_headline">Ruregerero. Taita dambudziko ne tebhu iri.</string>
+ <string name="tab_crash_report_description">Sekuchengetedzwa kwepachivande, hatina kumbochengetedza uye hatigoni kudzorera tabu iyi.</string>
+ <string name="tab_crash_report_close_tab_button_label">Vhara Tebhu</string>
+
+
+
+
+ <string name="crash_report_send_crash_label">Tumira ripoti yekuparara kuMozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-sq/strings.xml b/mobile/android/focus-android/app/src/main/res/values-sq/strings.xml
new file mode 100644
index 0000000000..e4f3961ba3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-sq/strings.xml
@@ -0,0 +1,1127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Anuloje</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Ruaje</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Kërkoni ose jepni adresë</string>
+
+ <string name="teaser">Shfletim automatikisht privat.\nShfletoni. Fshini Gjurmët. Përsëriteni.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Historiku juaj i shfletimit u fshi.</string>
+ <string name="feedback_erase2">Historiku i shfletimit u spastrua</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Historiku i shfletimit në skedë u fshi.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Kërko për %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Ndajeni me të tjerët…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Raporto Problem Sajti</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Hape në %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Hapeni në…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Shtoje te skena e Kreut</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Shtoje te Shkurtoret</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Hiqe nga Shkurtoret</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Rregullime</string>
+ <string name="menu_about">Rreth</string>
+ <string name="menu_help">Ndihmë</string>
+ <string name="menu_rights">Të drejtat Tuaja</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Gjurmues të bllokuar</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Mbyllja e kësaj mund të ndreqë disa probleme sajti</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Bllokim Lënde</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Çaktivizojeni që të ndreqen disa sajte</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Powered by %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Ndajeni përmes</string>
+
+ <string name="notification_erase_title_android_14">Të fshihet historik shfletimesh?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Që të fshihet në mënyrë të siguruar historiku juaj i shfletimit, prekeni, ose spastrojeni këtë njoftim.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Që të fshihet në mënyrë të siguruar historiku juaj i shfletimit, prekeni, ose fërkojeni këtë njoftim.</string>
+
+ <string name="notification_erase_text">Fshini historik shfletimesh</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Hape</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Fshije dhe Hape</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Fshije</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Fshi historik shfletimesh</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Fshije &amp; hape</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Fshini dhe hapni %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Kërkojeni me Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Kërkojeni me Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Kërkojeni me Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Kërkojeni me Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s ju vë juve në kontroll.</p>
+<p>Përdoreni si një shfletues privat:
+ <ul>
+ <li>Kërkoni dhe shfletoni drejt e nga aplikacioni</li>
+ <li>Bllokoni gjurmues (ose përditësoni rregullimet për lejim gjurmuesish)</li>
+ <li>Fshini cookie-t dhe historik kërkimesh dhe shfletimesh</li>
+ </ul>
+</p>
+<p>%1$s prodhohet nga Mozilla. Misioni ynë është të nxisim një Internet të shëndetshëm, të hapët.<br/>
+<a href="%2$s">Mësoni më tepër</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privatësi &amp; Siguri</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Gjurmim, “cookies”, zgjedhje mbi të dhënat</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Caktoje parazgjedhje, vetëplotësim</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Mbi %1$s, ndihmë</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Mbrojtje e Thelluar Nga Gjurmimi</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Lëndë Web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Këmbim Aplikacionesh</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Të përgjithshme</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Shfletues parazgjedhje, gjuhë</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Grumbullim &amp; Përdorim të Dhënash</string>
+
+ <string name="preference_category_search">Kërkim</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Merrni këshillime kërkimi</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s do të dërgojë te motori juaj i kërkimeve atë çka shtypni te shtylla e adresave</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Parazgjedhje</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Motor kërkimesh</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">On</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Off</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Vetëplotësim URLje</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Për sajtet Kryesues</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Aktivizojeni, që %së vetëplotësojë te shtylla e adresave mbi 450 URL popullore.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Për Sajte Që Shtoni</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Aktivizojeni, që %s të vetëplotësojë URL-të tuaja të parapëlqyera.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Administroni sajte</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Administroni sajte</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Shtoni URL vetjake</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Lista juaj e vetëplotësimeve:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Shtoni URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Shtoni URL vetjake</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Shtoni URL vetjake</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Shtoni lidhje për vetëplotësim</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">“Cookies” dhe të Dhëna Sajtesh</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Zgjedhje Mbi të Dhënat</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Hiqni URLra Vetjake</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Mësoni më tepër</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Shtoni dhe administroni URLra vetjake vetëplotësimesh.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL për shtim</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Ngjitni ose jepni URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Shembull: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Shembull: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">U shtua URL vetjake e re.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Hiqe</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Hiqe</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Rikontrollojeni URL-në që dhatë.</string>
+
+ <string name="preference_language">Gjuhë</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Parazgjedhje sistemi</string>
+
+ <string name="preference_category_privacy">Privatësi</string>
+ <string name="preference_privacy_block_ads">Blloko gjurmues reklamash</string>
+ <string name="preference_privacy_block_ads_summary">Disa reklama ndjekin vizita sajti, madje edhe kur s’klikoni mbi reklamat</string>
+ <string name="preference_privacy_block_analytics">Blloko gjurmues analizash</string>
+ <string name="preference_privacy_block_analytics_summary">Përdorur për të grumbulluar, analizuar dhe matur veprimtari të tilla si prekje dhe rrëshqitje në faqe</string>
+ <string name="preference_privacy_block_social">Blloko gjurmues platformash shoqërore</string>
+ <string name="preference_privacy_block_social_summary">Të trupëzuara në sajte për të gjurmuar vizitat tuaja dhe për të shfaqur funksione, të tillë si butona ndarjeje me të tjerët</string>
+ <string name="preference_privacy_block_content">Blloko të tjerë gjurmues lënde</string>
+ <string name="preference_privacy_block_content_summary2">Aktivizimi mund të bëjë që disa faqe të sillen ndryshe nga ç’pritet</string>
+ <string name="preference_privacy_category_cookies">Blloko cookie-t</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Jo, faleminderit</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Blloko vetëm cookie-t nga palë gjurmuese të treta</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Blloko vetëm cookie-t nga palë të treta</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blloko “cookies” palësh të treta</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Po, ju lutem</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Përdor shenjë gishta për shkyçje aplikacioni</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Shkyçeni duke përdorur shenjat tuaja të gishtave, nëse keni shtuar Shkurtore, ose kur një sajt është i hapur tashmë në %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Fshehtas</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Fshihi faqet web kur kalohet nga një aplikacion në tjetrin dhe blloko bërje fotosh ekrani.</string>
+
+ <string name="preference_category_security">Siguri</string>
+
+ <string name="preference_category_performance">Punim</string>
+ <string name="preference_performance_block_webfonts">Blloko shkronja Web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Mund të sjellë mungesë ikonash ose figurash</string>
+
+ <string name="preference_performance_block_javascript">Blloko JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Faqet mund të ngarkohen më shpejt, por mundet gjithashtu të sillen në mënyrë të papritur</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Bëje %1$s-un shfletuesin parazgjedhje</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Dërgo të dhëna përdorimi</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Mësoni më tepër</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla rreket të grumbullojë vetëm sa na duhen për të ofruar dhe përmirësuar %1$s-un për këdo.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Shënim Privatësie</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Hollësi licencimi</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Biblioteka që përdorim</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Biblioteka OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Mbi %1$s-un</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Motorë të instaluar</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Zgjidhni motor kërkimesh</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Rikthe motorë parazgjedhje kërkimi</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Shtoni motor tjetër kërkimesh</string>
+ <string name="preference_search_remove_title">Hiqni motorë kërkimesh</string>
+ <string name="preference_search_remove">Hiqe</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Shtoni motor tjetër kërkimesh</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Përzgjidhni motorin tuaj të parapëlqyer:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Shtoni motorë kërkimesh</string>
+
+ <string name="search_add_manually_name_hint">Emër motori kërkimesh</string>
+ <string name="search_add_manually_string">Varg kërkimi për t’u përdorur</string>
+ <string name="search_add_manually_save">Ruaje</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Shembull: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Motori i ri i kërkimeve u shtua.</string>
+
+ <string name="search_add_error_empty_name">Jepni emër motori kërkimesh</string>
+ <string name="search_add_error_duplicate_name">Atë emër e përdor tashmë një motor i instaluar kërkimesh.</string>
+
+ <string name="search_add_error_empty_search">Jepni varg kërkimi</string>
+
+ <string name="search_add_error_format">Kontrolloni që vargu i kërkimit të përputhet me formatin Shembull</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Pastro ç’është dhënë</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Hidhe tej</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Fshi historik shfletimesh</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Skeda të hapura: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Lidhje e sigurt</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Po ngarkohet</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Sajti u ngarkua</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Më tepër mundësi</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Buton për më tepër mundësi</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Lëvizni përpara</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Ringarko sajtin</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Shko mbrapsht</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Resht së ngarkuari sajtin</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Kthehu te aplikacioni i mëparshëm</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Numër gjurmuesish të bllokuar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blloko gjurmues</string>
+
+ <string name="your_rights">Të drejtat Tuaja</string>
+
+ <string name="external_app_prompt_title">Hape lidhjen me një aplikacion tjetër</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Mund të lini %1$s-un ta hapë këtë lidhje me %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Gjeni një aplikacion që mund të hapë lidhjen</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Asnjë nga aplikacionet në pajisjen tuaj s’është në gjendje të hapë këtë lidhje. Mund të lini %1$s-un të kërkojë në %2$s për një aplikacion që mundet.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Të dilet nga Shfletimi Privat?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s përfundoi</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Hape</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">U shtua te shkurtoret!</string>
+
+ <string name="error_hostLookup_title">S’u gjet shërbyes</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Mbylle</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Mirë se vini te %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">I shpejtë. Privat. Pa shpërqendrime.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Fillojani</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s s’është si shfletuesit e tjerë</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">E pastrojmë historikun tuaj, kur mbyllni aplikacionin, për më tepër privatësi.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Bëjeni %1$s-un parazgjedhjen tuaj, që të mbroni të dhënat tuaja për çdo lidhje që hapni.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Vëre si shfletuesin parazgjedhje</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Anashkaloje</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Fuqizoni privatësinë tuaj</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Kalojeni shfletimin privat një shkallë më sipër. Bllokoni reklama dhe lëndë tjetër që mund t’ju gjurmojë nga sajte në sajte dhe të ulë kohën e ngarkimit të faqeve.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Kërkimi juaj, me mënyrën tuaj</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Po kërkoni për diçka tjetër? Zgjidhni te Rregullimet një tjetër motor parazgjedhje kërkimesh.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Shtoni shkurtore te skena juaj e kreut</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Rikthehuni shpejt te sajtet tuaj të parapëlqyer, me %1$s. Thjesht përzgjidhni “Shtoje te skena e Kreut”, që nga menuja e %1$s-ut.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Bëjeni zakon privatësinë</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Vëreni %1$s-un si shfletuesin tuaj parazgjedhje dhe përfitoni të mirat e shfletimit privat, kur hapni faqe në web që nga aplikacione të tjera.</string>
+
+ <string name="firstrun_close_button">OK, e mora vesh!</string>
+ <string name="firstrun_skip_button">Anashkaloje</string>
+ <string name="firstrun_next_button">Pasuesja</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Shtoje</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">PO</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Anuloje</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">JO</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Shkurtorja do të hapet me Mbrojtjen e Thelluar Nga Gjurmimet të çaktivizuar</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sesion shfletimi privat</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Njoftimet ju lejojnë të fshini me një prekje sesionin tuaj %1$s. S’ju duhet të hapni aplikacionin apo të shihni se ç’po xhiron në shfletuesin tuaj.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Fshi historik shfletimesh</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Shkarkoni Firefox-in</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s është software i lirë dhe me burim të hapur, i krijuar nga Mozilla dhe kontribues të tjerë.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s ju jepet sipas kushteve të <a href="%2$s">Mozilla Public License</a> dhe licencash të tjera burimi të hapët.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Nuk ju jepet ndonjë e drejtë apo licenca mbi shenjat tregtare të Mozilla Foundation-it apo cilësdo palë tjetër, përfshi emrat apo stemat e Mozilla-s, Firefox-it apo %1$s. Hollësi shtesë mund të gjeni <a href="%2$s">këtu</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Më tepër kod burim për %1$s ka sipas <a href="%2$s">licencash</a> të tjera të ndryshme programesh të lira dhe me burim të hapët.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s përdor gjithashtu një listë ndalimesh të furnizuar nga Disconnect, Inc., si vepra më vete dhe të pavarura, nën <a href="%2$s">GNU General Public License v3</a> dhe të passhme prej <a href="%3$s">këtu</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Emër përdoruesi</string>
+ <string name="gv_prompt_password_hint">Fjalëkalim</string>
+ <string name="gv_prompt_clear">Pastroje</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Lidhje e Siguruar</string>
+ <string name="security_popup_insecure_connection">Lidhje e Pasiguruar</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verifikuar nga: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Siguri Sajti</string>
+ <string name="preference_autocomplete_duplicate_url_error">Ka tashmë një URL të tillë</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Gjej në Faqe</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Gje në faqe</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d nga %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Gjej përfundimin pasues</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Gjej përfundimin e mëparshëm</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Hidhe tej gjetjen në faqe</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Kërko sajtin për dekstop</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Sajt për desktop</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL-ja u kopjua</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Mjete zhvilluesi</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Hapi lidhjet në aplikacione</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Të mëtejshme</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Leje sajti</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reduktim Banderolash Për Cookie-t</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">On</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Off</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reduktim Banderolash Për Cookie-t</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Shihni më pak banderola, duke hedhur poshtë automatikisht kërkesa për “cookie”, kur është e mundshme.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reduktim Banderolash Për Cookie-t</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ON për këtë sajt</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Sajt aktualisht i pambuluar</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">OFF për këtë sajt</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reduktim Banderolash Për Cookie-t</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">OFF për këtë sajt</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ON për këtë sajt</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Të aktivizohet Reduktim Banderolash Cookie-sh për %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Të çaktivizohet Reduktim Banderolash Cookie-sh për %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s do të spastrojë cookie-t për këtë sajt dhe do të rifreskojë faqen. Spastrimi i krejt cookie-ve mund të sjellë nxjerrjen tuaj nga llogaria, ose zbrazje shportash blerjesh.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s mund të provojë vetvetiu të hedhë poshtë kërkesa depozitimi cookie-sh.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Aktualisht ky sajt nuk mbulohet nga Reduktim Banderolash Cookie-sh. Do të donit që ekipi ynë ta shqyrtojë këtë sajt dhe të shtojcë mbulim për të në të ardhmen?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Anuloje</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Kërkoni asistencë</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Kërkesa te sajti i asistencës u parashtrua.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Kërkesa te sajti i asistencës u parashtrua.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s rreket të hedhë poshtë kërkesa depozitimi cookie-sh, për hedhur tej banderola bezdisëse cookie-sh.\n\nAdministroni parapëlqime banderolash cookie-sh, te %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">rregullime</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Vetëluaje</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Që ta lejoni:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Shkoni te Android Settings</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Prekni <b>Permissions</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Kaloni te Rregullimet</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Kalojeni <b>%1$s</b> si ON]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamerë</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Vendndodhje</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Njoftim</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Lëndë nën DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Kërko të lejohet</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">E bllokuar</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">E lejuar</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">E bllokuar nga Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Lejo audio dhe video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blloko vetëm audio</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">E këshilluar</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blloko audio dhe video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studime</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox-i mund të instalojë dhe zhvillojë studime herë pas here.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Mësoni më tepër</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Aplikacioni do të mbyllet, që të vihen në fuqi ndryshimet</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Hiqe</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktiv</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">I plotësuar</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Diagnostikim i largët përmes USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Shkyçe</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Ripohoni Përdorimin e Shenjave Tuaja të Gishtave</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Mund të përdorni shenjat tuaja të gishtave për të vazhduar sesionin e tanishëm të aplikacionit.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Hape Lidhjen në Sesion të Ri</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Ikonë shenjash gishtash</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Shenja gishta të papranuar. Riprovoni.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Gishti lëvizni shumë shpejt. Riprovoni.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Të shfaqen sugjerime kërkimi?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Që të merrni sugjerime, %1$s ka nevojë të dërgojë te motori juaj i kërkimeve atë çka shtypni te shtylla e adresave.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Jo</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Po</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Disa motorë kërkimesh s’shfaqin dot këshillimet.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Mos e merr parasysh</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Sajt që sillet çuditshëm?\n
+ Provoni çaktivizimin e Mbrojtjes Nga Gjurmimi</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Kini hyrje me-një-prekje për sajtet që përdorni më shpesh%1$s Menu > Shtoje te skena Kreu]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Hape çdo lidhje në %1$s\n
+ Caktojeni %1$s si shfletuesin parazgjedhje
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Vetëplotësim URL-sh për sajtet që përdorni më shpesh\n
+ Shtypni paksa çfarëdo URL-je te shtylla e adresave
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Hapni një lidhje në një skedë të re\n
+ Shtypni paksa çfarëdo lidhje në një faqe
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Mbylli ndihmëzat te skena e nisjes</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">U hap skedë e re</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Kalo në të</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Po hyhet në mënyrën “Sa krejt ekrani”</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Kalo menjëherë te lidhja në skedën e re</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Bllokoni sajte potencialisht të rrezikshëm dhe të rrejshëm</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Bllokoni sajte të raportuar si të rrejshëm dhe sulmesh, sajte malware-i dhe sajte software-i të padëshiruar.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Mënyra Vetëm-HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Përpiqet automatikisht të lidhet me sajtet duke përdorur protokollin HTTPS të fshehtëzimit, për më tepër siguri.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Përjashtime</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">E keni çaktivizuar Bllokimin e Lëndës për këto sajte.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Hiqe</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Hiqi krejt sajtet</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blloko Cookie-t</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Doni të bllokohen cookie-t?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Skeda u Vithis</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Na ndjeni. Po kemi një problem me këtë skedë.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Si një shfletues privat, nuk e ruajmë kurrë dhe nuk mund të rikthejmë këtë skedë.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Mbylle Skedën</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Dërgoni raport vithisje te Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Gjurmues të bllokuar që prej %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Lëndë</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Reklamim</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Shoqërore</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analiza</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Mbrojtje e Thelluar Nga Gjurmimi</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Për këtë sajt, mbrojtjet janë OFF</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Për këtë sajt, mbrojtjet janë ON</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Lidhja është e siguruar</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Lidhja s’është e siguruar</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Gjurmues dhe Programthe për t’u Bllokuar</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Kthehu mbrapsht</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Hiqe</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Riemërtojeni</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Riemërtojeni</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Emër shkurtoreje</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Figurat e ruajtura dhe ato të ndara me të tjerët &lt;b&gt;s’do të fshihen&lt;/b&gt;, kur të fshini historikun e %1$s-ut</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Temë</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">E çelët</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">E errët</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Caktuar nga Kursyesi i Baterisë</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Ndiq temën e pajisjes</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Ky sajt nuk mbulon HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s provon të përdorë një lidhje HTTPS, kurdo që është e mundur, për më tepër siguri.
+ <a href="%2$s">Mësoni më tepër</a> <br/><br/>
+ Ndryshojeni këtë rregullim te Rregullime > Privatësi &amp; Siguri > Siguri.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Lidhje jo e sigurt</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Ky mund të jetë problem me formësimin e shërbyesit, ose dikush mund të jetë duke u hequr si shërbyesi. <br/><br/>
+ Nëse në të kaluarën jeni lidhur me sukses në këtë shërbyes, gabimi mund të jetë i përkohshëm.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Dikush mund të jetë duke u rrekur të hiqet si sajti dhe vazhdimi mund të jetë me rrezik.</label>
+ <br><br>
+ <label>%1$s nuk i zë besë <b>%2$s</b>m ngaqë lëshuesi i dëshmisë së tij është i panjohur, dëshmia është e vetënënshkruar, ose shërbyesi s’po dërgon dëshminë e saktë ndërmjetëse.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Mbylle skedën</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">I mbërthyem! E ndalëm spiunimin tuaj nga ky sajt. Prekni kurdo mburojën, që të shihni se ç’jemi duke bllokuar.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Mbylleni flluskën</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Jeni i mbrojtur!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Këto rregullime parazgjedhje ofrojnë mbrojtje të fuqishme. Por s’është e lehtë të përimtohen gjërat, për të plotësuar nevojat tuaja specifike.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Hidhe tej</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Prekni këtu, që të shpihet e gjitha në hedhurina — historik, “cookies”, gjithçka — dhe fillojani nga e para me një skedë të re.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Mbylle</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget kërkimesh</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Historiku i shfletimit u spastrua! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Filloni sesionin tuaj të shfletimit privat dhe ne do të bllokojmë dora-dorës gjurmues dhe gjëra të tjera të këqija.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Do t’ju lëmë në shfletimin tuaj privat, por siguroni një kohë më të mirë nisjeje herës tjetër, me widget-in %1$s në skenën tuaj Kreu.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Shtojeni widget-in te skena e kreut</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget-i u shtua te skena e kreut</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-sr/strings.xml b/mobile/android/focus-android/app/src/main/res/values-sr/strings.xml
new file mode 100644
index 0000000000..04d39f5d87
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-sr/strings.xml
@@ -0,0 +1,1114 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Откажи</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">У реду</string>
+
+ <string name="action_save">Сачувај</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Претражите или унесите адресу</string>
+
+ <string name="teaser">Аутоматско приватно сурфовање.\nСурфуј. Обриши. Понови.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Ваша историја прегледања је обрисана.</string>
+ <string name="feedback_erase2">Историја прегледања је обрисана</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Историја прегледања језичка је избрисана.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Претражи %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Подели…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Пријави проблем са сајтом</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Отвори у %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Отвори у…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Додај на почетни екран</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Додај у пречице</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Уклони из пречица</string>
+
+ <string name="menu_settings">Поставке</string>
+ <string name="menu_about">О Focus-у за Android</string>
+ <string name="menu_help">Помоћ</string>
+ <string name="menu_rights">Ваша права</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Блокирани пратиоци</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Онемогућавање ове опције може решити неке проблеме са сајтом</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Блокирање садржаја</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Онемогућите да бисте поправили неке сајтове</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Покреће га %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Подели преко</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Обришите историју прегледања</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Отвори</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Обриши и отвори</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Обриши</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Обриши историју прегледања</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Обриши и отвори</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Обриши и отвори %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Тражи у Focus-у</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Тражи у Klar-у</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Тражи у Focus Beta-и</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Тражи у Focus Nightly-ју</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s вам даје контролу.</p>
+<p>Користите га као приватни прегледач:
+ <ul>
+ <li>Претражујте и сурфујте директно у апликацији</li>
+ <li>Блокирајте елементе за праћење (или их омогућите у подешавањима)</li>
+ <li>Избришите све колачиће као и историју прегледања и претраге</li>
+ </ul>
+</p>
+<p>%1$s је створила Mozilla. Наша мисија је неговање здравог и отвореног интернета.<br/>
+<a href="%2$s">Сазнајте више</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Приватност и безбедност</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Праћење, колачићи, избори података</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Постави подразумевано, аутоматски заврши</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">О %1$s-у, помоћ</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Побољшана заштита од праћења</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Веб садржај</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Мењање апликација</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Општа</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Подразумевани прегледач, језици</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Сакупљање и коришћење података</string>
+
+ <string name="preference_category_search">Претраживач</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Добијајте предлоге претраге</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s ће послати оно што куцате у адресну траку вашег претраживача</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Подразумевано</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Претраживач</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Укључено</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Искључено</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL aутоматско завршавање</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">За врхунске сајтове</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Омогућите да %s аутоматски завршава преко 450 популарних URL адреса у адресној траци.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">За сајтове које додате</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Омогућите да %s аутоматски довршава ваше омиљене URL адресе.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Уредите сајтове</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Уредите сајтове</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Додај URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Ваша листа аутоматског довршавања:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Додајте URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Додај URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Додај URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Додајте везу за аутоматско довршавање</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Колачићи и подаци сајта</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Избори података</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Уклони URL адресе</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Сазнајте више</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Додавање и управљање аутоматски завршеним URL адресама.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL за додавање</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Налепите или унесите URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Пример: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Пример: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Нови URL додат.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Уклони</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Уклони</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Добро проверите URL који сте унели.</string>
+
+ <string name="preference_language">Језик</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Системски подразумеван</string>
+
+ <string name="preference_category_privacy">Приватност</string>
+ <string name="preference_privacy_block_ads">Блокирај оглашиваче</string>
+ <string name="preference_privacy_block_ads_summary">Неке рекламе прате посете сајтова чак и када не кликнете на њих</string>
+ <string name="preference_privacy_block_analytics">Блокирај аналитичке пратиоце</string>
+ <string name="preference_privacy_block_analytics_summary">Користи се за сакупљање, анализирање и мерење активности као што су кликтање и скроловање</string>
+ <string name="preference_privacy_block_social">Блокирај друштвене пратиоце</string>
+ <string name="preference_privacy_block_social_summary">Уграђене у сајтове како би пратиле ваше посете и приказивале дугмиће за дељење</string>
+ <string name="preference_privacy_block_content">Блокирај пратиоце осталог садржаја</string>
+ <string name="preference_privacy_block_content_summary2">Омогућавање може утицати лоше на неке странице</string>
+ <string name="preference_privacy_category_cookies">Блокирај колачиће</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Не, хвала</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Блокирајте само колачиће треће стране</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Само колачиће од трећих лица</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Блокирајте колачиће трећих страна</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Да, молићу</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Користите отисак прста да откључате апликацију</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Ако %s има отворене веб странице или додане пречице, користите отисак прста за откључавање.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Потајни режим</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Сакриј веб странице приликом мењања између апликација и блокирај бележење снимка екрана.</string>
+
+ <string name="preference_category_security">Безбедност</string>
+
+ <string name="preference_category_performance">Перформансе</string>
+ <string name="preference_performance_block_webfonts">Блокирај веб фонтове</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Иконице и слике се можда неће приказивати</string>
+
+ <string name="preference_performance_block_javascript">Блокирај JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Странице се могу брже учитавати, али се могу и лоше понашати</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Постави %1$s као подразумевани прегледач</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Шаљи податке о употреби</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Сазнајте више</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla тежи ка прикупљању само оних података који су потребни да бисмо пружали и побољшали %1$s за све.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Обавештење о приватности</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Подаци о лиценцирању</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Библиотеке које користимо</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | библиотеке отвореног кода</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">О %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Инсталирани претраживачи</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Изаберите претраживач</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Врати на подразумеване</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Додај претраживач</string>
+ <string name="preference_search_remove_title">Уклони претраживач</string>
+ <string name="preference_search_remove">Уклони</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Додајте други претраживач</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Изаберите омиљени претраживач:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Додај претраживач</string>
+
+ <string name="search_add_manually_name_hint">Име претраживача</string>
+ <string name="search_add_manually_string">Претражи текст за коришћење</string>
+ <string name="search_add_manually_save">Сачувај</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Пример: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Нови претраживач додат.</string>
+
+ <string name="search_add_error_empty_name">Унесите име претраживача</string>
+ <string name="search_add_error_duplicate_name">Инсталирани претраживач већ користи то име.</string>
+
+ <string name="search_add_error_empty_search">Унесите текст за претрагу</string>
+
+ <string name="search_add_error_format">Проверите да ли се текст за претрагу поклапа са форматом примера</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Празно поље</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Одбаци</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Обриши историју прегледања</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Отворених језичака: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Безбедна веза</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Учитавање</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Веб сајт учитан</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Више опција</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Дугме за више опција</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Иди напред</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Обнови веб сајт</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Иди назад</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Престани са учитавањем веб сајта</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Повратак на претходну</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Број блокираних пратиоца</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Блокирај пратиоце</string>
+
+ <string name="your_rights">Ваша права</string>
+
+ <string name="external_app_prompt_title">Отворите везу у другој апликацији</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Можете угасити %1$s да отворите ову везу у %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Пронађите апликацију која може отворити ову везу</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ниједна апликација на вашем уређају не може отворити ову везу. Можете угасити %1$s и претражити %2$s да бисте нашли неку.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Изаћи из приватног режима?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s завршено</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Отвори</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Додато у пречице!</string>
+
+ <string name="error_hostLookup_title">Сервер није пронађен</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Затвори</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Добродошли у %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Брзо. Приватно. Без ометања.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Започните</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s није као други прегледачи</string>
+
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">У сврху додатне приватности, бришемо вашу историју када затворите апликацију.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Постављањем %1$s-а подразумеваним, штитите податке са сваком везом коју отворите.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Постави као подразумевани прегледач</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Прескочи</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Ојачајте вашу приватност</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Побољшајте приватност током сурфовања. Блокирајте рекламе и друге саржаје који вас прати путем сајтова и убрзајте учитавање страница.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Ваше претраге, ваш начин</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Тражите нешто другачије? Изаберите други подразумевани претраживач у поставкама.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Додајте пречице на вашем почетном екрану</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Вратите се на ваше омиљене сајтове у %1$s-у лако. Само изаберите \&quot;Додај на екран телефона\&quot; из %1$s менија.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Учините приватност навиком</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Поставите %1$s као ваш подразумевани прегледач и побољшајте приватност током сурфовања када отворите веб странице из других апликација.</string>
+
+ <string name="firstrun_close_button">Разумем!</string>
+ <string name="firstrun_skip_button">Прескочи</string>
+ <string name="firstrun_next_button">Следеће</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Додај</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ДА</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Откажи</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">НЕ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Отвориће се пречица са искљученом побољшаном заштитом од праћења</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Сесија за приватно прегледање</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Обавештења вам омогућавају да обришете вашу %1$s сесију једним притиском. Не морате да отворите апликацију или да проверите шта се извршава у вашем прегледачу.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Обриши историју прегледања</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Преузмите Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s је бесплатан софтвер и отвореног кода направљен од стране Mozilla-е и других доприносиоца.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s вам је омогућен под условима <a href="%2$s">Mozilla јавне лиценце</a> и других лиценци отвореног кода.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Немате никаква права нити лиценцу на заштитне знакове Mozilla фондације нити било шта слично, укључујући и Mozilla, Firefox или %1$s имена или логотипе. Додатне информације можете пронаћи <a href="%2$s">овде</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Додатни изворни код за %1$s је доступан под различитим бесплатним и <a href="%2$s">лиценцама</a> отвореног кода.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s такође користи блок-листе пружане од стране Disconnect инкорпорације као одвојени и независни радови под <a href="%2$s">GNU General Public License v3</a> и доступним <a href="%3$s">овде</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Корисничко име</string>
+ <string name="gv_prompt_password_hint">Лозинка</string>
+ <string name="gv_prompt_clear">Обриши</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Безбедна веза</string>
+ <string name="security_popup_insecure_connection">Несигурна веза</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Проверио: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Безбедност сајта</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL већ постоји</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Пронађи на страници</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Пронађи на страници</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d од %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Нађи следећи резултат</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Нађи претходни резултат</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Склони претрагу странице</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Захтевај десктоп сајт</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Десктоп приказ</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL копиран</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Алати за програмере</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Отвори везе у апликацијама</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Напредно</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Дозволе на страници</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Смањење банера колачића</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Укључено</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Искључено</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Смањење банера колачића</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">За мање банера аутоматским одбијањем захтева за колачиће, када год је то могуће.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Смањење банера колачића</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">УКЉУЧЕНО за овај сајт</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Сајт тренутно није подржан</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">ИСКЉУЧЕНО за овај сајт</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Смањење банера колачића</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">ИСКЉУЧЕНО за овај сајт</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">УКЉУЧЕНО за овај сајт</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Укључити смањење банера колачића за %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Икључити смањење банера колачича за %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s ће обрисати колачиће и освежити страницу. Брисање колачића може да вас одјави са сајта или да испразни вашу корпу за куповину.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s може аутоматски да одбије захтеве за колачиће.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Смањење банера колачића тренутно није подржано за овај сајт. Да ли бисте желели да наш тим прегледа овај сајт и подржи га у будућности?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Откажи</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Затражите подршку</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Захтев за подршку сајта је поднет.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Захтев за подршку сајта је поднет.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s покушава да одбије захтеве за колачиће да би уклонио досадне банере колачића.\n\nИдите у %2$s да управљате банерима колачића.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">подешавања</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Самостално покретање</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Да бисте дозволили:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Идите на Android подешавања</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Додирните <b>Дозволе</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Иди у подешавања</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Пребаците <b>%1$s</b> на УКЉУЧЕНО]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Камера</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Микрофон</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Локација</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Обавештење</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Садржај контолисан DRM-ом</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Питај за дозволу</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Блокирано</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Дозвољено</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Блокирао Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Дозволи звук и видео</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Блокирај само звук</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Препоручено</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Блокирај звук и видео</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Студије</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox може с времена на време инсталирати и спровести студије.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Сазнајте више</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Апликација ће се затворити како би применила промене</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Уклони</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Активно</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Завршено</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Удаљено отклањање грешака уз USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Откључај</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Потврдите отиском прста</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Можете да користите отисак прста да наставите тренутну сесију апликације.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Отвори везу у новој сесији</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Иконица отиска прста</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Отисак прста није препознат. Покушајте поново.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Превише брзо сте превукли прстом. Покушајте поново.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Приказати предлоге за претрагу?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Да би вам приказао предлоге за претрагу, %1$s мора да пошаље ваше уносе адресној траци претраживачу.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Не</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Да</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Неки претраживачи не могу приказивати предлоге.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Склони</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Сајт се понаша чудно?\n Покушајте искључити заштиту од праћења</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Подесите приступ сајтовима које користите највише, једним кликом%1$s Мени > Додај на почетни екран]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Отвори сваку везу у %1$s-у\n Постави %1$s као подразумевани прегледач</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Аутоматско завршавање URLs за сајтове које користите највише\n Дуго држите URL у адресној траци</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Отвори везу у новом језичку\n Дуго држите на било којој вези на страници</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Искључите савете на почетном екрану</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Нови језичак је отворен</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Пребаци</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Улазим у режим целог екрана</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Одмах пређите на везу у новом језичку</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Блокирајте потенцијално опасне и обмањујуће сајтове</string>
+
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Блокирајте злонамерне и обмањујуће сајтове, пријављене злонамерне програме и нежељене сајтове.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Режим „Само HTTPS”</string>
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Аутоматски ће покушати да се повеже са страницама користећи HTTPS протокол за шифровање ради додатне безбедности.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Изузеци</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Зауставили сте блокирање садржаја за ове сајтове.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Уклони</string>
+
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Уклоните све сајтове</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Блокирајте колачиће</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Желите ли да блокирате колачиће?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Језичак се срушио</string>
+
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Жао нам је. Имамо проблем са овим језичком.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Као приватни прегледач, никада не чувамо и не можемо да вратимо овај језичак.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Затворите језичак</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Пошаљите Mozilla-и извештај о паду</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Трагача блокирано од %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Садржај</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Маркетинг</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Друштвене мреже</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Аналитика</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Побољшана заштита од праћења</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Заштита је ИСКЉУЧЕНА за овај сајт</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Заштита је УКЉУЧЕНА за овај сајт</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Веза је безбедна</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Веза није безбедна</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Трагачи и скрипте за блокирање</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Иди назад</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Уклони</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Преименуј</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Преименуј</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Назив пречице</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Дељене или сачуване слике &lt;b&gt;неће&lt;/b&gt; бити избрисане када обришете %1$s историју</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Тема</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Светла</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Тамна</string>
+
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Према подешавањима за штедњу батерије</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Прати тему уређаја</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Овај сајт не подржава HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s покушава да користи HTTPS везу кад год је могуће ради додатне безбедности.
+ <a href="%2$s">Сазнајте више</a> <br/><br/>
+ Промените ову поставку у Подешавања > Приватност и безбедност > Безбедност.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Веза није безбедна</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Можда је проблем у конфигурацији сервера, а можда неко покушава да имитира сервер. <br/><br/>
+ Ако сте се раније успешно повезали са овим сервером, могуће је да проблем привремен.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Неко можда покушава да имитира сајт и настављање на исти је тада ризично.</label>
+ <br><br>
+ <label>%1$s нема поверења у <b>%2$s</b> зато што му је издавач сертификата непознат, сертификат је самопотписан или сервер не шаље исправне посредничке сертификате.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Затвори језичак</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Имамо га! Спречили смо ову веб страницу да вас шпијунира. Додирните штит било када да видите шта блокирамо.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Затвори искачући прозор</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Заштићени сте!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Ова подразумевана подешавања већ пружају снажну заштиту, али их је лако прилагодити у складу са вашим потребама.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Одбаци</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Додирните овде да обришете све — историју, колачиће, итд. — и почнете на новом језичку.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Затвори</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Виџет претраге</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Историја прегледања обрисана! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Започните са приватним прегледањем, а ми ћемо да блокирамо елементе за праћење и друге лоше ствари.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Остављамо вас вашем приватном прегледању, али следећи пут почните брже преко %1$s виџета на почетном екрану.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Додај виџет на почетни екран</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Виџет додан на почетни екран</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-su/strings.xml b/mobile/android/focus-android/app/src/main/res/values-su/strings.xml
new file mode 100644
index 0000000000..dad5f7fdd4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-su/strings.xml
@@ -0,0 +1,1115 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Bolay</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">HEUG</string>
+
+ <string name="action_save">Teundeun</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Paluruh atawa asupkeun alamat</string>
+
+ <string name="teaser">Langlangan nyamuni otomatis.\nLanglang. Pupus. Deui.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Jujutan langlangan nyamuni anjeun geus dipupus.</string>
+ <string name="feedback_erase2">Data langlangan diberesihan</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Jujutan langlangan tab geus dipupus.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Paluruh %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Bagikeun…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Laporkeun Masalah Loka</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Buka di %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Buka di …</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Tambahkeun ka layar Tepas</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Tambah ka Takulan</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Piceun tina Takulan</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Setélan</string>
+ <string name="menu_about">Ngeunaan</string>
+ <string name="menu_help">Pitulung</string>
+ <string name="menu_rights">Hak Anjeun</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Palacak dipeungpeuk</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Mareuman ieu bisa menerkeun sababaraha masalah loka</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Meungpeuk Kontén</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Pareuman pikeun menerkeun sababaraha loka</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Dijalankeun ku %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Bagikeun kana</string>
+
+ <string name="notification_erase_title_android_14">Pupus jujutan langlangan?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Toél atawa beresihan iber ieu pikeun mupus jujutan langlangan anjeun kalayan aman.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Toél atawa usap ieu iber pikeun mupus jujutan langlangan anjeun kalayan aman.</string>
+
+ <string name="notification_erase_text">Pupus jujutan langlangan</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Buka</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Pupus jeung Buka</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Pupus</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Pupus jujutan langlangan</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Pupus &amp; buka</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Pupus jeung buka %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Paluruh di Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Paluruh di Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Paluruh di Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Paluruh di Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s méré anjeun kadali.</p>
+<p>Paké pikeun panyungsi nyamuni:
+ <ul>
+ <li>Maluruh jeung nyungsi langsung dina aplikasina</li>
+ <li>Meungpeuk palacak (atawa apdét setélan pikeun nyatujuan palacak)</li>
+ <li>Mupus pikeun ngaleungitkeun réréméh pon kitu ogé jujutan pamaluruhan jeung panyungsian</li>
+ </ul>
+</p>
+<p>%1$s dijieun ku Mozilla. Misi kami pikeun ngamumulé Internét nembrak anu séhat.<br/>
+<a href="%2$s">Lenyepan</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Salindungan &amp; Kaamanan</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Palacakan, réréméh, pilihan data</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Setél baku, otokumplit</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Ngeunaan %1$s, pitulung</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Protéksi Palacakan Tingkat Lanjut</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Eusi Raramat</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Pindah Apps</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Umum</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Panyungsi, basa baku</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Pangumpulan &amp; Pamakéan Data</string>
+
+ <string name="preference_category_search">Paluruh</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Cokot bongbolongan maluruh</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s bakal ngirim naon anu diketikkeun dina bilah alamat kana mesin pamaluruh anjeun</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Baku</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Mesin pamaluruh</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Hurung</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Pareum</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL Otokumplit</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Pikeun loka Petingan</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Hurungkeun sangkan %s otomatis ngalengkepan leuwih ti 450 URLs populér dina palang alamat.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Pikeun Loka anu Anjeun Nambahkeun</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Hurungkeun sangkan %s otomatis ngalengkepan URLs karesep anjeun.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Kokolakeun loka</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Kokolakeun loka</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Tambah URL sakahayang</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Daptar otokumplit anjeun:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Tambah URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Tambah URL sakahayang</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Tambah URL sakahayang</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Tambahkeun tutumbu kana autokumplit</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Data Réréméh jeung Loka</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Pilihan Data</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Piceun URL sakahayang</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Lenyepan</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Tambah jeung atur URL otokumplit sakahayang.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL tambahkeuneun</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Terapkeun atawa asupkeun URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Conto: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Conto: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">URL sakahayang anyar geus ditambahkeun.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Piceun</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Piceun</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Pariksa deui URL anu diasupkeun.</string>
+
+ <string name="preference_language">Basa</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Baku sistem</string>
+
+ <string name="preference_category_privacy">Privasi</string>
+ <string name="preference_privacy_block_ads">Peungpeuk palacak iklan</string>
+ <string name="preference_privacy_block_ads_summary">Sababaraha iklan ngalacak anjangan loka, najan anjeun teu ngaklik iklanna</string>
+ <string name="preference_privacy_block_analytics">Peungpeuk palacak analitik</string>
+ <string name="preference_privacy_block_analytics_summary">Dipaké pikeun ngumpulkeun, analisis, jeung ngukur ketak sarupaning tap jeung gorolong</string>
+ <string name="preference_privacy_block_social">Peungpeuk palacak sosial</string>
+ <string name="preference_privacy_block_social_summary">Naplok dina loka pikeun ngalacak anjangan anjeun sarta pikeun némbongkeun fungsionalitas sarupaning tumbul babagi</string>
+ <string name="preference_privacy_block_content">Peungpeuk palacak kontén séjén</string>
+ <string name="preference_privacy_block_content_summary2">Ngahurungkeun bisa ngabalukarkeun sababaraha kaca jadi ngaco</string>
+ <string name="preference_privacy_category_cookies">Peungpeuk réréméh</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Moal, nuhun</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Peungpeuk réréméh palacak pihak ka-3 hungkul</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Peungpeuk réréméh pihak katilu hungkul</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Peungpeuk réréméh meuntas-loka</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Mangga</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Paké sidik ramo pikeun muka konci app</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Buka konci maké sidik ramo upama anjeun geus nambahkeun Markah atawa upama hiji raramatloka geus muka di %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Nyiliwuri</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Sumputkeun kaca raramat nalika mindahkeun app sarta meungpeuk nyokot téwakan layar.</string>
+
+ <string name="preference_category_security">Kaamanan</string>
+
+ <string name="preference_category_performance">Kinerja</string>
+ <string name="preference_performance_block_webfonts">Peungpeuk aksara Raramat</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Matak leungit ikon atawa gambar</string>
+
+ <string name="preference_performance_block_javascript">Peungpeuk JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Kaca meureun ngamuat leuwih gancang, ngan bisa waé teu katerka</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Jadikeun %1$s panyungsi baku</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Kirim data pamakéan</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Lenyepan</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla bakal kukumpul data nu diperlukeun hungkul jang nyadiakeun jeung ngoméan %1$s pikeun balaréa.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Iber Privasi</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Émbaran lisénsi</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Pabukon anu dipaké</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Pabukon OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Ngeunaan %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Mesin pamaluruh nu dipasang</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Pilih mesin pamaluruh</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Pasang deui mesin pamaluruh baku</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Tambah mesin pamaluruh séjén</string>
+ <string name="preference_search_remove_title">Piceun mesin pamaluruh</string>
+ <string name="preference_search_remove">Piceun</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Tambah mesin pamaluruh séjén</string>
+
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Pilih mesin karesep anjeun:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Tambah mesin pamaluruh</string>
+
+ <string name="search_add_manually_name_hint">Ngaran mesin pamaluruh</string>
+ <string name="search_add_manually_string">Tambah string pakéeun</string>
+ <string name="search_add_manually_save">Teundeun</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Conto: conto.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Mesin pamaluruh anyar ditambahkeun.</string>
+
+ <string name="search_add_error_empty_name">Asupkeun ngaran mesin pamaluruh</string>
+ <string name="search_add_error_duplicate_name">Mesin pamaluruh nu kapasang geus aya kalawan ngaran nu sarupa.</string>
+
+ <string name="search_add_error_empty_search">Asupkeun string pamaluruhan</string>
+
+ <string name="search_add_error_format">Pariksa yén string pamaluruhan akur jeung format Conto</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Bersihan asupan</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Tutup</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Beresihan jujutan langlangan</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Tab muka: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Sambungan aman</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Ngamuat</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Raramatloka wéb geus dimuat</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Pilihan séjén</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Tombol pilihan lianna</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Maju</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Muat ulang raramatloka</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Mundur</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Eureunan ngamuat raramatloka</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Balik deui ka aplikasi saméméhna</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Jumlah palacak nu dipeungpeuk</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Peungpeuk palacak</string>
+
+ <string name="your_rights">Hak Anjeun</string>
+
+ <string name="external_app_prompt_title">Buka tutumbu di aplikasi séjén</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Anjeun bisa ninggalkeun %1$s pikeun muka ieu tutumbu di %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Téangan aplikasi nu bisa muka tutumbu</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Euweuh aplikasi nu bisa muka ieu tutumbu. Anjeun bisa ninggalkeun %1$s pikeun maluruh aplikasi nu bisa di %2$s.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Tutup Langlangan Nyamuni?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s anggeus</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Buka</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Ditambahkeun ka takulan!</string>
+
+ <string name="error_hostLookup_title">Server teu kapanggih</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Tutup</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Wilujeng sumping di %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Gancang. Pribadi. Teu élodan.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Mitembeyan</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s teu kawas panyungsi lianna</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Kami mupus jujutan anjeun nalika aplikasi ditutup pikeun pripasi tambahan.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Jadikeun %1$s baku pikeun nangtayungan data anjeun ti unggal tutumbu anu dibuka.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Jadikeun panyungsi baku</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Liwat</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Bedaskeun salindungan anjeun</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Cokot langlangan nyalindung ka undakan saterusna. Peungpeuk iklan jeung kontén lianna nu bisa ngalacak anjeun di sakuliah loka sarta ngalaunan waktu muka kaca.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Pamaluruhan anjeun, cara anjeun</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Néangan nu béda? Pilih mesin pamaluruhan baku séjénna di Setélan.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Tambah takulan ka layar tepas</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Sakocepat balik deui kana loka karesep anjeun %1$s . Pilih baé \&quot;Tambahkeun ka layar Tepas\&quot; tina menu %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Matuhkeun salindungan</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Setél %1$s jadi panyungsi baku sarta cokot kauntungan langlangan nyalindung sawaktu anjeun muka kaca raramat ti aplikasi séjén.</string>
+
+ <string name="firstrun_close_button">Okéh, ngarti!</string>
+ <string name="firstrun_skip_button">Liwat</string>
+ <string name="firstrun_next_button">Tuluy</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Tambah</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ENYA</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Bolay</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">MOAL</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Takulan bakal muka kalawan Kilung Palacakan Tingkat Lanjut pareum</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Rintakan langlangan nyamuni</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Iber pikeun ngahapus rintakan %1$s anjeun sakali tap. Anjeun teu kudu muka appna atawa nempo naon anu keur jalan dina panyungsi anjeun.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Pupus jujutan langlangan</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Undeur Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s téh aplikasi bébas sarta sumber nembrak nu dijieun ku Mozilla jeung kontributor séjénna.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s disanggakeun dina katangtuan <a href="%2$s">Lisénsi Publik Mozilla</a> jeung lisénsi sumber nembrak lianna.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Anjeun teu dibéré idin atawa lisénsi nanaon kana mérek dagang Mozilla Foundation atawa pihak mana ogé, kaasup ngaran atawa logo Mozilla, Firefox, atawa %1$s. Embaran leuwih lengkep bisa dibaca <a href="%2$s">di dieu</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Kodeu sumber lianna pikeun %1$s nyampak dina rupa-rupa <a href="%2$s">lisénsi</a> bébas jeung sumber nembrak séjénna.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s ogé maké daptar peungpeukan nu disayagakeun ku Disconnect, Inc. minangka karya anu misah jeung indepénden dina <a href="%2$s">GNU General Public License v3</a>, sarta sayaga<a href="%3$s">di dieu</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Sandiasma</string>
+ <string name="gv_prompt_password_hint">Kecap sandi</string>
+ <string name="gv_prompt_clear">Beresihan</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Sambungan aman</string>
+ <string name="security_popup_insecure_connection">Sambungan teu aman</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Dipéripikasi ku: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Kaamanan Loka</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL geus aya</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Téangan dina Kaca</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Téangan dina Kaca</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d ti %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Téang hasil séjén</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Téang hasil saméméhna</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Tutup téangan dina kaca</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Pénta loka déstop</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Loka déstop</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL ditiron</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Parabot pamekar</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Buka tutumbu dina aplikasi</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Leuwih lengkep</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Idin loka</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Kurangan Spanduk Réréméh</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Hurung</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Pareum</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Kurangan Spanduk Réréméh</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Kurangan spanduk ku otomatis nolak rekés réréméh, lamun bisa.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Kurangan Spanduk Réréméh</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Hurungkeun jang ieu loka</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Kiwari loka teu didukung </string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Pareum jang ieu loka</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Kurangan Spanduk Réréméh</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Pareum jang ieu loka</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Hurungkeun jang ieu loka</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Hurungkeun Reduksi Spanduk Réréméh pikeun %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Pareuman Reduksi Spanduk Réréméh pikeun %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s bakal mupus réréméh ieu loka tur muka ulang kacana. Ngaberesihan sadaya réréméh bisa ngaluarkeun anjeun atanapi ngosongkeun karanjang balanja.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s bisa nyoba sacara otomatis nolak rekés réréméh.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Kiwari ieu loka teu didukung ku Reduksi Spanduk Réréméh. Anjeun rék rekés tim kami pikeun nénjo ieu raramatloka sarta nambahkeun pangrojong ka hareupna?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Bolay</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Rekés dukungan</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Rekés ka loka dukungan geus dikirim.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Rekés ka loka dukungan geus dikirim.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s nyobaan nolak rekés réréméh pikeun ngudar spanduk réréméh anu ngaganggu.\n\nKokolakeun préperénsi spanduk réréméh dina %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">setélan</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Otomaén</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Ngarah bisa:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Buka Setélan Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Buka <b>Idin</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Buka Setélan</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Gilir <b>%1$s</b> ka ON]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kaméra</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikropon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Tempat</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Iber</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Kontén anu diatur ku DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Pénta idin</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Dipeungpeuk</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Diidinan</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Dipeungpeuk ku Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Idinan audio jeung pidéo</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Peungpeuk audio hungkul</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Disarankeun</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Peungpeuk audio jeung pidéo</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studi</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox bisa masang jeung ngajalankeun studi iraha baé.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Lenyepan</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Aplikasi bakal kaluar pikeun nerapkeun parobahan</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Piceun</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktip</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Réngsé</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Debugging ti kajauhan liwat USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Buka konci</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Kompirmasi maké Sidik Ramo Anjeun</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Anjeun bisa maké sidik ramo pikeun neruskeun rintakan aplikasi ayeuna. </string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Buka Tutumbu dina Rintakan Anyar</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Ikon sidik ramo</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Sidik ramo teu dipikawanoh. Pecakan deui.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Napelkeun ramona téréh teuing. Pecakan deui.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Témbongkeun bongbolongan maluruh?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Pikeun nampa bongbolongan, %1$s kudu ngirim naon anu diketikkeun dina bilah alamat kana mesin panyungsi.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Moal</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Enya</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Sababaraha mesin panyungsi teu bisa némbongkeun saran.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Tutup</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Lokana ngaco?\n Coba pareuman Salindung Palacak</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Hontal aksés sakali toél ka loka-loka anu pangmindengna dianjangan%1$s Menu > Tambahkeun ka layar Tepas]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Buka sakur tutumbu di %1$s\n Setél %1$s minangka panyungsi baku</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Otokumplit URLs pikeun loka anu mindeng dianjangan\n Pencét lila URL dina bilah alamat</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Muka hiji tutumbu dina hiji tab anyar\n Pencét lila tutumbu dina kacana</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Pareuman tips dina layar mimiti</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Tab anyar dibuka</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Gilir</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Asup ka mode layar pinuh</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Geuwat gilir ka tutumbu di tab anyar</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Meungpeuk loka pibahyaeun jeung titipu</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Peungpeuk loka anu dilaporkeun titipu jeung virusan, loka malwér, sarta loka sopwér nu teu dipiharep.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Mode Ngan-HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Otomatis nyoba nyambung ka loka maké protokol énkripsi HTTPS pikeun ngaronjatkeun kaamanan.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Iwal</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Anjeun numpurkeun Peungpeuk Kontén pikeun ieu raramatloka.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Piceun</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Piceun sakabéh raramatloka</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Peungpeuk Réréméh</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Badé meungpeuk réréméh?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Tab Ruksak</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Hampura. Aya masalah dina ieu tab.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Salaku panyungsi nyamuni, tab teu kungsi disimpen sarta teu bisa dibuka ulang.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Tutup Tab</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Kirim laporan nu ruksak ka Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Palacak diblokir ti %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Eusi</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Iklan</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Sosial</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analitika</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Protéksi Palacakan Tingkat Lanjut</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Salindung PAREUM pikeun ieu loka</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Perlindungan AKTIP pikeun ieu loka</string>
+
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Sambungan aman</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Sambungan teu aman</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Palacak jeung Skrip Peungpeukeun</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Balik deui</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Piceun</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Ganti ngaran</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Ganti ngaran</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Ngaran takulan</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Gambar teundeunan jeung nu dibagikeun mah &lt;b&gt;moal&lt;/b&gt; dipupus nalika anjeun mupus %1$s jujutan</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Téma</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Caang</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Poék</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Atur ku Pangirit Batré</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Tuturkeun téma alat</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Ieu loka henteu ngadukung HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s nyobaan maké sambungan HTTPS sabisana pikeun kaamanan.
+ <a href="%2$s">Lenyepan</a> <br/><br/>
+ Robah ieu setélan dina Setélan > Pripasi &amp; Kaamanan > Kaamanan.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Sambungan teu aman</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Ieu bisa jadi alatan aya masalah dina konpigurasi serper, atawa aya anu nyobaan ngarupakeun serperna. <br/><br/>
+ Lamun saméméhna anjeun kungsi nyambung ka ieu serper, bisa jadi érorna samentara.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[<label>Batur bisa nyobaan malsukeun lokana, mending ulah diteruskeun.</label>
+ <br><br>
+ <label>%1$s cangcaya ka <b>%2$s</b> alatan nu ngaluarkeun sértipikatna teu dipikawanoh, sértipikatna ditéken sorangan, atawa serperna teu ngirim sértipikat panengah anu bener.</label>]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Tutup tab</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Beunang siah! Kami ngeureunan ieu loka tina moncorong anjeun. Toél taméng iraha baé pikeun nempo naon baé anu geus dipeungpeuk.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Tutup popup</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Anjeun kajaga!</string>
+
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Setélan baku ieu nawarkeun panyalindungan anu kuat. Tapi gampang ngarobah setélan pikeun nyumponan pangabutuh anjeun.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Tutup</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Toél di dieu pikeun mupus sakabéhna — jujutan, réréméh, sadayana — sarta mitembeyan dina hiji tab anyar.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Tutup</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Paluruh wijet</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Data sungsian geus beresih! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Mimitian rintakan pamaluruhan nyamuni anjeun, kami bakal meungpeuk palacak jeung nu garoréng lianna nalika anjeun miang.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Kami ninggalkeun anjeun dina ngalanglang nyamuni, tapi engké deui mah anjeun bisa ngamimitian leuwih gancang maké wijet %1$s dina layar Tepas.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Tambahkeun wijet ka layar tepas</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Wijet ditambahkeun kana layar tepas</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-sv-rSE/strings.xml b/mobile/android/focus-android/app/src/main/res/values-sv-rSE/strings.xml
new file mode 100644
index 0000000000..2f1a33894b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-sv-rSE/strings.xml
@@ -0,0 +1,1121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Avbryt</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Spara</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Sök eller ange adress</string>
+
+ <string name="teaser">Automatisk privat surfning.\nSurfa. Radera. Upprepa.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Din webbhistorik har raderats.</string>
+ <string name="feedback_erase2">Webbhistoriken rensad</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Flikens surfhistorik har raderats.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Sök efter %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Dela…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Rapportera webbplatsproblem</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Öppna med %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Öppna med…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Lägg till på startskärmen</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Lägg till i genvägar</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Ta bort från genvägar</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Inställningar</string>
+ <string name="menu_about">Om</string>
+ <string name="menu_help">Hjälp</string>
+ <string name="menu_rights">Dina rättigheter</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Trackers blockerade</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Om du stänger av kan det fixa några webbplatsproblem</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Innehållsblockering</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Stäng av för att fixa vissa webbplatser</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Levereras av %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Dela via</string>
+
+ <string name="notification_erase_title_android_14">Radera webbhistorik?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tryck på eller rensa den här aviseringen för att säkert radera din webbhistorik.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tryck på eller svep den här aviseringen för att säkert radera din webbhistorik.</string>
+
+ <string name="notification_erase_text">Radera webbhistorik</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Öppna</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Radera och öppna</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Radera</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Radera webbhistorik</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Radera &amp; öppna</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Radera och öppna %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Sök i Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Sök i Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Sök i Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Sök i Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s ger dig full kontroll.</p>
+<p>Använd den som en privat webbläsare:
+ <ul>
+ <li>Sök och surfa direkt i appen</li>
+ <li>Blockera trackers (eller uppdatera inställningar att tillåta trackers)</li>
+ <li>Radera för att ta bort kakor samt sök- och webbhistorik</li>
+ </ul>
+</p>
+<p>%1$s är utvecklad av Mozilla. Vårt uppdrag är att främja ett hälsosamt, öppet Internet.<br/>
+<a href="%2$s">Läs mer</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Sekretess &amp; säkerhet</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Spårning, kakor, dataval</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Ange standard, autokomplettera</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Om %1$s, hjälp</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Förbättrat spårningsskydd</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Webbinnehåll</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Växla appar</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Allmänt</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Standardwebbläsare, språk</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Datainsamling &amp; användning</string>
+
+ <string name="preference_category_search">Sök</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Få sökförslag</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s skickar det du skriver i adressfältet till din sökmotor</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Standard</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Sökmotor</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">På</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Av</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Autokomplettera webbadress</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">För toppwebbplatser</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Aktivera för att få %s att autokomplettera över 450 populära webbadresser i adressfältet.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">För webbplatser du lägger till</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Aktivera för att låta %s autokomplettera dina favoritwebbadresser.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Hantera webbplatser</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Hantera webbplatser</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Lägg till anpassad webbadress</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Din autokompletteringslista:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Lägg till URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Lägg till anpassad webbadress</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Lägg till anpassad webbadress</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Lägg till länk till autokomplettering</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Kakor och webbplatsdata</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Dataval</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Ta bort anpassade webbadresser</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Läs mer</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Lägg till och hantera anpassade autokompletterade webbadresser.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Webbadress att lägga till</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Klistra in eller ange webbadress</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Exempel: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Exempel: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Ny anpassad webbadress tillagd.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Ta bort</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Ta bort</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Dubbelkolla webbadressen du angav.</string>
+
+ <string name="preference_language">Språk</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Systemstandard</string>
+
+ <string name="preference_category_privacy">Sekretess</string>
+ <string name="preference_privacy_block_ads">Blockera annons-trackers</string>
+ <string name="preference_privacy_block_ads_summary">Vissa annonser spårar dina besök på webbplatsen, även om du inte klickar på annonserna</string>
+ <string name="preference_privacy_block_analytics">Blockera analytiska trackers</string>
+ <string name="preference_privacy_block_analytics_summary">Används för att samla in, analysera och mäta aktiviteter som tryckningar och rullningar</string>
+ <string name="preference_privacy_block_social">Blockera sociala trackers</string>
+ <string name="preference_privacy_block_social_summary">Inbäddad på webbplatser för att spåra dina besök och visa funktionalitet som dela-knappar</string>
+ <string name="preference_privacy_block_content">Blockera andra innehållstrackers</string>
+ <string name="preference_privacy_block_content_summary2">Aktivering kan leda till att vissa sidor uppträder oväntat</string>
+ <string name="preference_privacy_category_cookies">Blockera kakor</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Nej, tack</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Blockera endast tredjepartspårarkakor</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Blockera endast tredjepartskakor</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Blockera globala kakor</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ja, tack</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Använd fingeravtryck för att låsa upp appen</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Lås upp med fingeravtryck om du har lagt till genvägar eller när en webbplats redan är öppen i %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Dolt läge</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Dölj webbsidor när du byter appar och blockerar skärmdumpar.</string>
+
+ <string name="preference_category_security">Säkerhet</string>
+
+ <string name="preference_category_performance">Prestanda</string>
+ <string name="preference_performance_block_webfonts">Blockera webbtypsnitt</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Kan resultera i att ikoner eller bilder saknas</string>
+
+ <string name="preference_performance_block_javascript">Blockera Javascript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Sidor kan laddas snabbare, men kan också uppträda oväntat</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Gör %1$s till standardwebbläsare</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Skicka användningsdata</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Läs mer</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla strävar efter att endast samla in det vi behöver för att tillhandahålla och förbättra %1$s för alla.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Sekretesspolicy</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Licensinformation</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Bibliotek som vi använder</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS-bibliotek</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Om %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Installerade sökmotorer</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Välj sökmotor</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Återställ standardsökmotorer</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Lägg till en annan sökmotor</string>
+ <string name="preference_search_remove_title">Ta bort sökmotorer</string>
+ <string name="preference_search_remove">Ta bort</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Lägg till en annan sökmotor</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Välj din önskade sökmotor:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Lägg till sökmotor</string>
+
+ <string name="search_add_manually_name_hint">Sökmotorns namn</string>
+ <string name="search_add_manually_string">Söksträng som ska användas</string>
+ <string name="search_add_manually_save">Spara</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Exempel: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Ny sökmotor tillagd.</string>
+
+ <string name="search_add_error_empty_name">Ange sökmotorns namn</string>
+ <string name="search_add_error_duplicate_name">En installerad sökmotor använder redan det namnet.</string>
+
+ <string name="search_add_error_empty_search">Ange söksträng</string>
+
+ <string name="search_add_error_format">Kontrollera att söksträngen matchar exempelformat</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Rensa inmatning</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Ignorera</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Radera webbhistorik</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Flikar öppna: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Säker anslutning</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Laddar</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Webbplats laddad</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Fler alternativ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Knappen fler alternativ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Navigera framåt</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Ladda om webbplats</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Navigera bakåt</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Sluta ladda webbplats</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Återgå till föregående app</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Antal trackers blockerade</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Blockera trackers</string>
+
+ <string name="your_rights">Dina rättigheter</string>
+
+ <string name="external_app_prompt_title">Öppna länk i en annan app</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Du kan lämna %1$s för att öppna denna länk i %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Hitta en app som kan öppna länken</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ingen av apparna på din enhet kan öppna denna länk. Du kan lämna %1$s för att söka i %2$s efter en app som kan göra detta.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Avsluta Privat surfning?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s slutförd</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Öppna</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Tillagd till genvägar!</string>
+
+ <string name="error_hostLookup_title">Servern hittades inte</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Stäng</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Välkommen till %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Snabb. Privat. Inga distraktioner.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Kom igång</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s är inte som andra webbläsare</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Vi rensar din historik när du stänger appen för extra sekretess.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Gör %1$s till din standard för att skydda dina data med varje länk du öppnar.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Ange som standardwebbläsare</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Hoppa över</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Stärk din integritet</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Ta privat surfning till nästa nivå. Blockera annonser och annat innehåll som kan spåra dig på webbplatser och slöa ner laddningen av webbsidor.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Sök som du vill</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Letar du efter något annat? Välj en annan standardsökmotor i Inställningar.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Lägg till genvägar till startskärmen</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Återgå till dina favoritwebbplatser i %1$s snabbt. Välj \&quot;Lägg till på startskärmen\&quot; från menyn %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Låt integritet bli en vana</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Ange %1$s som standardwebbläsare och dra nytta av fördelarna med privat surfning när du öppnar webbsidor från andra appar.</string>
+
+ <string name="firstrun_close_button">OK, jag förstår!</string>
+ <string name="firstrun_skip_button">Hoppa över</string>
+ <string name="firstrun_next_button">Nästa</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Lägg till</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">JA</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Avbryt</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NEJ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Genvägen öppnas med förbättrat spårningsskydd inaktiverat</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Privat surfsession</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Med aviseringar kan du radera din session i %1$s med ett klick. Du behöver inte öppna appen eller se vad som körs i din webbläsare.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Radera webbhistorik</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Hämta Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s är gratis och öppen källkodsprogramvara utvecklad av Mozilla och andra bidragsgivare.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s är tillgänglig för dig enligt villkoren i <a href="%2$s">Mozilla Public License</a> och andra open source-licenser.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Du är inte beviljad några rättigheter eller licenser till varumärken som tillhör Mozilla Foundation eller någon part, däribland Mozilla, Firefox eller %1$s namn eller logotyper. Ytterligare information kan hittas <a href="%2$s">här</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Ytterligare källkod för %1$s finns tillgänglig under flera andra gratis och open source-<a href="%2$s">licenser</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s använder också blocklistor som tillhandahålls av Disconnect, Inc. som separata och oberoende verk under <a href="%2$s">GNU General Public License v3</a> och tillgänglig <a href="%3$s">här</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Användarnamn</string>
+ <string name="gv_prompt_password_hint">Lösenord</string>
+ <string name="gv_prompt_clear">Rensa</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Säker anslutning</string>
+ <string name="security_popup_insecure_connection">Osäker anslutning</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verifierad av: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Webbplatssäkerhet</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL finns redan</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Hitta på sidan</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Hitta på sidan</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d av %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Hitta nästa resultat</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Hitta föregående resultat</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Avvisa hitta på sidan</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Begär datorwebbplats</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Webbplats för datorer</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL kopierad</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Utvecklarverktyg</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Öppna länkar i appar</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Avancerat</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Webbplatsbehörigheter</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Reducering av kakbanner</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">På</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Av</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Reducering av kakbanner</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Se färre banners genom att automatiskt avvisa kak-förfrågningar, när det är möjligt.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Reducering av kakbanner</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">PÅ för denna webbplats</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Webbplatsen stöds inte för närvarande</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">AV för denna webbplats</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Reducering av kakbanner</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">AV för denna webbplats</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">PÅ för denna webbplats</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Vill du aktivera reducering av kakbanners för %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Vill du stänga av reducering av kakbanners för %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s rensar webbplatsens kakor och uppdaterar sidan. Rensa alla kakor kan logga ut dig eller tömma kundvagnar.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s kan försöka att automatiskt avvisa kak-förfrågningar.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Denna webbplats stöds för närvarande inte av Reducering av kakbanner. Vill du be vårt team granska denna webbplats och lägga till support i framtiden?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Avbryt</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Begär support</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Begäran om supportwebbplats har skickats.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Begäran om supportwebbplats har skickats.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s försöker avvisa kak-förfrågningar för att avvisa irriterande kakbanners.\n\nHantera kakbannerinställningar i %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">inställningar</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Automatisk uppspelning</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">För att tillåta det:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Gå till Android-inställningar</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tryck på <b>Behörigheter</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Gå till Inställningar</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Växla <b>%1$s</b> till PÅ]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Plats</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Avisering</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-kontrollerat innehåll</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Fråga för att tillåta</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blockerad</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Tillåten</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blockerad av Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Tillåt ljud och video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Blockera endast ljud</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Rekommenderad</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Blockera ljud och video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studier</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox kan installera och köra studier då och då.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Läs mer</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Applikationen avslutas för att tillämpa ändringar</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Ta bort</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Aktiv</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Slutförd</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Fjärrfelsökning via USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Lås upp</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Bekräfta genom att använda ditt fingeravtryck</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Du kan använda ditt fingeravtryck för att fortsätta din nuvarande appsession.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Öppna länk i ny session</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Fingeravtrycksikon</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Fingeravtryck känns inte igen. Försök igen.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Fingret rörde sig för fort. Försök igen.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Visa sökförslag?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">För att få förslag måste %1$s skicka det du skriver i adressfältet till sökmotorn.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Nej</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Ja</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Vissa sökmotorer kan inte visa förslag.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Ignorera</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Beter sig webbplatsen konstigt?\n Försök att stänga av spårningsskydd</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Få tillgång de mest besökta webbplatserna med en knapptryckning%1$s Meny > Lägg till på startsidan]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Öppna varje länk i %1$s\n Ange %1$s som standardwebbläsare</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Autokomplettera webbadresser för webbplatser som du använder mest\n Tryck länge på vilken URL som helst i adressfältet</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Öppna en länk i en ny flik\n Tryck länge på en länk på en sida</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Stäng av tips på startskärmen</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Ny flik öppnad</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Växla</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Startar fullskärmsläge</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Växla till länk i ny flik omedelbart</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Blockera potentiellt farliga och vilseledande webbplatser</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Blockera rapporterade vilseledande webbplatser och de som angriper dig, distribuerar skadlig kod eller oönskad programvara.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Endast HTTPS-läge</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Försöker automatiskt ansluta till webbplatser med HTTPS-krypteringsprotokollet för ökad säkerhet.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Undantag</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Du har inaktiverat innehållsblockering för dessa webbplatser.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Ta bort</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Ta bort alla webbplatser</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Blockera kakor</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Vill du blockera kakor?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Fliken kraschade</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Förlåt. Vi har ett problem med den här fliken.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Som en privat webbläsare sparar vi aldrig och kan inte återställa den här fliken.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Stäng flik</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Skicka kraschrapport till Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Spårare blockerade sedan %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Innehåll</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Reklam</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Socialt</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Statistik</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Förbättrat spårningsskydd</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Skydd är AV för den här webbplatsen</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Skydd är PÅ för den här webbplatsen</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Anslutningen är säker</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Anslutningen är inte säker</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Spårare och skript att blockera</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Gå tillbaka</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Ta bort</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Byt namn</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Byt namn</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Genvägens namn</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Sparade och delade bilder &lt;b&gt;raderas inte&lt;/b&gt; när du rensar historiken för %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Ljust</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Mörkt</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Bestämt av energisparläge</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Följ enhetens tema</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Den här webbplatsen stöder inte HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s försöker använda en HTTPS-anslutning när det är möjligt för ökad säkerhet.
+ <a href="%2$s">Läs mer</a> <br/><br/>
+ Ändra den här inställningen i Inställningar > Sekretess &amp; Säkerhet > Säkerhet.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Anslutningen är inte säker</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Detta kan vara ett problem med serverns konfiguration, eller så kan det vara någon som försöker utge sig för att vara servern. <br/><br/>
+ Om du har anslutit till den här servern tidigare kan felet vara tillfälligt.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Någon kan försöka utge sig för webbplatsen och att fortsätta kan vara riskabelt.</label>
+ <br><br>
+ <label>%1$s litar inte på <b>%2$s</b> eftersom dess certifikatutfärdare är okänd, certifikatet är självsignerat eller att servern inte skickar rätt mellanliggande certifikat.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Stäng flik</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Fick dem! Vi stoppade den här sidan från att spionera på dig. Tryck på skölden när som helst för att se vad vi blockerar.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Stäng popup</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Du är skyddad!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Dessa standardinställningar erbjuder ett starkt skydd. Men det är lätt att justera inställningarna för att möta dina specifika behov.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Ignorera</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tryck här för att kasta allt — historik, kakor, allt — och börja om på en ny flik.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Stäng</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Sök-widget</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Webbhistorik rensad! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Starta din privata surfsession och vi kommer att blockera spårare och andra dåliga saker medan du surfar.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Vi lämnar dig till din privata surfning, men få en snabbare start nästa gång med %1$s-widgeten på din startskärm.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Lägg till widget på startskärmen</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget har lagts till på startskärmen</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-sw480dp/dimens.xml b/mobile/android/focus-android/app/src/main/res/values-sw480dp/dimens.xml
new file mode 100644
index 0000000000..e2e81baf13
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-sw480dp/dimens.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <dimen name="firstrun_container_width">256dp</dimen>
+ <dimen name="tablet_bottom_sheet_width">384dp</dimen>
+ <dimen name="tablet_bottom_sheet_peekheight">256dp</dimen>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-sw600dp/dimens.xml b/mobile/android/focus-android/app/src/main/res/values-sw600dp/dimens.xml
new file mode 100644
index 0000000000..3a98077f71
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-sw600dp/dimens.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <dimen name="firstrun_container_width">320dp</dimen>
+ <dimen name="tablet_bottom_sheet_width">480dp</dimen>
+ <dimen name="tablet_bottom_sheet_peekheight">320dp</dimen>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ta/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ta/strings.xml
new file mode 100644
index 0000000000..f7f8229923
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ta/strings.xml
@@ -0,0 +1,552 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">ரத்து</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">சரி</string>
+
+ <string name="action_save">சேமி</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">தேட (அ) உலாவ முகவரியை உள்ளிடுக</string>
+
+ <string name="teaser">தானியக்க அந்தரங்க உலாவல்.\nஉலாவு. அழி. திரும்பச்செய்.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">உங்கள் உலாவல் வரலாறு அழிக்கப்பட்டது.</string>
+ <string name="feedback_erase2">உலாவி வரலாறு அழிக்கப்பட்டது</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">கீற்றின் உலாவல் வரலாறு அழிக்கப்பட்டது.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s சொல்லைத் தேடு</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">பகிர்…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">தள சிக்கலைத் தெரிவி</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s உலாவியில் திற</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">உலாவியில் திற…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">முகப்பு திரைக்கு சேர்</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">குறுக்குவழி சேர்க்கவும்</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">குறுக்குவழி நீக்கு</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">அமைவுகள்</string>
+ <string name="menu_about">போக்கசு பற்றி</string>
+ <string name="menu_help">உதவி</string>
+ <string name="menu_rights">உரிமைகள்</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">பின்தொடரி</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">இதை முடக்குவது சில இணையதளச் சிக்கல்களைச் சரிசெய்யலாம்</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">உள்ளடக்க தடுப்பு</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">சில இணையதளங்களைச் சரிசெய்ய அணைக்கவும்</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s மூலம் இயக்கப்படுகிறது</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">தோன்றும் செயலிகளின் வழி பகிர்க</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">உலாவல் வரலாற்றை அழி</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">திற</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">துடைத்து திற</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">அழி</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">உலாவல் வரலாற்றை அழி</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">துடைத்துத் திறக்கவும்</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">%1$s ஐ துடைத்துத் திறக்கவும்</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">ஃபோகசில் தேடு</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">கிளாரில் தேடு</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">ஃபோகசு பீட்டாவில் தேடு</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">ஃபோகசு நைட்லியில் தேடு</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s கட்டுப்பாட்டை உங்களிடம் வழங்குகிறது.</p>
+<p>அதை ஒரு தனிப்பட்ட உலாவியாக பயன்படுத்துங்கள்:
+<ul>
+<li>செயலியினுள் தேடுங்கள் உலாவுங்கள்</li>
+<li>தடமிகளை முடக்குங்கள் (அல்லது தடமிகளை அனுமதிக்க அமைப்புகளைப் புதுப்பியுங்கள்)</li>
+<li>குக்கிகள், தேடல் மற்றும் உலாவல் வரலாற்றை அழியுங்கள்</li>
+</ul>
+</p>
+<p>%1$s Mozilla ஆல் உருவாக்கப்படுகிறது. ஆரோக்கியமான, திறந்த இணையத்தை வளர்த்தெடுப்பதே எங்களின் இலக்கு ஆகும்.<br/>
+<a href="%2$s">மேலும் அறிய</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">தனியுரிமை மற்றும் பாதுகாப்பு</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">தடமறிதல், நினைவிகள், தரவு தேர்வுகள்</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">தானிரப்பியை இயல்பாக அமை</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s பற்றிய உதவி</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">மேம்படுத்தப்பட்ட தடமறி பாதுகாப்பு</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">வலை உள்ளடக்கம்</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">செயலிகள் இடமாற்றம்</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">பொது</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">இயல்புநிலை உலாவி, மொழி</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">தரவு சேகரிப்பு மற்றும் பயனளவு</string>
+
+ <string name="preference_category_search">தேடல்</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">தேடல் பரிந்துரைகளைக் காட்டு</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">முன்னிருப்பு</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">இயக்கு</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">அணை</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL தானியங்கு நிரப்பு</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ தனிபயன் URL சேர்</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">தனிபயன் URL சேர்</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">தனிபயன் URL சேர்</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">நினைவிகள் மற்றும் தள தரவு</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">தரவு தெரிவுகள்</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">தனிபயன் URLs நீக்கு</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">மேலும் அறிய</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">தனிபயன் தானியங்குநிரப்பு URLs சேர்த்து நிர்வகி.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">சேர்க்க வேண்டிய URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">URL ஒட்டு அல்லது உள்ளிடு</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">எ.கா: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">எகா: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">புது தனிபயன் URL சேர்க்கப்பட்டது.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">நீக்கு</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">நீக்கு</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">நீங்கள் உள்ளிட்ட URL இருமுறை சரிபார்க்கவும்.</string>
+
+ <string name="preference_language">மொழி</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">கைப்பேசி முன்னிருப்பு</string>
+
+ <string name="preference_category_privacy">தனியுரிமை</string>
+ <string name="preference_privacy_block_ads">விளம்பர பின்தொடரிகளைத் தடு</string>
+ <string name="preference_privacy_block_ads_summary">சில விளம்பரங்கள், நீங்கள் அதனை சொடுக்காவிட்டாலும் தள பார்வைகளைப் பின்தொடரும்</string>
+ <string name="preference_privacy_block_analytics">பகுப்பாய்வு பின்தொடரிகளைத் தடு</string>
+ <string name="preference_privacy_block_analytics_summary">தட்டல், உருட்டுதல் போன்ற செயல்களைச் சேகரிக்கும், ஆய்வுசெய்யும் அளவிடும்</string>
+ <string name="preference_privacy_block_social">சமூக பின்தொடரிகளைத் தடு</string>
+ <string name="preference_privacy_block_social_summary">உங்கள் பார்வைகளைப் பின்தொடரவும் பகிர்தல் பொத்தான் போன்றவற்றைக் காட்டவும் தளத்தில் உட்பொதியப்பட்டிருக்கும்</string>
+ <string name="preference_privacy_block_content">உள்ளடக்க பின்தொடரிகளைத் தடு</string>
+ <string name="preference_privacy_block_content_summary2">செயற்படுத்துவது சில பக்கங்கள் எதிர்பாராமல் தவறாகச் செயல்பட காரணமாகலாம்</string>
+ <string name="preference_privacy_category_cookies">நினைவிகளை முடக்கு</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">3 ஆம் தரப்பு நினைவிகளை மட்டும் முடக்கு</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">போரியல்</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">செயலிகள் மாறும்பொழுது வலைப்பக்கங்களை மறை மற்றும் திரைப்பிடிப்பு எடுப்பதைத் தடு.</string>
+
+ <string name="preference_category_performance">செயல்திறன்</string>
+ <string name="preference_performance_block_webfonts">இணைய எழுத்துருக்களைத் தடு</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">சின்னம் (அ) படங்கள் காணாமல் போகலாம்</string>
+
+ <string name="preference_performance_block_javascript">ஜாவாஸ்கிரிப்டை முடக்கு</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">பக்கம் வேகமாக ஏறும், ஆனால் எதிர்பாரா விதத்தில் செயல்படலாம்</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s உங்கள் முன்னிருப்பு உலாவியாக மாற்றவும்</string>
+
+ <string name="preference_category_mozilla">மொசில்லா</string>
+ <string name="preference_mozilla_telemetry2">பயனளவு தரவை அனுப்பு</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">மேலும் அறிய</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">அனைவருக்கும் %1$s வழங்க மற்றும் மேம்படுத்த தேவையானதை மட்டும் சேகரிக்க மொசில்லா உறுதிபூண்டுள்ளது.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">தனியுரிமை கொள்கை</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s பற்றி</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">நிறுவப்பட்ட தேடு பொறிகள்</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">முன்னிருப்பு தேடுபொறிகளை மீட்டமை</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ மற்றொரு தேடு பொறியைச் சேர்</string>
+ <string name="preference_search_remove_title">தேடு பொறிகளை நீக்கு</string>
+ <string name="preference_search_remove">நீக்கு</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">தேடுபொறியைச் சேர்</string>
+
+ <string name="search_add_manually_name_hint">தேடுபொறி பெயர்</string>
+ <string name="search_add_manually_string">பயன்படுத்த வேண்டிய தேடல் தொடர்</string>
+ <string name="search_add_manually_save">சேமி</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">எகா: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">புது தேடுபொறி சேர்க்கப்பட்டது.</string>
+
+ <string name="search_add_error_empty_name">தேடுபொறி பெயரை உள்ளிடு</string>
+ <string name="search_add_error_duplicate_name">நிறுவப்பட்ட தேடுபொறி ஏற்கனவே அப்பெயரைப் பயன்படுத்துகிறது.</string>
+
+ <string name="search_add_error_empty_search">தேடல் தொடரை உள்ளிடு</string>
+
+ <string name="search_add_error_format">தேடல் தொடர் எகா வடிவத்தை ஒத்திருக்கிறதா என்று பார்</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">துள்ளிய உள்ளீடு</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">நிராகரி</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">உலாவல் வரலாற்றை அகற்று</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">திறந்த கீற்றுகள்: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">பாதுகாப்பான இணைப்பு</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">ஏற்றுகிறது</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">வலையத்தளம் ஏற்றப்பட்டது</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">கூடுதல் தேர்வுகள்</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">வழிசெலுத்தி முன்செல்</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">வலைத்தளத்தை மீளேற்று</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">வழிசெலுத்தி பின்செல்</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">வலைத்தளம் ஏற்றுவதை நிறுத்து</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">முந்தைய செயலியிக்கு திரும்பு</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">தடமறிகளைத் தடு</string>
+
+ <string name="your_rights">உங்கள் உரிமைகள்</string>
+
+ <string name="external_app_prompt_title">தொடுப்பை இன்னொரு செயலியில் திறக்கும்</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">%1$s உலாவியை விட்டு விலகி %2$s செயலியில் திறக்கும்.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">தொடுப்பை திறக்கவல்ல ஒரு செயலியைக் கண்டுபிடி</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">இந்தச் சாதனத்தில் உள்ள எந்த ஒரு செயலியும் இத்தொடுப்பை திறக்கவல்லது. %1$s என்பதை விடுத்து ஒரு செயலியால் %2$s என்பதை தேட முடியும்.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">அந்தரங்க உலாவலில் இருந்து வெளியேறவா?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s முடிந்தது</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">திற</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">சேவகன் கிடைக்கவில்லை</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">தனியுரிமையைத் துரிதப்படுத்துங்கள்</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">தனிப்பட்ட உலாவலை அடுத்த நிலைக்கு எடுத்துச் செல்லவும். தளங்கள் எங்கும் உங்களைப் பின்தொடரக்கூடிய மற்றும் பக்க ஏற்று நேரத்தைக் கூட்டும் விளம்பரம் மற்றும் மற்ற உள்ளடக்கங்களை முடக்கு.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">உங்களின் தேடல் உங்கள் வழி</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">வித்தியாசமானதைத் தேடுகிறீர்களா? அமைப்புகளில் வேறொரு இயல்புநிலை தேடியியந்திரத்தைத் தேர்ந்தெடுக்கவும்.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">உங்கள் முகப்பு திரையில் சுருக்கு வழிகளைச் சேர்க்கவும்</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">%1$s உலாவியல் உங்கள் விருப்ப தங்களுக்கு விரைவாகத் திரும்பவும். %1$s மெனுவிலிருந்து \&quot;முகப்பு திரையில் சேர்க்கவும்\&quot; என்பதைத் தேர்ந்தெடுக்கவும்.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">தனியுரிமையை ஒரு பழக்கமாக்கவும்</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">%1$s உலாவியை முன்னிருப்பாக அமைப்பதன் மூலம் பிற செயலிகளிலிருந்து வலைத்தளங்களைத் திறக்கும்போது அந்தரங்க உலாவலின் நன்மையைப் பெறலாம்.</string>
+
+ <string name="firstrun_close_button">சரி, புரிந்தது!</string>
+ <string name="firstrun_skip_button">தாவு</string>
+ <string name="firstrun_next_button">அடுத்தது</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">சேர்</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ஆம்</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">ரத்து</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">இல்லை</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">அந்தரங்க உலாவல் அமர்வு</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">அறிவிப்புகள் உங்கள் %1$s அமர்வை ஒரு தட்டில் அழிக்க அனுமதிக்கிறது. நீங்கள் செயலியைத் திறக்கவோ உலாவியில் என்ன இருக்கிறது என்று பார்க்கவோ தேவையில்லை.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">உலாவல் வரலாற்றை அழி</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">பயர்பாக்சைப் பதிவிறக்கு</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s மொசில்லா மற்றும் பிற பங்களிப்பாளர்களால் உருவாக்கப்பட்ட கட்டற்ற திறந்தமூல மென்பொருள் ஆகும்.]]></string>
+
+
+
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">பயனர்பெயர்</string>
+ <string name="gv_prompt_password_hint">கடவுச்சொல்</string>
+ <string name="gv_prompt_clear">துடை</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">பாதுகாப்பான இணைப்பு</string>
+ <string name="security_popup_insecure_connection">பாதுகாப்பற்ற இணைப்பு</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">சரிபார்க்கப்பட்டது: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">தள பாதுகாப்பு</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL ஏற்கனவே உள்ளது</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">பக்கத்தில் கண்டுபிடி</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">பக்கத்தில் கண்டுபிடி</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%2$d இல் %1$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">அடுத்த முடிவைக் கண்டுபிடி</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">முந்தைய முடிவைக் கண்டுபிடி</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">பக்கத்தில் கண்டவற்றை நிராகரி</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">கணினி பக்கத்தைக் கேள்</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">தொடுப்பு நகலெடுக்கப்பட்டது</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-te/strings.xml b/mobile/android/focus-android/app/src/main/res/values-te/strings.xml
new file mode 100644
index 0000000000..ffb0dbed30
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-te/strings.xml
@@ -0,0 +1,666 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">రద్దుచేయి</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">సరే</string>
+
+ <string name="action_save">భద్రపరుచు</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">వెతకండి లేదా చిరునామాను ఇవ్వండి</string>
+
+ <string name="teaser">నిరంతర అంతరంగిక విహారణ. విహరించండి. తుడిచివేయండి. మళ్ళీ మళ్ళీ.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">మీ విహారణ చరిత్ర తుడిచివెయ్యబడింది.</string>
+
+ <string name="feedback_erase2">విహారిణి చరిత్ర తుడిచివేయబడింది</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s కొరకు వెతకండి</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">పంచుకోండి…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">సైటు సమస్యను నివేదించండి</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s లో తెరువు</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">తెరచు చోటు…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">ముంగిలి తెరకు చేర్చు</string>
+
+ <string name="menu_settings">అమరికలు</string>
+ <string name="menu_about">గురించి</string>
+ <string name="menu_help">సహాయం</string>
+ <string name="menu_rights">మీ హక్కులు</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">నిరోధించిన ట్రాకర్లు</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">దీన్ని అచేతనం చేయడం కొన్ని సైట్ల సమస్యలు పరిష్కరించవచ్చు</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">విషయ నిరోధం</string>
+
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">కొన్ని సైట్లను పరిష్కరించడానికి దీనిని అచేతనం చేయండి</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">వీరిచే %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">దీనిద్వారా పంచుకోండి</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">విహరణ చరిత్రను తుడిచివేయి</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">తెరువు</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">తుడిచివేసి తెరువు</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">తుడిచివేయి</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">విహరణ చరిత్రను తుడిచివేయి</string>
+
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">అంతరంగికత &amp; భద్రత</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">ట్రాకింగ్, కుక్కీలు, డేటా ఎంపికలు</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s గురించి, సహాయం</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">వెబ్ కంటెంట్</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">అనువర్తనాలు మార్చడం</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">సాధారణం</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">అప్రమేయ విహారిణి, భాష</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">డేటా సేకరణ మరియు ఉపయోగం</string>
+
+ <string name="preference_category_search">వెతుకు</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">వెతుకుడు సలహాలను చూపించు</string>
+
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">మీరు చిరునామా పట్టీలో టైపుచేసినదాన్ని %1$s మీ సెర్చింజనుకి పంపిస్తుంది</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">అప్రమేయం</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">శోధన యంత్రం</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">చేతనం</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">అచేతనం</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL స్వయంపూర్తి</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">మేటి సైట్లకు</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">మీరు జోడించిన సైట్లకు</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">సైట్ల నిర్వహణ</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">సైట్లను నిర్వహించండి</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ఇష్టానుసారమైన URLను జోడించండి</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">ఇష్టానుసారమైన URLను జోడించండి</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">ఇష్టానుసారమైన URLను జోడించండి</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">లంకెను స్వయంపూరణకు చేర్చు</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">కుకీలు మరియు సైటు డేటా</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">దత్తాంశం ఎంపికలు</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">ఇష్టానుసారమైన URLs ను నిర్మూలించండి</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">ఇంకా తెలుసుకోండి</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">అభిమత స్వయంపూరణ చిరునామాలను చేర్చండి, నిర్వహించండి.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">జోడించుటకు URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">URL అతికించండి లేదా ఇవ్వండి</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">ఉదాహరణ: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">ఉదాహరణ: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">కొత్త అభిమత చిరునామా చేర్చబడింది.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">తీసివేయి</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">తీసివేయి</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">మీరు ఇచ్చిన చిరునామాను మరోసారి సరిచూడండి.</string>
+
+ <string name="preference_language">భాష</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">వ్యవస్థ అప్రమేయం</string>
+
+ <string name="preference_category_privacy">అంతరంగికత</string>
+ <string name="preference_privacy_block_ads">యాడ్ ట్రాకర్లను నిరోధించు</string>
+ <string name="preference_privacy_block_analytics">వైశ్లేషిక ట్రాకర్లను నిరోధించు</string>
+ <string name="preference_privacy_block_social">సామాజిక ట్రాకర్లను నిరోధించు</string>
+ <string name="preference_privacy_block_content">ఇతర ట్రాకర్లను నిరోధించు</string>
+ <string name="preference_privacy_category_cookies">కుకీలను నిరోధించాలా</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">వద్దు పర్లేదు</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">3వ-పక్ష ట్రాకర్ కుకీలను మాత్రమే నిరోధించు</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">3-వ పక్షం కుకీలను మాత్రమే నిరోధించు</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">క్రాస్-సైటు కుకీలను నిరోధించు</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">అనువర్తనపు తాళం తీయడానికి వేలిముద్రను వాడు</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">గోప్యత</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">యాప్స్ మధ్య మారేప్పుడు జాలపేజీలు కనబడకుండా దాచిపెట్టు, తెరపట్టు తీసుకోవడం నిరోధించు.</string>
+
+ <string name="preference_category_security">భద్రత</string>
+
+ <string name="preference_category_performance">పనితనం</string>
+ <string name="preference_performance_block_webfonts">జాల ఖతులను (వెబ్ ఫాంట్లను) నిరోధించు</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">దీనివల్ల ప్రతీకాలు లేదా బొమ్మలు కనబడకపోవచ్చు</string>
+
+ <string name="preference_performance_block_javascript">జావాస్క్రిప్టును నిరోధించు</string>
+
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">పేజీలు వేగంగా తెరుచుకోవచ్చు, కానీ అనూహ్యంగా ప్రవర్తించవచ్చు కూడా</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s‌ను అప్రమేయ విహారిణి చేయి</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">వాడుక దత్తాంశాన్ని పంపించు</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">ఇంకా తెలుసుకోండి</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">%1$s‌ని అందరికీ అందించడానికి, మెరుగుపరచడానికి ఎంత తక్కవ అవసరమో అంతే సేకరించడానికి మొజిల్లా కృషిచేస్తుంది.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">గోప్యతా విధానం</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s గురించి</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">స్థాపిత శోధన యంత్రాలు</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">అప్రమేయ శోధన యంత్రాలను పునరుద్ధరించు</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ మరొక సెర్చింజనును చేర్చు</string>
+ <string name="preference_search_remove_title">శోధన యంత్రమును తొలగించు</string>
+ <string name="preference_search_remove">తీసివేయి</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">శోధన యంత్రాన్ని చేర్చు</string>
+
+ <string name="search_add_manually_name_hint">సెర్చింజను పేరు</string>
+ <string name="search_add_manually_string">ఉపయోగించడానికి శోధన వాక్యము</string>
+ <string name="search_add_manually_save">భద్రపరచు</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">ఉదాహరణ: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">క్రొత్త శోధనాయంత్రం చేర్చబడినది.</string>
+
+ <string name="search_add_error_empty_name">శోధన యంత్రం పేరును నమోదు చెయ్యండి</string>
+ <string name="search_add_error_duplicate_name">ఒక్త నిక్షిప్తం చేయబడిన శోధన యంత్రం అదే పేరుతో ఉంది.</string>
+
+ <string name="search_add_error_empty_search">శోధన వాక్యమును నమోదు చేయండి</string>
+
+ <string name="search_add_error_format">శోధన వాక్యము ఉదాహరణ ఆకృతిలో ఉందో లేదో చూడండి</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">ఇన్‌పుట్‌ను తుడిచివేయి</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">విస్మరించు</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">విహరణ చరిత్రను తుడిచేయి</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">తెరిచివున్న ట్యాబులు: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">సురక్షిత అనుసంధానం</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">వస్తోంది</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">వెబ్‌సైటు లోడయింది</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">మరిన్ని ఎంపికలు</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">మరిన్ని ఎంపికల బొత్తం</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">ముందుకు వెళ్ళు</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">వెబ్‌సైటుని మళ్ళీ లోడుచేయి</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">వెనక్కి వెళ్ళు</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">వెబ్‌సైటు లోడుచేయడం ఆపివేయి</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">మునుపటి అనువర్తనానికి తిరిగి వెళ్ళు</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">నిరోధించిన ట్రాకర్ల సంఖ్య</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">ట్రాకర్లను నిరోధించండి</string>
+
+ <string name="your_rights">మీ హక్కులు</string>
+
+ <string name="external_app_prompt_title">ఈ లంకెని మరొక అనువర్తనంలో తెరువు</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">%2$sని తెరువుటకు %1$sని వదలవచ్చును.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">లింక్ను తెరవగల అనువర్తనాన్ని కనుగొనండి</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">మీ పరికరంలోని అనువర్తనాల్లో ఏదీ ఈ లింక్ను తెరవలేకపోతుంది. మీరు చేయగల అనువర్తనం కోసం %2$sను శోధించడానికి %1$sను వదిలివేయవచ్చు.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">అంతరంగిక విహరణను చాలించాలా?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s పూర్తయింది</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">తెరువు</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">సర్వర్ కనుగొనలేదు</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">మీ ప్రైవసీని శక్తిమంతం చేసుకోండి</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">మీ శోధన, మీ మార్గం</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">విభిన్నమైన వాటి కోసం శోధిస్తున్నారా? అమరికాలలో మరొక అప్రమేయ శోధన యంత్రంను ఎంచుకోండి.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">మీ ముంగిలి తెరలో సత్వరమార్గాలను జోడించండి</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">ఆంతరంగికతను అలవాటు చేసుకోండి</string>
+
+ <string name="firstrun_close_button">సరే, అర్థమయ్యింది!</string>
+ <string name="firstrun_skip_button">దాటు</string>
+ <string name="firstrun_next_button">తరువాత</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">చేర్చు</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">అవును</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">రద్దుచేయి</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">వద్దు</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">అంతరంగిక విహరణ సెషను</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">విహరణ చరిత్రను తుడిచివేయి</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefoxను దింపుకోండి</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s అనేది మొజిల్లా, ఇతర తోడ్పాటుదార్లు తయారుచేసిన స్వేచ్ఛా, ఓపెన్ సోర్సు సాఫ్ట్‌వేరు.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">వాడుకరి పేరు</string>
+ <string name="gv_prompt_password_hint">సంకేతపదం</string>
+ <string name="gv_prompt_clear">తుడిచివేయి</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">సురక్షిత అనుసంధానం</string>
+ <string name="security_popup_insecure_connection">అరక్షిత అనుసంధానం</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">దీనిచేత నిర్ధారించబడింది: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">సైటు భద్రత</string>
+ <string name="preference_autocomplete_duplicate_url_error">చిరునామా ఇప్పటికే ఉంది</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">పేజీలో వెతకండి</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">పేజీలో వెతకండి</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">మొత్తం %2$dలో %1$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">తదుపరి ఫలితాన్ని కనుగొనండి</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">మునుపటి ఫలితాన్ని కనుగొనండి</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">డెస్క్‌టాప్ సైటును అభ్యర్థించు</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">డెస్క్‌టాప్ సైటు</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL కాపీ అయ్యింది</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">డెవలపర్ల పనిముట్లు</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">లంకెలను అనువర్తనాలలో తెరువు</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">ఉన్నతం</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">సైటు అనుమతులు</string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">కేమెరా</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">మైక్రోఫోను</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">స్థానం</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-నియంత్రిత విషయం</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">అనుమతిని అడుగు</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">అధ్యయనాలు</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">ఇంకా తెలుసుకోండి</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">తీసివేయి</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">USB/Wi-Fi ద్వారా రిమోట్ డీబగ్గింగ్</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">వేలిముద్ర చిహ్నం</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">వేలిముద్ర గుర్తించబడలేదు. మళ్ళీ ప్రయత్నించండి.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">వేలు చాలా వేగంగా కదిలింది. మళ్ళీ ప్రయత్నించండి.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">వెతుకుడు సలహాలను చూపించాలా?</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">వద్దు</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">అవును</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">కొన్ని సెర్చింజన్లు సలహాలను చూపించలేవు</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">మూసివేయి</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">కొత్త ట్యాబు తెరుచుకుంది</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">మారు</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">లంకె కొత్త ట్యాబులో తెరుచుకున్న తక్షణమే దానికి మారు</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">ప్రమాదకరమైన, మోసపూరిత సైట్లను నిరోధించు</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">HTTPS-మాత్రమే రీతి</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">మినహాయింపులు</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">మీరు ఈ వెబ్‌సైట్లలో విషయ నిరోధాన్ని అచేతనం చేసారు.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">తొలగించు</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">అన్ని వెబ్‌సైట్లను తీసివేయి</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">కుకీలను నిరోధించు</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">మీరు కుకీలను నిరోధించాలనుకుంటున్నారా?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">ట్యాబు క్రాష్ అయ్యింది</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">క్షమించండి. ఈ ట్యాబులో ఏదో సమస్య ఉంది.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">ఒక అంతరంగిక విహారిణిగా, మేము ఈ ట్యాబును భద్రపరచలేదు, దాన్ని పునరుద్ధరించలేము.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">ట్యాబును మూసివేయి</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">క్రాష్ నివేదికను మొజిల్లాకు పంపు</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">%s నుండి నిరోధించిన ట్రాకర్లు</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">సామాజికం</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">అనుసంధానం సురక్షితం</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">నిరోధించాల్సిన ట్రాకర్లు, స్క్రిప్టులు</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">వెనుకకు వెళ్ళు</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">తీసివేయి</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">పేరుమార్చు</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">పేరుమార్చు</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">అలంకారం</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">వెలుతురు</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">చీకటి</string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">ట్యాబును మూసివేయి</string>
+
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">విస్మరించు</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-tg/strings.xml b/mobile/android/focus-android/app/src/main/res/values-tg/strings.xml
new file mode 100644
index 0000000000..9944640060
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-tg/strings.xml
@@ -0,0 +1,1086 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Бекор кардан</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ХУБ</string>
+
+ <string name="action_save">Нигоҳ доштан</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Нишониеро ҷустуҷӯ кунед ё ворид намоед</string>
+
+ <string name="teaser">Тамошокунии хусусии худкор.\nТамошо кунед. Пок созед. Такрор намоед.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Таърихи тамошои шумо пок карда шуд.</string>
+ <string name="feedback_erase2">Таърихи тамошо пок карда шуд</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Таърихи тамошо дар варақа пок карда шуд.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Ҷустуҷӯи «%1$s»</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Мубодила…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Гузориш дар бораи мушкилии сомона</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Кушодан дар «%1$s»</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Кушодан дар…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Илова кардан ба экрани асосӣ</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Илова кардан ба миёнбурҳо</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Тоза кардан аз миёнбурҳо</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Танзимот</string>
+ <string name="menu_about">Дар бораи барнома</string>
+ <string name="menu_help">Кумак</string>
+ <string name="menu_rights">Ҳуқуқҳои шумо</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Васоити пайгирии манъшуда</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Хомӯш кардани ин васила метавонад баъзе мушкилиҳои сомонаро ҳал кунад</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Манъкунии муҳтаво</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Барои ҳал кардани баъзе мушкилиҳои сомона ин василаро хомӯш кунед</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Дар %1$s асос меёбад</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Мубодила тавассути</string>
+
+ <string name="notification_erase_title_android_14">Таърихи тамошоро пок мекунед?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Барои ба таври бехатар пок кардани таърихи тамошо, лутфан, ба ин огоҳнома зер кунед ё онро тоза намоед.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Барои ба таври бехатар пок кардани таърихи тамошо, лутфан, ба ин огоҳнома зер кунед ё онро бо ангуш молед.</string>
+
+ <string name="notification_erase_text">Пок кардани таърихи тамошо</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Кушодан</string>
+
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Пок кардан ва кушодан</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Пок кардан</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Пок кардани таърихи тамошо</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Пок кардан ва кушодан</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Пок кардан ва кушодани «%1$s»</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Ҷустуҷӯ дар «Focus»</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Ҷустуҷӯ дар «Klar»</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Ҷустуҷӯ дар «Focus Beta»</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Ҷустуҷӯ дар «Focus Nightly»</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>«%1$s» ба шумо идора медиҳад.</p>
+<p>Онро ҳамчун браузери хусусӣ истифода баред:
+ <ul>
+ <li>Ҷустуҷӯ кунед ва рост дар дохили барнома тамошо намоед</li>
+ <li>Васоити пайгириро манъ кунед (ё танзимотро иваз карда, ба васоити пайгирӣ иҷозат диҳед)</li>
+ <li>Кукиҳоро нест кунед, аз он ҷумла таърихи ҷустуҷӯ ва тамошоро пок намоед</li>
+ </ul>
+</p>
+<p>«%1$s» аз ҷониши «Mozilla» истеҳсол карда шудааст. Мақсади мо дар мусоидат ба Интернети солим ва кушод мебошад.<br/>
+<a href="%2$s">Маълумоти бештар</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Махфият ва амният</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Пайгирӣ, кукиҳо, интихоби маълумот</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Танзими пешфарз, пуркунии худкор</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Дар бораи «%1$s», кумак</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Муҳофизати такмилёфта аз пайгирӣ</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Муҳтавои сомона</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Мубодилаи барномаҳо</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Умумӣ</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Браузери пешфарз, забон</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Ҷамъоварӣ ва истифодабарии маълумот</string>
+
+ <string name="preference_category_search">Ҷустуҷӯ</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Гирифтани пешниҳоди ҷустуҷӯ</string>
+
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">«%1$s» он чизеро, ки шумо дар навори нишонӣ менависед, ба низоми ҷустуҷӯии шумо мефиристад</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Пешфарз</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Низоми ҷустуҷӯӣ</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Фаъол</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Ғайрифаъол</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Нишонии URL-и пуркунии худкор</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Барои сомонаҳои воло</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Фаъол созед, то ки «%s» тавонад зиёда аз 450 нишонии URL-и роиҷро дар навори нишонӣ ба таври худкор пур кунад.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Барои сомонаҳое, ки шумо илова мекунед</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Фаъол созед, то ки «%s» тавонад нишониҳои URL-и дилхоҳи шуморо ба таври худкор пур кунад.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Идоракунии сомонаҳо</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Идоракунии сомонаҳо</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Илова кардани нишонии URL-и фармоишӣ</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Рӯйхати шумо барои пуркунии худкор</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Илова кардани нишонии URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Илова кардани нишонии URL-и фармоишӣ</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Илова кардани нишонии URL-и фармоишӣ</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Илова кардани пайванд барои пуркунии худкор</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Кукиҳо ва иттилооти сомона</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Интихоби маълумот</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Тоза кардани нишониҳои URL-и фармоишӣ</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Маълумоти бештар</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Нишониҳои URL-и фармоиширо барои пуркунии худкор илова ва идора намоед.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Нишонии URL, ки илова мешавад</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Нишонии URL-ро гузоред ё ворид намоед</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Мисол: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Мисол: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Нишонии URL-и фармоишии нав илова карда шуд.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Тоза кардан</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Тоза кардан</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Нишонии URL-ро, ки шумо ворид кардед, такроран санҷед.</string>
+
+ <string name="preference_language">Забон</string>
+
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Забони низоми асосӣ</string>
+
+ <string name="preference_category_privacy">Махфият</string>
+
+ <string name="preference_privacy_block_ads">Манъ кардани васоити пайгирии рекламавӣ</string>
+ <string name="preference_privacy_block_ads_summary">Баъзе реклама ва таблиғот боздидҳои сомонаҳои шуморо пайгирӣ мекунад, ҳатто агар шумо ба он реклама ва таблиғот зер накунед</string>
+ <string name="preference_privacy_block_analytics">Манъ кардани васоити пайгирии таҳлилӣ</string>
+ <string name="preference_privacy_block_analytics_summary">Барои ҷамъоварӣ, таҳлил ва чен кардани фаъолиятҳои монанд ба зеркунӣ ва ҳаракаткунӣ дар экран истифода мешавад</string>
+ <string name="preference_privacy_block_social">Манъ кардани васоити пайгирии иҷтимоӣ</string>
+ <string name="preference_privacy_block_social_summary">Ба сомонаҳо барои пайгирӣ кардани боздидҳои шумо ва намоиш додани вазифаҳои монанд ба тугмаҳои «Мубодила» дарунсохт карда мешаванд</string>
+ <string name="preference_privacy_block_content">Манъ кардани васоити пайгирии муҳтавои дигар</string>
+ <string name="preference_privacy_block_content_summary2">Фаъолсозии ин вазифа метавонад дар баъзе саҳифаҳо рафтори тасодуфию пешбининопазир ба вуҷуд орад</string>
+ <string name="preference_privacy_category_cookies">Манъ кардани кукиҳо</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Не, ташаккур</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Манъ кардани танҳо кукиҳои васоити пайгирии тарафҳои сеюм</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Манъ кардани танҳо кукиҳои тарафҳои сеюм</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Манъ кардани кукиҳои байнисомонавӣ</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ҳа, қабул</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Истифодаи нақши ангуштон барои кушодани барнома</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Кушодани барнома бо истифодаи нақши ангуштон, агар шумо Миёнбурҳоро илова карда бошед ё вақте ки сомона аллакай дар «%s» кушода бошад.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Махфӣ</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Пинҳон кардани саҳифаҳои сомона ҳангоми ивазкунии барномаҳо ва манъ кардани гирифтани акси экран.</string>
+
+ <string name="preference_category_security">Амният</string>
+
+ <string name="preference_category_performance">Самаранокӣ</string>
+
+ <string name="preference_performance_block_webfonts">Манъ кардани ҳуруфи интернетӣ</string>
+
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Фаъолсозии ин вазифа метавонад боиси гумшавии нишонаҳо ва тасвирҳо гардад</string>
+
+ <string name="preference_performance_block_javascript">Манъ кардани JavaScript</string>
+
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Саҳифаҳо метавонанд тезтар кушода шаванд, аммо, инчунин, онҳо метавонанд бо рафтори тасодуфию пешбининопазир кор кунанд</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Гузоштани «%1$s» ҳамчун браузери пешфарз</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Фиристодани маълумоти истифодабарӣ</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Маълумоти бештар</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">«Mozilla» cаъю кӯшиш мекунад, ки танҳо он маълумотеро ҷамъоварӣ намояд, ки мо бояд барои фаъолият ва беҳтарсозии «%1$s» барои ҳар як кас таъмин намоем.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Огоҳномаи махфият</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Маълумот дар бораи иҷозатнома</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Китобхонаҳое, ки мо истифода мебарем</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Китобхонаҳои OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Дар бораи «%1$s»</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Низомҳои ҷустуҷӯии насбшуда</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Интихоби низоми ҷустуҷӯӣ</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Барқарор кардани низоми ҷустуҷӯии пешфарз</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Илова кардани низоми ҷустуҷӯии дигар</string>
+ <string name="preference_search_remove_title">Тоза кардани низомҳои ҷустуҷӯӣ</string>
+ <string name="preference_search_remove">Тоза кардан</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Илова кардани низоми ҷустуҷӯии дигар</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Низоми ҷустуҷӯии дилхоҳи худро интихоб намоед:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Илова кардани низоми ҷустуҷӯӣ</string>
+
+ <string name="search_add_manually_name_hint">Номи низоми ҷустуҷӯӣ</string>
+ <string name="search_add_manually_string">Сатри ҷустуҷӯ барои истифода</string>
+ <string name="search_add_manually_save">Нигоҳ доштан</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Мисол: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Низоми ҷустуҷӯии нав илова шуд.</string>
+
+ <string name="search_add_error_empty_name">Номи низоми ҷустуҷӯиро ворид намоед</string>
+
+ <string name="search_add_error_duplicate_name">Низоми ҷустуҷӯии насбшуда аллакай ин номро истифода мебарад.</string>
+
+ <string name="search_add_error_empty_search">Сатри ҷустуҷӯро ворид кунед</string>
+
+ <string name="search_add_error_format">Тафтиш кунед, ки сатри ҷустуҷӯ ба шакли намунавӣ мувофиқат мекунад</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Пок кардани матн</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Нодида гузарондан</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Пок кардани таърихи тамошо</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Шумораи варақаҳои кушода: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Пайвасти боэътимод</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Бор шуда истодааст</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Сомона бор карда шуд</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Имконоти бештар</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Тугмаи имконоти бештар</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Ба пеш</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Аз нав бор кардани сомона</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Ба қафо гузаштан</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Қатъ кардани боркунии сомона</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Бозгашт ба барномаи қаблӣ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Шумораи васоити пайгирии манъшуда</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Манъ кардани васоити пайгирӣ</string>
+
+ <string name="your_rights">Ҳуқуқҳои шумо</string>
+
+ <string name="external_app_prompt_title">Кушодани пайванд дар барномаи дигар</string>
+
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Шумо метавонед аз «%1$s» бароед, то ки ин пайванд дар «%2$s» кушода шавад.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Барномаеро ёбед, ки метавонад ин пайвандро кушояд</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Ҳеҷ яке аз барномаҳои дастгоҳи шумо ин пайвандро кушода наметавонад. Шумо метавонед аз «%1$s» бароед ва барномаи мувофиқро тавассути «%2$s» ҷустуҷӯ кунед.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Аз тамошокунии махфӣ мебароед?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">«%1$s» анҷом ёфт</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Кушодан</string>
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Ба миёнбурҳо илова карда шуд!</string>
+
+ <string name="error_hostLookup_title">Сервер ёфт нашуд</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Пӯшидан</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Хуш омадед ба «%1$s»</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Тезкор. Хусусӣ. Бе саргармии бегона.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Оғози кор</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">Дар ҷаҳон мисли «%1$s» ягон браузери дигар нест</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Барои баланд бардоштани сатҳи махфият, вақте ки шумо барномаро мепӯшед, мо таърихи тамошои шуморо тоза мекунем.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Барои муҳофизат кардани маълумоти худ, ҳангоми кушодани ҳар як пайванд, аз браузери «%1$s» ба сурати пешфарз истифода баред.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Гузоштан ҳамчун браузери пешфарз</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Нодида гузарондан</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Махфияти худро тақвият диҳед</string>
+
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Тамошокунии хусусиро ба сатҳи нав баланд бардоред. Таблиғоту реклама ва муҳтавои дигареро, ки метавонад шуморо байни сомонаҳо пайгирӣ кунад ва вақти кушодани саҳифаҳоро хеле суст намоянд, манъ кунед.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Ҷустуҷӯи шумо, Интернети шумо</string>
+
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Дар ҷустуҷӯи чизи дигар қарор доред? Низоми ҷустуҷӯии дигареро дар Танзимот интихоб карда, ба таври пешфарз истифода баред.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Миёнбурҳоро ба экрани асосӣ илова намоед</string>
+
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Ба воситаи «%1$s» ба сомонаҳои дӯстдоштаи худ тез баргардед. Танҳо аз менюи «%1$s» имкони «Илова кардан ба экрани асосӣ»-ро интихоб намоед.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Махфиятро ба одати худ табдил диҳед</string>
+
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">«%1$s»-ро ҳамчун браузери пешфарзи худ танзим карда, истифода баред ва ҳамаи афзалиятҳои тамошокунии хусусиро ҳангоми кушодани саҳифаҳои сомонаҳо аз барномаҳои дигар ба даст оред.</string>
+
+ <string name="firstrun_close_button">Хуб, фаҳмидам!</string>
+ <string name="firstrun_skip_button">Нодида гузарондан</string>
+ <string name="firstrun_next_button">Навбатӣ</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Илова кардан</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ҲА</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Бекор кардан</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">НЕ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Миёнбур бе фаъолсозии «Муҳофизати такмилёфта аз пайгирӣ» кушода мешавад</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Ҷаласаи тамошокунии хусусӣ</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Огоҳномаҳо ба шумо имкон медиҳанд, то тавонед ҷаласаи худро дар «%1$s» бо як ламс тоза намоед. Ба шумо лозим нест, ки браузери худро кушоед ва бинед, ки дар он чӣ иҷро шуда истодааст.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Пок кардани таърихи тамошо</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Боргирӣ кардани «Firefox»</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[Браузери «%1$s» нармафзори ройгон ва бо манбаи кушод буда, аз ҷониби «Mozilla» ва саҳмгузорони дигар таҳия карда шудааст.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[Браузери «%1$s» тибқи шартҳои <a href="%2$s">Иҷозатномаи ҷамъиятии «Mozilla»</a> ва иҷозатномаҳои манбаи кушоди дигар ба шумо барои истифода дастрас шудааст.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Ба шумо нисбат ба тамғаҳои тиҷории «Mozilla Foundation» ё ягон тарафи дигар, аз он ҷумла,
+бе маҳдудият нисбат ба тамға ё номи «Mozilla», «Firefox» or «%1$s» ягон ҳуқуқи тамғаи тиҷорӣ ё иҷозатномавӣ таъмин нашудааст. Маълумоти иловагӣ метавонад <a href="%2$s">дар ин ҷо</a> пайдо карда шавад.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Рамзи манбаи иловагӣ барои «%1$s» дар таҳти <a href="%2$s">иҷозатномаҳои</a> гуногуни дигари манбаи кушод ва ройгон дастрас аст.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[«%1$s», инчунин, аз рӯйхатҳои манъкуние, ки аз ҷониби «Disconnect, Inc.» таъмин шудаанд, ҳамчун корҳои алоҳида ва мустақил дар таҳти <a href="%2$s">Иҷозатномаи ҷамъиятии умумии GNU v3</a> истифода мебарад ва рӯйхати мазкур <a href="%3$s">дар ин ҷо</a> дастрас аст.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Номи корбар</string>
+ <string name="gv_prompt_password_hint">Ниҳонвожа</string>
+ <string name="gv_prompt_clear">Пок кардан</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Пайвасти боэътимод</string>
+ <string name="security_popup_insecure_connection">Пайвасти беэътимод</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Тасдиқ аз ҷониби: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Амнияти сомона</string>
+ <string name="preference_autocomplete_duplicate_url_error">Нишонии URL аллакай вуҷуд дорад</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Ҷустуҷӯ дар саҳифа</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Ҷустуҷӯ дар саҳифа</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d аз %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Ҷустуҷӯи натиҷаи навбатӣ</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Ҷустуҷӯи натиҷаи қаблӣ</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Қатъ кардани ҷустуҷӯ дар саҳифа</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Дархост кардани версияи пурраи сомона</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Нусха барои компютери мизи корӣ</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Нишонии URL нусха бардошта шуд</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Абзорҳои барномасозӣ</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Кушодани пайвандҳо дар барномаҳо</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Иловагӣ</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Иҷозатҳои сомона</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Маҳдудкунии баннери куки</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Фаъол</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Ғайрифаъол</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Маҳдудкунии баннери куки</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Ба қадри имкон, дархостҳои кукиҳоро ба таври худкор рад кунед, то ки шумораи намоиши баннерҳо кам карда шавад.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Маҳдудкунии баннери куки</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Барои ин сомона фаъол аст</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Ин сомона дар айни замон дастгирӣ намешавад</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Барои ин сомона ғайрифаъол аст</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Маҳдудкунии баннери куки</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Барои ин сомона ғайрифаъол аст</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Барои ин сомона фаъол аст</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">«Маҳдудкунии баннери куки»-ро барои %1$s фаъол месозед?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">«Маҳдудкунии баннери куки»-ро барои %1$s хомӯш месозед?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s кукиҳои ин сомонаро тоза мекунад ва саҳифаро аз нав бор мекунад. Амали тозакунии ҳамаи кукиҳо метавонад шуморо аз сомона хориҷ кунад ва сабадҳои харидории шуморо холӣ намояд.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">«%1$s» метавонад кӯшиш кунад, ки дархостҳои кукиҳоро ба таври худкор рад кунад.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Айни ҳол ин сомона аз тарафи «Маҳдудкунии баннери куки» дастгирӣ намешавад. Шумо мехоҳед, ки аз дастаи мо дархост кунед, ки он ин сомонаро бозбинӣ кунад ва онро барои дастгирӣ дар оянда илова намояд?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Бекор кардан</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Дархост кардани дастгирӣ</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Дархост барои дастгирӣ кардани сомонаи пешниҳодшуда.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Дархост барои дастгирӣ кардани сомонаи пешниҳодшуда.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">Барои қатъ кардани намоиши баннерҳои кукии безоркунанда, «%1$s» кӯшиш мекунад, ки дархостҳои кукиҳоро рад намояд.\n\nХусусиятҳои баннери кукиҳоро дар «%2$s» идора кунед.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">танзимот</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Пахши худкор</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Барои иҷозат додан:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Ба Танзимоти Android гузаред</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. <b>Иҷозатҳо</b>-ро зер кунед]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Ба Танзимот гузаред</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. <b>%1$s</b>-ро ба ФАЪОЛ иваз намоед]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Камера</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Микрофон</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Ҷойгиршавӣ</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Огоҳнома</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Муҳтавои идорашавандаи DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Дархости иҷозат</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Манъ карда мешавад</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Иҷозат дода мешавад</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Аз тарафи «Android» манъ карда шуд</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Иҷозат додани аудио ва видео</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Бастани танҳои аудио</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Тавсияшуда</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Бастани аудио ва видео</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Омӯзишҳо</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Баъзе вақт «Firefox» метавонад омӯзишҳоро насб ва иҷро намояд.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Маълумоти бештар</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Барои татбиқ кардани тағйирот барнома пӯшида мешавад</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Тоза кардан</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Фаъол</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Ба анҷом расид</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Ислоҳкунии дурдасти хатоҳо тавассути SB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Кушодани қулф</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Истифодаи нақши ангушти худро тасдиқ намоед</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Барои идома додани кор бо ҷаласаи ҷории барнома, шумо метавонед аз нақши ангушти худ истифода баред.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Кушодани пайванд дар ҷаласаи нав</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Нишони нақши ангуштон</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Нақши ангушт шинохта нашуд. Аз нав кӯшиш кунед.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Ангушт хеле тез ҳаракат кард. Аз нав кӯшиш кунед.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Пешниҳодҳои ҷустуҷӯ нишон дода шаванд?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Барои намоиш додани пешниҳодҳои ҷустуҷӯ, «%1$s» бояд он чизеро, ки шумо дар навори нишонӣ менависед ба низоми ҷустуҷӯӣ ирсол кунад.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Не</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Ҳа</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Баъзе низомҳои ҷустуҷӯӣ пешниҳодҳоро нишон дода наметавонанд.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Нодида гузарондан</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Сомона бо рафтори тасодуфию пешбининопазир кор мекунад?\n
+ Имкони «Муҳофизат аз пайгирӣ»-ро хомӯш кунед</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Ба сомонаҳое, ки шумо аз ҳама бештар истифода мебаред, дастрасии яклаҳзагӣ пайдо намоед%1$s Меню > Илова кардан ба экрани асосӣ]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Ҳар як пайвандро дар «%1$s» кушоед\n
+ Браузери «%1$s»-ро ҳамчун барномаи пешфарз танзим карда, истифода баред
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Пуркунии худкори нишонаҳои URL барои сомонаҳои писандида\n
+ Нишонии URL-и дилхоҳро ба муддати дароз дар навори нишонӣ пахш кунед
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Пайвандеро дар варақаи нав кушоед\n
+ Ҳар як пайванди саҳифаро ба муддати дароз пахш намоед
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Хомӯш кардани маслиҳатҳо дар экрани оғози кор</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Варақаи нав кушода шуд</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Қатъу васл кардан</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Ба реҷаи экрани пурра ворид шуда истодааст</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Гузариши фаврӣ ба пайванди кушодашуда дар варақаи нав</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Манъ кардани муҳтавои зараровар ва сомонаҳои қалбакии имконпазир</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Манъ кардани сомонаҳои фиребанда ва ҳамлакунанда, сомонаҳои зараровар ва сомонаҳо бо нармафзори беҳуда.</string>
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Реҷаи «Танҳо HTTPS»</string>
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Ба таври худкор кӯшиш мекунад, ки ба сомонаҳо бо истифода аз протоколи рамзгузории HTTPS барои баланд бардоштани амният пайваст шавад.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Истисноҳо</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Шумо имкони манъкунии муҳтаво барои сомонаҳои мазкур ғайрифаъол кардед.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Тоза кардан</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Тоза кардани ҳамаи сомонаҳо</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Манъ кардани кукиҳо</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Шумо мехоҳед, ки кукиҳоро манъ кунед?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Варақа вайрон шуд</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Бубахшед. Барои ин варақа мушкилӣ ба миён омад.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Ҳамчун браузери хусусӣ, мо ҳеҷ вақт маълумоти варақаро нигоҳ намедорем ва онро барқарор карда наметавонем.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Пӯшидани варақа</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Фиристодани гузориш дар бораи вайронӣ ба Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Шумораи васоити пайгирии манъшуда аз санаи %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Муҳтаво</string>
+
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Реклама</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Иҷтимоӣ</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Таҳлил</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Муҳофизати такмилёфта аз пайгирӣ</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Муҳофизат барои ин сомона ғайрифаъол аст</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Муҳофизат барои ин сомона фаъол аст</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Пайвастшавӣ бехатар аст</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Пайвастшавӣ бехатар нест</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Васоити пайгирӣ ва скриптҳое, ки манъ карда мешаванд</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Бозгашт</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Тоза кардан</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Иваз кардани ном</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Иваз кардани ном</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Номи миёнбур</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Вақте ки шумо таърихи «%1$s»-ро тоза мекунед, тасвирҳои нигоҳдошташуда ва мубодилашуда &lt;b&gt;нест карда намешаванд&lt;/b&gt;</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Мавзуъ</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Равшан</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Торик</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Аз ҷониби сарфаи батарея муқаррар карда шудааст</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Дар мавзуи дастгоҳ асос меёбад</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Ин сомона пайвасти «HTTPS»-ро дастгирӣ намекунад</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[Барои бехатарии бештар, «%1$s» кӯшиш мекунад, ки аз пайвасти «HTTPS» ба қадри имкон истифода барад.
+ <a href="%2$s">Маълумоти бештар</a> <br/><br/>
+ Шумо метавонед ин танзимро дар Танзимот > Махфият ва амният > Бехатарӣ иваз кунед.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Пайвастшавӣ бехатар нест</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Ин метавонад дар танзимоти сервер мушкилӣ дошта бошад ё касе кӯшиш мекунад, ки серверро тақаллуб намояд. <br/><br/>
+ Агар шумо қаблан ба ин сервер бо муваффақият пайваст шуда бошед, эҳтимол ин хато муваққатӣ аст ва шумо метавонед баъдтар амалро аз нав кӯшиш намоед.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Касе метавонад тақаллуб кардани сомонаро кӯшиш намояд ва идомаи кор бо ин сомона хатарнок аст.</label>
+ <br><br>
+ <label>«%1$s» ба <b>%2$s</b> эътимод надорад, зеро барорандаи гувоҳнома номаълум аст, гувоҳнома ба таври худ имзо гузоштааст ё сервер гувоҳномаҳои фосилавии дурустро намефиристад.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Пӯшидани варақа</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Қапидем! Мо ин сомонаро манъ кардем, то ки аз қафои шумо ҷосусӣ накунад. Барои дидани он чизеро, ки мо манъ карда истодаем, дар вақти дилхоҳ ба сипар зер кунед.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Пӯшидани равзанаҳои зоҳиршаванда</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Мо шуморо муҳофизат мекунем!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Ҳамин танзимоти пешфарз муҳофизати пурқувватро пешниҳод мекунанд. Аммо шумо метавонед танзимоти пешниҳодшударо мувофиқи ниёзҳои хусусии худ ба осони иваз намоед.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Нодида гузарондан</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Дар ин ҷо зер кунед, то ки ҳамааш нест карда шавад — таърих, кукиҳо, ҳама чиз — ва пас бо варақаи нав тамошои тозаи худро оғоз намоед.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Пӯшидан</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Виҷети ҷустуҷӯ</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Таърихи тамошо пок карда шуд! 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Ҷаласаи тамошокунии хусусиро оғоз намоед ва мо васоити пайгирӣ ва дигар чизҳои зарароварро аз роҳи шумо тоза мекунем.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Мо шуморо ба тамошокунии хусусӣ ворид мекунем, аммо дар оянда браузери худро ба воситаи виҷети «%1$s» аз экрани асосии худ зудтар оғоз намоед.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Илова кардани виҷет ба экрани асосӣ</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Виҷет ба экрани асосӣ илова карда шуд</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-th/strings.xml b/mobile/android/focus-android/app/src/main/res/values-th/strings.xml
new file mode 100644
index 0000000000..f2272faa3e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-th/strings.xml
@@ -0,0 +1,1119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">ยกเลิก</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ตกลง</string>
+
+ <string name="action_save">บันทึก</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">ค้นหาหรือป้อนที่อยู่</string>
+
+ <string name="teaser">ท่องเว็บแบบส่วนตัวโดยอัตโนมัติ\nท่องเว็บ ล้าง ทำซ้ำ</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">ล้างประวัติการท่องเว็บของคุณแล้ว</string>
+ <string name="feedback_erase2">ล้างประวัติการท่องเว็บแล้ว</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">ล้างประวัติการท่องเว็บของแท็บแล้ว</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">ค้นหา %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">แบ่งปัน…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">รายงานปัญหาไซต์</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">เปิดใน %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">เปิดใน…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">เพิ่มไปยังหน้าจอหลัก</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">เพิ่มทางลัด</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">ลบออกจากคำสั่งลัด</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">การตั้งค่า</string>
+ <string name="menu_about">เกี่ยวกับ</string>
+ <string name="menu_help">ช่วยเหลือ</string>
+ <string name="menu_rights">สิทธิของคุณ</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">ตัวติดตามที่ถูกปิดกั้น</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">การปิดสิ่งนี้อาจแก้ปัญหาไซต์บางอย่าง</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">การปิดกั้นเนื้อหา</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">ปิดเพื่อแก้ไขไซต์บางส่วน</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">ขับเคลื่อนโดย %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">แบ่งปันผ่าน</string>
+
+ <string name="notification_erase_title_android_14">ล้างประวัติการท่องเว็บ?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">แตะหรือล้างการแจ้งเตือนนี้เพื่อลบประวัติการท่องเว็บของคุณอย่างปลอดภัย</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">แตะหรือปัดการแจ้งเตือนนี้เพื่อลบประวัติการเรียกดูของคุณอย่างปลอดภัย</string>
+
+ <string name="notification_erase_text">ล้างประวัติการท่องเว็บ</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">เปิด</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">ล้างแล้วเปิด</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">ล้าง</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">ล้างประวัติการท่องเว็บ</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">ล้างแล้วเปิด</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">ล้างแล้วเปิด %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">ค้นหาใน Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">ค้นหาใน Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">ค้นหาใน Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">ค้นหาใน Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s ให้คุณควบคุมได้ทุกอย่าง</p>
+<p>ใช้เป็นเบราว์เซอร์ส่วนตัว:
+ <ul>
+ <li>ค้นหาและเรียกดูได้จากในแอปโดยตรง</li>
+ <li>ปิดกั้นตัวติดตาม (หรืออัปเดตการตั้งค่าเพื่ออนุญาตตัวติดตาม)</li>
+ <li>ล้างเพื่อลบคุกกี้รวมทั้งประวัติการค้นหาและการเรียกดู</li>
+ </ul>
+</p>
+<p>%1$s ถูกสร้างขึ้นโดย Mozilla ภารกิจของเราคือส่งเสริมอินเทอร์เน็ตที่สมบูรณ์และเปิดกว้าง<br/>
+<a href="%2$s">เรียนรู้เพิ่มเติม</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">ความเป็นส่วนตัวและความปลอดภัย</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">การติดตาม, คุกกี้, ทางเลือกข้อมูล</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">ตั้งค่าเริ่มต้น, การเติมอัตโนมัติ</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">เกี่ยวกับ %1$s, ช่วยเหลือ</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">การป้องกันการติดตามแบบพิเศษ</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">เนื้อหาเว็บ</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">การสลับแอป</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">ทั่วไป</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">เบราว์เซอร์เริ่มต้น, ภาษา</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">การเก็บรวบรวมและใช้ข้อมูล</string>
+
+ <string name="preference_category_search">ค้นหา</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">รับข้อเสนอแนะการค้นหา</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s จะส่งสิ่งที่คุณพิมพ์ในแถบที่อยู่ไปยังเครื่องมือค้นหาของคุณ</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">ค่าเริ่มต้น</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">เครื่องมือค้นหา</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">เปิด</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">ปิด</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">การเติม URL อัตโนมัติ</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">สำหรับไซต์เด่น</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">เปิดใช้งานเพื่อให้ %s เติมมากกว่า 450 URL ยอดนิยมโดยอัตโนมัติในแถบที่อยู่</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">สำหรับไซต์ที่คุณเพิ่ม</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">เปิดใช้งานเพื่อให้ %s เติม URL โปรดของคุณโดยอัตโนมัติ</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">จัดการไซต์</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">จัดการไซต์</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ เพิ่ม URL ที่กำหนดเอง</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">รายการเติมอัตโนมัติของคุณ:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">เพิ่ม URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">เพิ่ม URL ที่กำหนดเอง</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">เพิ่ม URL ที่กำหนดเอง</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">เพิ่มลิงก์ไปยังการเติมอัตโนมัติ</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">คุกกี้และข้อมูลไซต์</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">ทางเลือกข้อมูล</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">เอา URL ที่กำหนดเองออก</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">เรียนรู้เพิ่มเติม</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">เพิ่มและจัดการ URL เติมอัตโนมัติที่กำหนดเอง</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL ที่จะเพิ่ม</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">วางหรือป้อน URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">ตัวอย่าง: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">ตัวอย่าง: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">เพิ่ม URL ที่กำหนดเองใหม่แล้ว</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">เอาออก</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">เอาออก</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">ตรวจสอบ URL ที่คุณป้อนอีกครั้ง</string>
+
+ <string name="preference_language">ภาษา</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">ค่าเริ่มต้นของระบบ</string>
+
+ <string name="preference_category_privacy">ความเป็นส่วนตัว</string>
+ <string name="preference_privacy_block_ads">ปิดกั้นตัวติดตามของโฆษณา</string>
+ <string name="preference_privacy_block_ads_summary">โฆษณาบางตัวติดตามการเยี่ยมชมไซต์ แม้ว่าคุณไม่ได้คลิกโฆษณา</string>
+ <string name="preference_privacy_block_analytics">ปิดกั้นตัวติดตามของการวิเคราะห์</string>
+ <string name="preference_privacy_block_analytics_summary">ใช้เพื่อเก็บรวบรวม วิเคราะห์ และวัดกิจกรรมอย่างการแตะและการเลื่อน</string>
+ <string name="preference_privacy_block_social">ปิดกั้นตัวติดตามทางสังคม</string>
+ <string name="preference_privacy_block_social_summary">ฝังอยู่ในไซต์เพื่อติดตามการเยี่ยมชมของคุณและแสดงผลฟังก์ชันการทำงานอย่างปุ่มแบ่งปัน</string>
+ <string name="preference_privacy_block_content">ปิดกั้นตัวติดตามของเนื้อหาอื่น ๆ</string>
+ <string name="preference_privacy_block_content_summary2">การเปิดใช้งานอาจส่งผลให้หน้าบางส่วนทำงานอย่างไม่คาดคิด</string>
+ <string name="preference_privacy_category_cookies">ปิดกั้นคุกกี้</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">ไม่ ขอบคุณ</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">ปิดกั้นคุกกี้ของตัวติดตามจากบุคคลที่สามเท่านั้น</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">ปิดกั้นคุกกี้จากบุคคลที่สามเท่านั้น</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">ปิดกั้นคุกกี้ข้ามไซต์</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">ใช่ ได้โปรด</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">ใช้ลายนิ้วมือเพื่อปลดล็อคแอป</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">ปลดล็อกโดยใช้ลายนิ้วมือหากคุณได้เพิ่มทางลัดหรือเมื่อเว็บไซต์เปิดอยู่ใน %s แล้ว</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">การพรางตัว</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">ซ่อนหน้าเว็บเมื่อสลับแอปและปิดกั้นการจับภาพหน้าจอ</string>
+
+ <string name="preference_category_security">ความปลอดภัย</string>
+
+ <string name="preference_category_performance">ประสิทธิภาพ</string>
+ <string name="preference_performance_block_webfonts">ปิดกั้นแบบอักษรเว็บ</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">อาจส่งผลให้ไอคอนหรือภาพขาดหายไป</string>
+
+ <string name="preference_performance_block_javascript">ปิดกั้น JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">หน้าอาจโหลดเร็วขึ้น แต่อาจทำงานอย่างไม่คาดคิด</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">ทำให้ %1$s เป็นเบราว์เซอร์เริ่มต้น</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">ส่งข้อมูลการใช้งาน</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">เรียนรู้เพิ่มเติม</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla มุ่งมั่นที่จะเก็บรวบรวมเฉพาะสิ่งที่เราจำเป็นต้องให้บริการและปรับปรุง %1$s สำหรับทุกคน</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">ประกาศความเป็นส่วนตัว</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">ข้อมูลสัญญาอนุญาต</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">ไลบรารีที่เราใช้</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | ไลบรารี OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">เกี่ยวกับ %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">เครื่องมือค้นหาที่ติดตั้งไว้</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">เลือกเครื่องมือค้นหา</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">เรียกคืนเครื่องมือค้นหาเริ่มต้น</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ เพิ่มเครื่องมือค้นหาอื่น</string>
+ <string name="preference_search_remove_title">เอาเครื่องมือค้นหาออก</string>
+ <string name="preference_search_remove">เอาออก</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">เพิ่มเครื่องมือค้นหาอื่น</string>
+
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">เลือกเครื่องมือที่คุณต้องการ:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">เพิ่มเครื่องมือค้นหา</string>
+
+ <string name="search_add_manually_name_hint">ชื่อเครื่องมือค้นหา</string>
+ <string name="search_add_manually_string">สตริงการค้นหาที่จะใช้</string>
+ <string name="search_add_manually_save">บันทึก</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">ตัวอย่าง: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">เพิ่มเครื่องมือค้นหาใหม่แล้ว</string>
+
+ <string name="search_add_error_empty_name">ป้อนชื่อเครื่องมือค้นหา</string>
+ <string name="search_add_error_duplicate_name">เครื่องมือค้นหาที่ติดตั้งไว้กำลังใช้ชื่อนั้นอยู่แล้ว</string>
+
+ <string name="search_add_error_empty_search">ป้อนสตริงการค้นหา</string>
+
+ <string name="search_add_error_format">ตรวจสอบว่าสตริงการค้นหาตรงกับรูปแบบตัวอย่าง</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">ล้างข้อมูลที่ป้อน</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">ยกเลิก</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">ล้างประวัติการท่องเว็บ</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">แท็บที่เปิดอยู่: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">การเชื่อมต่อปลอดภัย</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">กำลังโหลด</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">โหลดเว็บไซต์แล้ว</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">ตัวเลือกเพิ่มเติม</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">ปุ่มตัวเลือกเพิ่มเติม</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">นำทางเดินหน้า</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">โหลดเว็บไซต์ใหม่</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">นำทางย้อนกลับ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">หยุดการโหลดเว็บไซต์</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">กลับไปที่แอปก่อนหน้า</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">จำนวนตัวติดตามที่ถูกปิดกั้น</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">ปิดกั้นตัวติดตาม</string>
+
+ <string name="your_rights">สิทธิของคุณ</string>
+
+ <string name="external_app_prompt_title">เปิดลิงก์ในแอปอื่น</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">คุณสามารถออกจาก %1$s เพื่อเปิดลิงก์นี้ใน %2$s</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">ค้นหาแอปที่สามารถเปิดลิงก์</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">ไม่มีแอปในอุปกรณ์ของคุณที่สามารถเปิดลิงก์นี้ คุณสามารถออกจาก %1$s เพื่อค้นหา %2$s สำหรับแอปที่สามารถทำได้</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">ออกจากการท่องเว็บแบบส่วนตัว?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s เสร็จแล้ว</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">เปิด</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">เพิ่มทางลัดแล้ว!</string>
+
+ <string name="error_hostLookup_title">ไม่พบเซิร์ฟเวอร์</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">ปิด</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">ยินดีต้อนรับสู่ %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">เร็ว ส่วนตัว ไม่มีการรบกวน</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">เริ่มต้นใช้งาน</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s ไม่เหมือนบราวเซอร์อื่นๆ</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">เราล้างประวัติของคุณเมื่อคุณปิดแอพเพื่อความเป็นส่วนตัวกว่าปกติ</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">ทำให้ %1$s เป็นค่าเริ่มต้นของคุณเพื่อปกป้องข้อมูลของคุณด้วยทุกลิงก์ที่คุณเปิด</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">ตั้งเป็นเบราว์เซอร์เริ่มต้น</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">ข้าม</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">เพิ่มความเป็นส่วนตัวของคุณ</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">นำการท่องเว็บแบบส่วนตัวไปสู่ระดับถัดไป ปิดกั้นโฆษณาและเนื้อหาอื่น ๆ ที่สามารถติดตามคุณในไซต์ต่าง ๆ และลดเวลาในการโหลดหน้า</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">การค้นหาของคุณในแบบของคุณ</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">กำลังค้นหาอย่างอื่น? เลือกเครื่องมือค้นหาเริ่มต้นอื่นในการตั้งค่า</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">เพิ่มทางลัดไปยังหน้าจอหลักของคุณ</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">กลับไปที่ไซต์โปรดของคุณใน %1$s ได้อย่างรวดเร็ว เพียงเลือก \&quot;เพิ่มไปยังหน้าจอหลัก\&quot; จากเมนู %1$s</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">สร้างนิสัยความเป็นส่วนตัว</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">ตั้ง %1$s เป็นเบราว์เซอร์เริ่มต้นของคุณและรับประโยชน์จากการท่องเว็บแบบส่วนตัวเมื่อคุณเปิดหน้าเว็บจากแอปอื่น ๆ</string>
+
+ <string name="firstrun_close_button">ตกลง เข้าใจแล้ว!</string>
+ <string name="firstrun_skip_button">ข้าม</string>
+ <string name="firstrun_next_button">ถัดไป</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">เพิ่ม</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ใช่</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">ยกเลิก</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">ไม่</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">ทางลัดจะเปิดพร้อมปิดใช้งานการป้องกันการติดตามแบบพิเศษ</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">วาระการท่องเว็บแบบส่วนตัว</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">การแจ้งเตือนช่วยให้คุณล้างวาระ %1$s ของคุณด้วยการแตะ คุณไม่จำเป็นต้องเปิดแอปหรือดูสิ่งที่กำลังทำงานในเบราว์เซอร์ของคุณ</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">ล้างประวัติการท่องเว็บ</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">ดาวน์โหลด Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s เป็นซอฟต์แวร์เสรีและเปิดต้นฉบับที่สร้างขึ้นโดย Mozilla และผู้มีส่วนร่วมอื่น ๆ]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s ให้คุณใช้ภายใต้เงื่อนไขของ <a href="%2$s">Mozilla Public License</a> และสัญญาอนุญาตการเปิดต้นฉบับอื่น ๆ]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[คุณไม่ได้รับสิทธิหรือสัญญาอนุญาตใด ๆ ในเครื่องหมายการค้าของมูลนิธิ Mozilla หรือบุคคลใด ๆ รวมทั้งชื่อหรือโลโก้ Mozilla, Firefox หรือ %1$s ข้อมูลเพิ่มเติมอาจพบได้ <a href="%2$s">ที่นี่</a>]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[โค้ดต้นฉบับเพิ่มเติมสำหรับ %1$s ใช้ได้ภายใต้ <a href="%2$s">สัญญาอนุญาต</a> เสรีและเปิดต้นฉบับต่าง ๆ]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s ยังใช้รายการปิดกั้นที่ให้บริการโดย Disconnect, Inc. ซึ่งเป็นงานแยกและเป็นอิสระภายใต้ <a href="%2$s">GNU General Public License v3</a> และใช้ได้ <a href="%3$s">ที่นี่</a>]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">ชื่อผู้ใช้</string>
+ <string name="gv_prompt_password_hint">รหัสผ่าน</string>
+ <string name="gv_prompt_clear">ล้าง</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">การเชื่อมต่อปลอดภัย</string>
+ <string name="security_popup_insecure_connection">การเชื่อมต่อไม่ปลอดภัย</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">ยืนยันโดย: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">ความปลอดภัยของไซต์</string>
+ <string name="preference_autocomplete_duplicate_url_error">มี URL อยู่แล้ว</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">ค้นหาในหน้า</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">ค้นหาในหน้า</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d จาก %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">ค้นหาผลลัพธ์ถัดไป</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">ค้นหาผลลัพธ์ก่อนหน้า</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">ยกเลิกการค้นหาในหน้า</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">ขอไซต์สำหรับเดสก์ท็อป</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">ไซต์เดสก์ท็อป</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">คัดลอก URL แล้ว</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">เครื่องมือนักพัฒนา</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">เปิดลิงก์ในแอป</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">ขั้นสูง</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">สิทธิอนุญาตไซต์</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">การลดแบนเนอร์คุกกี้</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">เปิด</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">ปิด</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">การลดแบนเนอร์คุกกี้</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">เห็นแบนเนอร์น้อยลงโดยปฏิเสธคำขอคุกกี้โดยอัตโนมัติเมื่อเป็นไปได้</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">การลดแบนเนอร์คุกกี้</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">เปิดสำหรับไซต์นี้</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">ไม่รองรับไซต์ในขณะนี้</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">ปิดสำหรับไซต์นี้</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">การลดแบนเนอร์คุกกี้</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">ปิดสำหรับไซต์นี้</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">เปิดสำหรับไซต์นี้</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">ต้องการเปิดการลดแบนเนอร์คุกกี้สำหรับ %1$s หรือไม่?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">ต้องการปิดการลดแบนเนอร์คุกกี้สำหรับ %1$s หรือไม่?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s จะล้างคุกกี้ของไซต์นี้และรีเฟรชหน้า การล้างคุกกี้ทั้งหมดอาจนำคุณออกจากระบบหรือล้างรถเข็นช็อปปิ้ง</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s สามารถพยายามปฏิเสธคำขอคุกกี้โดยอัตโนมัติได้</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">ขณะนี้ไซต์นี้ไม่รองรับการลดแบนเนอร์คุกกี้ คุณต้องการขอให้ทีมของเราตรวจสอบเว็บไซต์นี้และเพิ่มการรองรับในอนาคตหรือไม่?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">ยกเลิก</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">ขอการรองรับ</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">ส่งคำขอรองรับไซต์แล้ว</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">ส่งคำขอรองรับไซต์แล้ว</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s จะพยายามปฏิเสธคำขอคุกกี้เพื่อปิดแบนเนอร์คุกกี้ที่น่ารำคาญ\n\nโปรดจัดการการกำหนดลักษณะแบนเนอร์คุกกี้ใน %2$s</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">การตั้งค่า</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">เล่นอัตโนมัติ</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">เมื่อต้องการอนุญาต:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. ไปที่การตั้งค่า Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. แตะ <b>สิทธิอนุญาต</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">ไปยังการตั้งค่า</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. สลับ <b>%1$s</b> เป็นเปิด]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">กล้อง</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">ไมโครโฟน</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">ตำแหน่งที่ตั้ง</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">การแจ้งเตือน</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">เนื้อหาที่ควบคุมด้วย DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">ขออนุญาตทุกครั้ง</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">ปิดกั้น</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">อนุญาต</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">ปิดกั้นโดย Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">อนุญาตเสียงและวิดีโอ</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">ปิดกั้นเสียงเท่านั้น</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">แนะนำ</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">ปิดกั้นเสียงและวิดีโอ</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">การศึกษา</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox อาจติดตั้งและเรียกใช้การศึกษาเป็นครั้งคราว</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">เรียนรู้เพิ่ม</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">แอปพลิเคชันจะปิดตัวเพื่อนำการเปลี่ยนแปลงไปใช้</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">เอาออก</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">ทำงานอยู่</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">เสร็จสมบูรณ์</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">การดีบั๊กระยะไกลผ่าน USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">ปลดล็อก</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">ยืนยันการใช้ลายนิ้วมือของคุณ</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">คุณสามารถใช้ลายนิ้วมือเพื่อใช้งานแอปปัจจุบันต่อได้</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">เปิดลิงก์ในวาระใหม่</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">ไอคอนลายนิ้วมือ</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">ไม่รู้จักลายนิ้วมือ ลองอีกครั้ง</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">ขยับนิ้วเร็วเกินไป ลองอีกครั้ง</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">แสดงข้อเสนอแนะการค้นหา?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> เพื่อรับข้อเสนอแนะ %1$s จำเป็นต้องส่งสิ่งที่คุณพิมพ์ในแถบที่อยู่ไปยังเครื่องมือค้นหา</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">ไม่</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">ใช่</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">เครื่องมือค้นหาบางตัวไม่สามารถแสดงข้อเสนอแนะ</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">ยกเลิก</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">ไซต์ทำงานอย่างไม่คาดคิด?\n ลองปิดการป้องกันการติดตาม</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[รับการเข้าถึงด้วยการแตะครั้งเดียวไปยังไซต์ที่คุณใช้มากที่สุด%1$s เมนู > เพิ่มไปยังหน้าจอหลัก]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">เปิดทุกลิงก์ใน %1$s\n ตั้ง %1$s เป็นเบราว์เซอร์เริ่มต้น</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">เติม URL โดยอัตโนมัติสำหรับไซต์ที่คุณใช้มากที่สุด\n แตะค้างที่ URL ใด ๆ ในแถบที่อยู่</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">เปิดลิงก์ในแท็บใหม่\n แตะค้างที่ลิงก์ใด ๆ ในหน้า</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">ปิดเคล็ดลับในหน้าจอเริ่มต้น</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">เปิดแท็บใหม่แล้ว</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">สลับ</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">เข้าสู่โหมดเต็มหน้าจอ</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">สลับไปยังลิงก์ในแท็บใหม่ทันที</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">ปิดกั้นไซต์ที่อาจเป็นอันตรายและหลอกลวง</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">ปิดกั้นไซต์หลอกลวงและรุกราน, ไซต์ที่มีมัลแวร์ และไซต์ที่มีซอฟต์แวร์ไม่พึงประสงค์ตามการรายงาน</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">โหมด HTTPS-Only</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">พยายามเชื่อมต่อกับไซต์ต่าง ๆ โดยใช้โปรโตคอลการเข้ารหัส HTTPS โดยอัตโนมัติเพื่อเพิ่มความปลอดภัย</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">ข้อยกเว้น</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">คุณได้ปิดใช้งานการปิดกั้นเนื้อหาสำหรับเว็บไซต์เหล่านี้</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">เอาออก</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">เอาเว็บไซต์ทั้งหมดออก</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">ปิดกั้นคุกกี้</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">คุณต้องการปิดกั้นคุกกี้หรือไม่?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">แท็บขัดข้อง</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">ขออภัย เรากำลังมีปัญหากับแท็บนี้</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">ในฐานะเบราว์เซอร์ส่วนตัว เราไม่เคยบันทึกและไม่สามารถเรียกคืนแท็บนี้ได้</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">ปิดแท็บ</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">ส่งรายงานข้อขัดข้องไปยัง Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">ตัวติดตามถูกปิดกั้นตั้งแต่ %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">เนื้อหา</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">โฆษณา</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">กลุ่มสังคม</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">การวิเคราะห์</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">การป้องกันการติดตามแบบพิเศษ</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">การป้องกันปิดอยู่สำหรับไซต์นี้</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">การป้องกันเปิดอยู่สำหรับไซต์นี้</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">การเชื่อมต่อปลอดภัย</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">การเชื่อมต่อไม่ปลอดภัย</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">ตัวติดตามและสคริปต์ที่จะปิดกั้น</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">ย้อนกลับ</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">ลบ</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">เปลี่ยนชื่อ</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">เปลี่ยนชื่อ</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">ชื่อทางลัด</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">&lt;b&gt;จะไม่ลบ&lt;/b&gt;ภาพที่บันทึกไว้และแบ่งปันเมื่อคุณล้างประวัติของ %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">ชุดตกแต่ง</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">สว่าง</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">มืด</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">กำหนดโดยตัวประหยัดแบตเตอรี่</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">ตามชุดตกแต่งอุปกรณ์</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">ไซต์นี้ไม่รองรับ HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s พยายามใช้การเชื่อมต่อ HTTPS ทุกครั้งที่ทำได้เพื่อความปลอดภัยที่มากขึ้น
+ <a href="%2$s">เรียนรู้เพิ่มเติม</a> <br/><br/>
+ โปรดเปลี่ยนการตั้งค่านี้ใน การตั้งค่า > ความเป็นส่วนตัวและความปลอดภัย > ความปลอดภัย]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">การเชื่อมต่อไม่ปลอดภัย</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ สิ่งนี้อาจเป็นปัญหาจากการกำหนดค่าของเซิร์ฟเวอร์ หรืออาจมีใครบางคนกำลังพยายามปลอมแปลงเซิร์ฟเวอร์ <br/><br/>
+ หากคุณเคยเชื่อมต่อกับเซิร์ฟเวอร์นี้สำเร็จมาก่อน ข้อผิดพลาดอาจเกิดขึ้นเพียงชั่วคราว
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>อาจมีใครบางคนกำลังพยายามปลอมแปลงไซต์นี้และคุณไม่ควรดำเนินการต่อ</label>
+ <br><br>
+ <label>%1$s ไม่เชื่อถือ <b>%2$s</b> เนื่องจากไม่ทราบผู้ออกใบรับรอง ใบรับรองถูกลงชื่อด้วยตนเอง หรือเซิร์ฟเวอร์ไม่ส่งใบรับรองระดับกลางที่ถูกต้องมาให้</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">ปิดแท็บ</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">จับได้แล้ว! เราได้หยุดไซต์นี้ไม่ให้สอดแนมคุณแล้ว แตะโล่เพื่อดูข้อมูลเกี่ยวกับสิ่งที่เรากำลังปิดกั้น</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">ปิดป๊อปอัป</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">คุณได้รับการคุ้มครอง!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">การตั้งค่าเริ่มต้นเหล่านี้ให้การปกป้องที่แข็งแกร่ง แต่คุณสามารถปรับแต่งการตั้งค่าให้ตรงกับความต้องการของคุณได้อย่างง่ายดาย</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">ปิด</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">แตะที่นี่เพื่อทิ้งทุกอย่าง — ประวัติ คุกกี้ ทุกอย่าง — และเริ่มต้นใหม่ในแท็บใหม่</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">ปิด</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">วิดเจ็ตการค้นหา</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">ล้างประวัติการท่องเว็บแล้ว! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">เริ่มวาระการท่องเว็บแบบส่วนตัว แล้วเราจะปิดกั้นตัวติดตามและสิ่งไม่พึงประสงค์ในขณะที่คุณใช้งาน</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">เราจะปล่อยให้คุณท่องเว็บแบบส่วนตัว แต่เริ่มต้นในครั้งต่อไปเร็วขึ้นด้วยวิดเจ็ต %1$s บนหน้าโฮมของคุณ</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">เพิ่มวิดเจ็ตไปที่หน้าจอหลัก</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">เพิ่มวิดเจ็ตในหน้าจอหลักแล้ว</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-tr/strings.xml b/mobile/android/focus-android/app/src/main/res/values-tr/strings.xml
new file mode 100644
index 0000000000..e3b17907c9
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-tr/strings.xml
@@ -0,0 +1,1127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Vazgeç</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Tamam</string>
+
+ <string name="action_save">Kaydet</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Arama yapın veya adres yazın</string>
+
+ <string name="teaser">Otomatik gizli gezinti.\nGez ve sil. Hepsi bu kadar.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Gezinti geçmişiniz silinmiştir.</string>
+ <string name="feedback_erase2">Gezinti geçmişi temizlendi</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Sekmenin gezinti geçmişi silinmiştir.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s terimini ara</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Paylaş…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Siteyle ilgili sorun bildir</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s ile aç</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Birlikte aç…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Ana ekrana ekle</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Kısayollara ekle</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Kısayollardan kaldırıldı</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Ayarlar</string>
+ <string name="menu_about">Hakkında</string>
+ <string name="menu_help">Yardım</string>
+ <string name="menu_rights">Haklarınız</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Takip kodlarını engelle</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Bunu kapatmak bazı site sorunlarını düzeltebilir</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">İçerik engelleme</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Bazı siteleri düzeltmek için kapatın</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Paylaş</string>
+
+ <string name="notification_erase_title_android_14">Gezinti geçmişi silinsin mi?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Gezinti geçmişinizi güvenli bir şekilde silmek için bu bildirime dokunun veya bildirimi temizleyin.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Gezinti geçmişinizi güvenli bir şekilde silmek için bu bildirime dokunun veya bildirimi kaydırın.</string>
+
+ <string name="notification_erase_text">Gezinti geçmişini sil</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Aç</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Sil ve aç</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Sil</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Gezinti geçmişini sil</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Sil ve aç</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Sil ve %1$s’u aç</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Focus’ta ara</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Klar’da ara</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Focus Beta’da ara</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Focus Nightly’de ara</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s kontrolü size verir.</p>
+<p>Onu gizlilik odaklı bir tarayıcı olarak kullanabilirsiniz:
+ <ul>
+ <li>Doğrudan uygulamada arama yapabilir ve web’de gezinebilirsiniz</li>
+ <li>Takip kodlarını engelleyebilirsiniz (veya belli takip kodlarına izin verebilirsiniz)</li>
+ <li>Tek düğmeyle çerezleri, arama ve gezinti geçmişinizi silebilirsiniz</li>
+ </ul>
+</p>
+<p>%1$s Mozilla tarafından geliştirilmiştir. Misyonumuz daha sağlıklı ve açık bir internet yaratmaktır.<br/>
+<a href="%2$s">Daha fazla bilgi alın</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Gizlilik ve Güvenlik</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">İzlenme, çerezler, veri tercihleri</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Varsayılan yap, otomatik tamamlama</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s hakkında, yardım</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Gelişmiş izlenme koruması</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Web içeriği</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Uygulama geçişi</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Genel</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Varsayılan tarayıcı, dil</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Veri toplanması ve kullanımı</string>
+
+ <string name="preference_category_search">Arama</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Arama önerilerini göster</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s, adres çubuğuna yazdıklarını arama motorunuza gönderecektir</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Varsayılan</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Arama motoru</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Açık</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Kapalı</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Otomatik adres tamamlama</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Popüler sitelerde</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">%s’un 450’den fazla popüler adresi adres çubuğunda tamamlaması için bunu etkinleştirin.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Eklediğim sitelerde</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">%s’un sık kullandığınız adresleri otomatik tamamlaması için etkinleştirin.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Siteleri yönet</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Siteleri yönet</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Özel adres ekle</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Otomatik tamamlama listeniz:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Adres ekle</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Özel adres ekle</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Özel adres ekle</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Bağlantıyı otomatik tamamlamaya ekle</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Çerezler ve site verileri</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Veri tercihleri</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Özel adresleri sil</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Daha fazla bilgi al</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Otomatik tamamlanacak özel adresleri ekleyin ve yönetin.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Eklenecek adres</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Adresi yapıştırın veya yazın</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Örnek: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Örnek: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Yeni özel adres eklendi.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Sil</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Sil</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Yazdığınız adresi bir daha kontrol edin.</string>
+
+ <string name="preference_language">Dil</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Sistem varsayılanı</string>
+
+ <string name="preference_category_privacy">Gizlilik</string>
+ <string name="preference_privacy_block_ads">Reklam takip kodlarını engelle</string>
+ <string name="preference_privacy_block_ads_summary">Bazı reklamlar, siz onlara tıklamasanız bile ziyaret ettiğiniz siteleri takip eder</string>
+ <string name="preference_privacy_block_analytics">Analitik takip kodlarını engelle</string>
+ <string name="preference_privacy_block_analytics_summary">Dokunma ve kaydırma gibi etkinlikleri kaydetmek, çözümlemek ve ölçmek için kullanılır</string>
+ <string name="preference_privacy_block_social">Sosyal takip kodlarını engelle</string>
+ <string name="preference_privacy_block_social_summary">Sosyal medyada paylaşım düğmeleri, ziyaret ettiğiniz siteleri de takip eder</string>
+ <string name="preference_privacy_block_content">Diğer içerik takip kodlarını engelle</string>
+ <string name="preference_privacy_block_content_summary2">Bunu açarsanız bazı sayfalar olması gerektiği gibi çalışmayabilir</string>
+ <string name="preference_privacy_category_cookies">Çerezleri engelle</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Hayır</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Yalnızca üçüncü taraf takip çerezlerini engelle</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Yalnızca üçüncü taraf çerezlerini engelle</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Siteler arası çerezleri engelle</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Evet</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Uygulama kilidini açmak için parmak izimi kullan</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Kısayollar eklediysem veya %s tarayıcısında bir web sitesi açıksa kilidi parmak iziyle aç.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Görünmezlik</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Uygulama değiştirirken web sayfalarını gizle ve ekran görüntüsü almayı engelle.</string>
+
+ <string name="preference_category_security">Güvenlik</string>
+
+ <string name="preference_category_performance">Performans</string>
+ <string name="preference_performance_block_webfonts">Web fontlarını engelle</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Simge ve resimlerin görünmemesine yol açabilir</string>
+
+ <string name="preference_performance_block_javascript">JavaScript’i engelle</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Sayfalar daha hızlı yüklenebilir ama sorun da çıkarabilirler</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s’u varsayılan tarayıcım yap</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Kullanım verilerini gönder</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Daha fazla bilgi al</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla, yalnızca %1$s’u daha da geliştirmek için ihtiyaç duyduğumuz verileri toplar.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Gizlilik bildirimi</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Lisans bilgileri</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Kullandığımız kitaplıklar</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS Kitaplıkları</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s hakkında</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Yüklü arama motorları</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Arama motorunu seç</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Varsayılan arama motorlarını geri yükle</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Başka bir arama motoru ekle</string>
+ <string name="preference_search_remove_title">Arama motorlarını sil</string>
+ <string name="preference_search_remove">Sil</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Başka bir arama motoru ekle</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Tercih ettiğiniz motoru seçin:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Arama motoru ekle</string>
+
+ <string name="search_add_manually_name_hint">Arama motoru adı</string>
+ <string name="search_add_manually_string">Kullanılacak arama dizgisi</string>
+ <string name="search_add_manually_save">Kaydet</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Örnek: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Yeni arama motoru eklendi.</string>
+
+ <string name="search_add_error_empty_name">Arama motoru adını yazın</string>
+ <string name="search_add_error_duplicate_name">Yüklenmiş bir arama motoru zaten bu adı kullanıyor.</string>
+
+ <string name="search_add_error_empty_search">Arama dizgisini yazın</string>
+
+ <string name="search_add_error_format">Arama dizgisinin örnek biçimle uyumlu olduğundan emin olun</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Girdiyi temizle</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Kapat</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Gezinti geçmişini sil</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Açık sekmeler: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Güvenli bağlantı</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Yükleniyor</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Web sitesi yüklendi</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Diğer seçenekler</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Diğer seçenekler düğmesi</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">İleri git</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Siteyi tazele</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Geri git</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Siteyi yüklemeyi durdur</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Önceki uygulamaya dön</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Engellenen takip kodu sayısı</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Takip kodlarını engelle</string>
+
+ <string name="your_rights">Haklarınız</string>
+
+ <string name="external_app_prompt_title">Bağlantıyı farklı uygulamada aç</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Bu bağlantıyı %2$s ile açmak için %1$s\'tan çıkabilirsiniz.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Bağlantıyı açabilecek bir uygulama bul</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Cihazınızdaki uygulamalar bu bağlantıyı açamıyor. %2$s mağazasında uygun bir uygulama aramak için %1$s\'tan çıkabilirsiniz.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Gizli Gezinti\'den çıkılsın mı?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s indirildi</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Aç</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Kısayollara eklendi</string>
+
+ <string name="error_hostLookup_title">Sunucu bulunamadı</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Kapat</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">%1$s tarayıcısına hoş geldiniz</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Hızlı. Gizli. Sade.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Başlayın</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s diğer tarayıcılara benzemez</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Daha fazla gizlilik için uygulamayı kapattığınızda geçmişinizi temizliyoruz.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Açtığınız her bağlantıda verilerinizi korumak için %1$s’u varsayılan tarayıcınız yapın.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Varsayılan tarayıcı yap</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Atla</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Gizliliğini güçlendir</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Gizli gezintiyi daha da geliştirdik. Gezdiğiniz siteleri takip eden ve sayfaların yüklenmesini yavaşlatan reklamları ve diğer içerikleri engelleyebilirsiniz.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Senin araman, senin kararın</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Başka bir şey mi arıyorsunuz? Ayarlar menüsünden varsayılan arama motorunuzu değiştirebilirsiniz.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Kısayolları ana ekranına ekle</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">%1$s’ta sevdiğiniz sitelere çabucak ulaşabilirsiniz. %1$s menüsünden \&quot;Ana ekrana ekle\&quot;yi seçmeniz yeterli.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Hep gizli kal</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">%1$s’u varsayılan tarayıcınız yapın, diğer uygulamalarda web sayfalarını açtığınız zaman da gizli gezintiden yararlanın.</string>
+
+ <string name="firstrun_close_button">Anladım!</string>
+ <string name="firstrun_skip_button">Geç</string>
+ <string name="firstrun_next_button">İleri</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Ekle</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">EVET</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">İptal</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">HAYIR</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Kısayolu kullandığınızda gelişmiş izlenme koruması kapalı kalacaktır</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Gizli gezinti oturumu</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Bildirimler sayesinde %1$s oturumunuzu tek dokunuşla silebilirsiniz. Uygulamayı açmanıza ve tarayıcınızdaki açık sayfaları görmenize gerek kalmaz.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Gezinti geçmişini sil</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox’u indir</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[Mozilla ve gönüllüler tarafından geliştirilen %1$s, özgür ve açık kaynaklı bir yazılımdır.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s, <a href="%2$s">Mozilla Kamu Lisansı</a> ve diğer açık kaynak lisanslarının koşullarıyla sunulmaktadır.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Mozilla Vakfı’nın tescilli markaları olan Mozilla, Firefox, %1$s adları ve logoları da dahil olmak üzere, tescilli markalarımızın hakları ve lisansları sizinle paylaşılmamaktadır. Daha fazla bilgi almak isterseniz <a href="%2$s">buraya</a> bakabilirsiniz.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Bazı ek %1$s kaynak kodları çeşitli özgür lisanslar ve açık kaynak <a href="%2$s">lisansları</a> ile sunulmaktadır.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s ayrıca Disconnect, Inc. tarafından sağlanan engelleme listelerini kullanır. Tarayıcıdan ayrı ve bağımsız olan <a href="%3$s">bu çalışmalar</a> <a href="%2$s">GNU Kamu Lisansı v3</a> ile sunulmaktadır.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Kullanıcı adı</string>
+ <string name="gv_prompt_password_hint">Parola</string>
+ <string name="gv_prompt_clear">Temizle</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Güvenli bağlantı</string>
+ <string name="security_popup_insecure_connection">Güvensiz bağlantı</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Doğrulayan: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Site güvenliği</string>
+ <string name="preference_autocomplete_duplicate_url_error">Adres zaten mevcut</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Sayfada bul</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Sayfada bul</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%2$d sonuçtan %1$d. sonuç</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Sonraki sonucu bul</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Önceki sonucu bul</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Sayfa bulmayı kapat</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Masaüstü sitesini iste</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Masaüstü sitesi</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Adres kopyalandı</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Geliştirici araçları</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Bağlantıları uygulamalarda aç</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Gelişmiş</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Site izinleri</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Çerez bildirimlerini azalt</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Açık</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Kapalı</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Çerez bildirimlerini azalt</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Mümkün olduğunda çerez isteklerini otomatik olarak reddederek daha az çerez bildirimi görün.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Çerez bildirimlerini azalt</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Bu sitede AÇIK</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Bu site şu anda desteklenmiyor</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Bu sitede KAPALI</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Çerez bildirimlerini azalt</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Bu sitede KAPALI</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Bu sitede AÇIK</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">%1$s için çerez bildirimlerini azaltma açılsın mı?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">%1$s için çerez bildirimlerini azaltma kapatılsın mı?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s bu sitenin çerezlerini temizleyip sayfayı tazeleyecek. Tüm çerezlerin temizlenmesi oturumunuzu kapatabilir veya alışveriş sepetlerinizi boşaltabilir.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s çerez isteklerini otomatik olarak reddetmeyi deneyebilir.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Çerez bildirimlerini azaltma özelliği henüz bu siteyi desteklemiyor. Ekibimizin bu siteyi inceleyip gelecekte desteklemesini ister misiniz?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Vazgeç</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Destek iste</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Destek sitesine istek gönderildi.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Destek sitesine istek gönderildi.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s sinir bozucu çerez bildirimlerini kapatmak için çerez isteklerini reddetmeye çalışır.\n\nÇerez bildirimi tercihlerinizi %2$s ekranından değiştirebilirsiniz.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">ayarlar</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Otomatik oynatma</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">İzin vermek için:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Android ayarlarına gidin</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. <b>İzinler</b>’e dokunun]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Ayarlara git</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. <b>%1$s</b> ayarını AÇIK yapın]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kamera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Mikrofon</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Konum</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Bildirim</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM denetimli içerikler</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">İzin iste</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Engellendi</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">İzin verildi</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Android tarafından engellendi</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Ses ve videoya izin ver</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Yalnızca sesi engelle</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Önerilen</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Ses ve videoyu engelle</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Araştırmalar</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox zaman zaman araştırmalar yükleyip çalıştırabilir.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Daha fazla bilgi al</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Değişiklikleri uygulamak için uygulama kapanacak</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Kaldır</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Etkin</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Tamamlandı</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">USB/Wi-Fi ile uzaktan hata ayıklama</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Kilidi aç</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Parmak izinizle onaylayın</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Mevcut uygulama oturumunuza devam etmek için parmak izinizi kullanabilirsiniz.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Bağlantıyı yeni oturumda aç</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Parmak izi simgesi</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Parmak izi tanınamadı. Yeniden deneyin.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Parmağınızı çok hızlı hareket ettirdiniz. Yeniden deneyin.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Arama önerileri gösterilsin mi?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> Arama önerileri alabilmeniz için %1$s’un adres çubuğuna yazdığınız şeyleri seçtiğiniz arama motoruna göndermesi gerekir.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Hayır</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Evet</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Bazı arama motorlarında öneriler gösterilemez.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Kapat</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Düzgün görünmeyen bir site mi var?\n
+ İzlenme Koruması’nı kapatmayı deneyin</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[En sık kullandığınız sitelere tek dokunuşla ulaşın%1$s Menü > Ana ekrana ekle]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Her bağlantıyı %1$s ile açabilirsiniz\n
+ %1$s’u varsayılan tarayıcınız yapın
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">En çok kullandığınız sitelerin adreslerini otomatik tamamlayabilirsiniz\n
+ Adres çubuğundaki herhangi bir adrese basılı tutun
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Bağlantıları yeni sekmede açabilirsiniz\n
+ Bir sayfadaki herhangi bir bağlantıya uzun basın
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Başlangıç ​​ekranında ipuçlarını kapat</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Yeni sekme açıldı</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Geç</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Tam ekran moduna geçiliyor</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Hemen yeni sekmedeki bağlantıya geç</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Olası tehlikeli ve aldatıcı siteleri engelle</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Bildirilen aldatıcı ve saldırı amaçlı siteleri, kötü amaçlı yazılım sitelerini ve istenmeyen yazılım sitelerini engelle.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Yalnızca HTTPS modu</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Daha fazla güvenlik için sitelere otomatik olarak HTTPS şifreleme protokolüyle bağlanmaya çalışır.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">İstisnalar</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Bu web sitelerinde içerik engellemeyi kapattınız.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Kaldır</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Tüm web sitelerini kaldır</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Çerezleri engelle</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Çerezleri engellemek ister misiniz?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Sekme çöktü</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Kusura bakmayın, bu sekmeyle ilgili bir sorun yaşıyoruz.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Gizlilik odaklı bir tarayıcı olarak sekmelerinizi asla kaydetmediğimiz için geri getirmemiz de mümkün değil.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Sekmeyi kapat</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Çökme raporunu Mozilla’ya gönder</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">%s tarihinden beri engellenen takip kodu</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">İçerik</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Reklam</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Sosyal</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analitik</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Gelişmiş izlenme koruması</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Bu sitede korumalar KAPALI</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Bu sitede korumalar AÇIK</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Bağlantı güvenli</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Bağlantı güvenli değil</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Engellenecek takip kodları ve betikler</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Geri dön</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Kaldır</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Yeniden adlandır</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Yeniden adlandır</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Kısayol adı</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">%1$s geçmişini sildiğinizde, kaydettiğiniz ve paylaştığınız resimler &lt;b&gt;silinmeyecektir&lt;/b&gt;</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Tema</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Açık</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Koyu</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Pil tasarrufuna göre</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Cihaz temasına uy</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Bu site HTTPS’i desteklemiyor</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s, güvenliğinizi artırmak için mümkünse HTTPS bağlantısı kullanmaya çalışır.
+ <a href="%2$s">Daha fazla bilgi alın</a> <br/><br/>
+ Bu ayarı Ayarlar > Gizlilik ve Güvenlik > Güvenlik kısmından değiştirebilirsiniz.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Bağlantı güvenli değil</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Sunucunun yapılandırmasıyla ilgili bir sorun olabilir veya birisi sunucuyu taklit etmeye çalışıyor olabilir.<br/><br/>
+ Daha önce bu sunucuya sorunsuz bağlandıysanız sorun geçici olabilir.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Birisi bu siteyi taklit etmeye çalışıyor olabilir ve devam etmeniz riskli olabilir.</label>
+ <br><br>
+ <label>%1$s <b>%2$s</b> sitesine güvenmiyor. Sitenin sertifikasını düzenleyen kuruluş tanınmıyor olabilir, sertifika kendi kendine imzalanmış olabilir veya sunucu doğu ara sertifikaları göndermiyor olabilir.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Sekmeyi kapat</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Bu sitenin sizi gözetlemesini engelledik. Engellediğimiz şeyleri görmek isterseniz kalkana dokunun.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Açılır pencereyi kapat</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Koruma altındasınız!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Bu varsayılan ayarlar güçlü koruma sağlar ama isterseniz ayarları ihtiyaçlarınızı göre değiştirebilirsiniz.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Kapat</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Geçmişi ve çerezleri temizleyip yeni bir sekmede yeni bir başlangıç yapmak için buraya dokunun.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Kapat</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Arama widget’ı</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Gezinti geçmişi temizlendi! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Gizli gezinti oturumunuzu başlatın. Siz gezinirken takip kodlarını ve diğer istenmeyen içerikleri engelleyeceğiz.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">%1$s widget’ını ana ekranınıza ekleyerek gizli gezintilerinize daha hızlı bir başlangıç yapabilirsiniz.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Widget’ı ana ekrana ekle</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget ana ekrana eklendi</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-trs/strings.xml b/mobile/android/focus-android/app/src/main/res/values-trs/strings.xml
new file mode 100644
index 0000000000..523bc827f0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-trs/strings.xml
@@ -0,0 +1,1090 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Duyichin\'</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Ga\'ue</string>
+
+ <string name="action_save">Na\'nïnj sà\'</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Gachrun nuguan\' ruhuât nanà\'uìt</string>
+
+ <string name="teaser">Gache nu huì\' nanûn man\'an. Ni\'iaj. Nadure\'. yakaj da\'nga\' ñû.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Gisij ganare\' nej nuguan\' garajsunt nga gaché nunt.</string>
+ <string name="feedback_erase2">Nare\' nej nuguan\' garajsun rè\' nga nana\'ui\' rè\'</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Gisij ganare\' nej nuguan\' garajsunt nga gaché nunt riña rakïj ñanj.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Nana\'uì\' %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Ga\'ninj gan\'an riña duguî\'t…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Natà’ sa ‘iaj sun a’nan’ riña sitiô na</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Na\'nïn ngà %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Na\'nïn…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Na\'nïn riña pantayâ nìko</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Nachrūn riña nù aksêso dirêckto</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">nadure\' riña aksêso dirêckto</string>
+
+ <string name="menu_settings">Nagi\'iaj</string>
+ <string name="menu_about">Doj rayi\'î</string>
+ <string name="menu_help">Sa ruguñu\'unj un</string>
+ <string name="menu_rights">Nej sa tna\'uej rayi\'ît</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Narun\' sa naga\'naj ñun\'</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Sisi gi\'iaj desaktibandôt nan ni ga\'ue nahuin da\'aj sa hua a\'nan\' hiuj nan</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Garrun\' kontenido</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Duna\'aj da\' ga\'ue nahuin da\'aj sîtio</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Rugujñu\'unj %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Ga\'nïnj gan\'an ngà</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Narè\' nej nuguan\' garajsunt nga ganana\'uî\'t</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Na\'nïn</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Nadure\' ni na\'nïnt</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Nadure\'</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Narè\' nej nuguan\' garajsunt nga ganana\'uî\'t</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Dure\' ni na\'nint</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Nadure\' ni na\'nïnt %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Nānà’huì’ riña Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Nānà’huì’ riña Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Nānà’huì’ riña Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Nānà’huì’ riña Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s sò\' \'nïnj rā\'a daran\' sa \'iát.</p>
+<p>Nāgi\'iaj \'ngō nabegado huìi man:
+ <ul>
+ <li>Nānà\'uì\' nī gāchē nu āsìj riña aplikasiun dan</li>
+ <li>Nārán riña nej sa naga\'nāj a (asi nāgi\'iaj nākàt man sisī dādan achín man)</li>
+ <li>Nādure\' nej koki nī nej sa atāj na\'ānj danè\' gaché nunt</li>
+ </ul>
+</p>
+<p>%1$s si rāsūn Mozilla huin man. Nù huin ñunj da\' gā ni\'nïnj internter riñant.<br/>
+<a href="%2$s">Gāhuin chrūn doj</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Sa huìi nī sa dugumin</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Nana\'ui\', cookies, ganahuij datos</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Ganahui\' gahuin ma sa yitïnj in</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Rayi\'î %1$s, rugujñu\'unj</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Sa hua hue\'ê doj guendâ nará riña sa naga\'naj a</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Sa nu riña web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Naduno\' aplikasion</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Da\'ua nguéj</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Nabegado hua niñaa, nuguan\'an</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Nagi\'iaj chre\' ma datos</string>
+
+ <string name="preference_category_search">Nana\'uì\'</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Nahuin\' ro\'ô\' sa ruguñu\'unj nana\'ui\'</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s gani\' ga\'anj sa achrun\' riña dukuán direksion riña sa nana\'ui\'</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Ngà hua niñanj</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Sa nana\'ui\'i</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">On</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Off</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Nuta\' ma\'ān ma URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Guendâ nej sitiô hua hue\'ê doj</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Nāchrūn man %s da’ nūtà\’ mān\’an man 450 URLs sa nīhià\’ ruhuâ ni gīni\’iāj ni.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Guendâ nej sitiô nuta\'t huajt</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Nāchrūn rasūn nan %s da’ nāhuin chrē’ si URLs.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Dugumî nej sîtio</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Dugumî nej sîtio</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Nùto\' sa nagi\'iaj ma\'ān URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Yi’nïn’ nuguan’ ngà nañû mān’an:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Gachrun a\'ngo URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Nùto\' sa nagi\'iaj ma\'ān URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Nùto\' sa nagi\'iaj ma\'ān URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Nachrun enlasê ruhuât natu ma\'an</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Kookies ni si dato sitio</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Ganahui nej datos</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Nadure\' sa nagi\'iaj ma\'ān URL</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Gahuin chrūn doj</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Noto\' sa nagi\'iaj ma\'ān daran\' URL.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL nuto\'</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Gàchru\' URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Nagi\'io\': mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Dànaj gachrunt: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">URL naka doj nga nata\'</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Guxūn</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Guxūn</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Ni\'iaj si hua hue\'è URL gachrunt.</string>
+
+ <string name="preference_language">Nânj (Nânj a\'mi\')</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Sistema ngà hua niñaa</string>
+
+ <string name="preference_category_privacy">Nitaj à\'go ni\'iaj sò\'</string>
+ <string name="preference_privacy_block_ads">Si gâ\'nïnjt nej anûnsio</string>
+ <string name="preference_privacy_block_ads_summary">Hua dà\'aj nej sa dugune\' sitiô nan ni ga\'ue gini\'ìn nej si, si sô atuj</string>
+ <string name="preference_privacy_block_analytics">Si gâ\'nïnjt nej blokeador analítiko</string>
+ <string name="preference_privacy_block_analytics_summary">Si sunj huin nagi\'iaj chrej, nadigi\'ñunj daj unanj ma</string>
+ <string name="preference_privacy_block_social">Si gâ\'nïnjt nej blokeador sosial</string>
+ <string name="preference_privacy_block_social_summary">Hua ni\'inj riña sitiô na da\' gini\'in si so\' àtuj ni digàn botûn da\' duyi\'ngo\'</string>
+ <string name="preference_privacy_block_content">Si gâ\'nïnt a\'ngô nej sa ni\'iaj sa \'iát</string>
+ <string name="preference_privacy_block_content_summary2">Si ganachunt man, ni gahuin ni si gi\'iaj sun hue\'e da\'aj pagina</string>
+ <string name="preference_privacy_category_cookies">Garun\' kookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">si ga\'ue, guruhuat</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Garuun\' 3rd-party ma kookies nikò\' a\'ngô nej si</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Garuun\' 3rd-party ma kookies</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Nārán riña koki riña nej sîtio</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Ga\'ue, gi\'iaj \'ngo sununj un</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Garasun\' dej ro\'ô\' daj gatu\' riña aplikasion</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Nā’nïn nga daa’nga’ ra’ât sisī nachrûnt akseso direkto asi huā ni’nïnj ‘ngō sitio riña %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Dugumî sa achrûnt</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Nagi\'iaj huì nej pâjina si ruhuât garasunt a\'ngô app ni si ga\'ue nari\' riña pantayâ.</string>
+
+ <string name="preference_category_security">Sa dugumin</string>
+
+ <string name="preference_category_performance">suun</string>
+ <string name="preference_performance_block_webfonts">Nará riña nej yi\'nïn\' web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Ga\'ue narugui\'ìj riña a\'ngô ikono</string>
+
+ <string name="preference_performance_block_javascript">Garun\' riña JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Ga\'ue gi\'iaj sun hiò doj pajina sanin se da hue\'ê chre</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Nagi\'iaj %1$s da\' garasun yitïnjt</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Ga\'nïnj nej datô arâj sunt</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Gini\'in doj rayi\'î na</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Ûta ‘iaj nukuaj Mozilla man’an da’ gā hue’ê nej sa narikïj %1$s da’ garasun daran’ nê’.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Noticia huìi</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Si nùguàn\' līsênsia</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Nej dukuâ ñanj arâj sun ñûnj</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s Dukuâ ñanj OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Rayi\'î %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Nej sa nana\'ui\'t gà\' nikajt</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Nāguī sa rīñā ruhuât nānà’uì’t</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Nagi\'iaj nakà nû nej sa nana\'uî\'t gà\' nikajt</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">Nachrun\' \'ngo sa huin ruhuô\' nanà\'uì\'</string>
+ <string name="preference_search_remove_title">Nadure\' sa nana\'ui\'</string>
+ <string name="preference_search_remove">Guxūn</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Nūtà’ a’ngô sa rīñā ruhuât nānà’uì’t</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Nāguī sa rīñā ruhuât nānà’uì’t:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Nutò\' sa nana\'uì\'</string>
+
+ <string name="search_add_manually_name_hint">Si yugui sa nana\'ui\'</string>
+ <string name="search_add_manually_string">Ahuin si gahuin cadena gàrasunt</string>
+ <string name="search_add_manually_save">Na\'ninj sa\'</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Da\' gi\'ìat: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Ngà nata\' a\'ngo sa nakà da\' nana\'uì\'.</string>
+
+ <string name="search_add_error_empty_name">Si yugui sa nana\'ui\'</string>
+ <string name="search_add_error_duplicate_name">\'Ngò sa nana\'ui\' na nī hue ge danaj gu\'naj ma.</string>
+
+ <string name="search_add_error_empty_search">Duguatûj sa nanikò\' dugui\'i</string>
+
+ <string name="search_add_error_format">Ni\'iaj ni\' si ru\' da\'uì gà nianj huin hua ma</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Nadure\' sa duguatujt</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Dunaj man</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Narè\' nej nuguan\' garajsunt nga ganana\'uî\'t</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Rakïj ñanj huā ni\'nïnj: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Koneksiôn hua hue\'ê</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Hìaj ayì\'ij</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Gayi\'ìj \'iaj sunj</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Doj sa ga\'ue nagi\'át</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Butûn \'na\' doj nej sa ga\'ue gi\'iát</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Gache nu gan\'anjt ne\' ñaa</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Nayi\'ì nakà ñû riña sîtio</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Gache nu gan\'anj rukùt</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Duyichin\' sa ayi\'ì sîtio</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Nanikaj riña app garajsunt akuan\'</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Daj nikò sa naga\'naj \'ngà duyichin\'</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Nej rastreador gahuin blokeadô</string>
+
+ <string name="your_rights">Nej sa tna\'uej rayi\'ît</string>
+
+ <string name="external_app_prompt_title">Na\'nïn link na riña a\'ngô app</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Ga\'ue gan\'anjt riña %1$s da\' na\'nïnt na link riña %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Nana\'uì\' \'ngo app ga\'ue na\'nïn nuguan\' nan</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">À\' si \'ngo app nikajt a\'uej na\'nïn enlace nan. Ga\'ue gan\'anjt riña %1$s da\' nana\'uì\'t %2$s guendâ \'ngo app ga ni\'ñanj.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Gahui riña aché nu huìt</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s Nga ganahui</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Na\'nïn</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Ngà nanunj riña nej aksêso dirêkto!</string>
+
+ <string name="error_hostLookup_title">Nu narì\'ij serbidor</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Nārán</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Guruhuât gunumânt riña %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Hìo, huā hûij. Nitāj sa dukuu ‘na’ riñanj.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Gāyi\'ì</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">Sê dàj rû\' \'hiaj a\'ngô nej sa nana\'hui\'i \'hiaj %1$s</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Nadure’ ñûnj daran’ chre nej sa nâj ‘hiát ngà gisîj gaché nunt da’ sī naga’nāj nej si sò’.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Nā’nïnj %1$s da’ dugumîn man nej sa huā rayi’ît ngà na’nïnjt ‘ngō pajinâ nākàa.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Dūnâj gāhuin man riña sa nānà\'uì\' yītïnjt</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Si gi\'iaj guendât</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Nagi\'iaj nukuaj riña gache nun \'ngorïnt</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Ga’ue gan’ānj ñānt doj ngà riña aché nu huìt. Dure’ asi narán riña nej sa ga’ue gatū naga’nāj nej sa ahī màn ‘iát nī natsij nej diû huin ràn nej pâjina ngà nayi’nïn.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Sa nana’uî’t, si chrējt</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Huā a’ngô sa nana’uî’ raj. Naguī a’ngô sa rugûñu’ūnj da’ nana’uì’t sa huin ruhuât riña configuración.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Gachrūn nej acceso directo riña aga’ ayi’ì sinïnt</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Nanikàjt riña nej sitiô nihià’ ruhuât %1$s nanèt chre. Ma sa gi’iát huin sisī guru’man ra’ât riña tāj \&quot;Nachrun riña aga’ gayi’ì\&quot; riña menú %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Yitïnj gachē nun ‘ngōrïnt</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Nachrūn %1$s da’ gahuin man nevegador garasūn yitïnjt nī ga’ue garasunt man da’ gachē nu ‘ngorïnt ngà na’nïnt a’ngô da’āj nej pâjina.</string>
+
+ <string name="firstrun_close_button">Ngà nikà man an!</string>
+ <string name="firstrun_skip_button">Si gi\'iaj guendât</string>
+ <string name="firstrun_next_button">Ne\' ñaan</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Nutà\'</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">GĀ’HUE</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Duyichin\'</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">SĪ GA’UE</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Nāyi’nïn riña gātū nikô’ nikāj ‘ngō sa dugumîn ñù’ nga aché nun’ sanī huā na’àj man</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Sesión riña gachē nu huìt</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Nej notificación nī rugûñun’un da’ nadurê´t %1$s sesión ngà ‘ngō toke. Sê da guezâ na’nïnt riña app asi ni’iāj nùhuin si ‘iaj sun riña navegador hua ‘iát.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Narè\' nej nuguan\' garajsunt nga ganana\'uî\'t</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Naduninj Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s ‘ngō software chre nī sa huā nî’nïnj ï huin man giri Mozilla nī a’ngô nej duguî’ rugûñu’ūnj.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s huā guendâ gārāsunt sanī da’huît gārayinat nuguan’ <a href="%2$s">si’hiaj Mozilla</a> Nī a’ngô nej nuguan’ tna’huēj rayi’î nej sun nan.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Nitāj si â’nïnj fundación Mozilla ganè’ nej rasuun nīka nī ngà ‘ngō yiko’ li, dàj rû’ si yugui nej %1$s asi da’nga’ nīka, Firefox. Ga’ue narì’t doj nuguan’ a’min rayi’î <a href="%2$s">hiūj nan</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[‘Ngō da’nga’ natà’ guendâ %1$s nūn man ngà <a href="%2$s">nej lisênsia huā nî’nïnj ïn</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s arâj sunj nej nuguan’ narikî Disconnect,Inc. dàj rû’ nej sun huā ninïïn <a href="%2$s">GNU ‘iaj Licencia Yumàn’ v3</a>, nī nunj <a href="%3$s">hiūj nan</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Si yugui re\'</string>
+ <string name="gv_prompt_password_hint">Da\'nga\' huìi</string>
+ <string name="gv_prompt_clear">Na\'nïn\'</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Konexiôn yitinj in</string>
+ <string name="security_popup_insecure_connection">Konexiôn nitaj si gua yitinj</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Ngà ganatsij sa gu\'nàj: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Sa dugumi\'</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL sa gayi\'i sesión</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Nana\'ui riñan ñanj</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Nana\'ui\' riñan ñanj</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d si\'iaj %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Nana\'ui\' a\'ngò sa \'na\'a</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Sa \'ngà gachin</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Narrun\' sa nana\'ui\'</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Gachìn\' riña ñanj sinïï</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Si lūgâ eskrītôrio</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Ngà guxun\' URL</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Rasun arajsun Firefox</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Nā\'nīn nej lînk riña nej aplikasiûn</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Sa huaj ñaan</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Sa rikî nì\'iaj sîtio</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Nadugua\' si Banêr Kôki</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Nāchrūn</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Dūnâ\’àj</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Nadugua\' si Banêr Kôki</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Nāran riña nej sa duyinga’ ‘ngō sa ane’e así ‘ngō rasuun nī sī gâ’nïn da’ gātū nej kokî nan.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Nadugua\' si Banêr Kôki</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">HUĀ NÎ’NÏN guendâ sitiô nan</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Huā sa gāchin da’ gā’hua nāyi’nïn sitiô nan</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">NITĀJ SI HUĀ NÎ’NÏN guendâ sitiô nan</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Nadugua\' si Banêr Kôki</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">NITĀJ SI HUĀ NÎ’NÏN guendâ sitiô nan</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">HUĀ NÎ’NÏN guendâ sitiô nan</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Nachrūn sa nadugua’ nej si banêr nej kôki guendâ %1$s aj</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Dūnâ’àj sa nadugua’ nej si banêr nej kôki guendâ %1$s aj</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s nādure’ man daran’ nej kokî ‘na’ riña sitiô nan nī nāgi’hiaj nàkaj pâjina. Si nādure’ej daran’ nej kôki nī gā’hue nāran si sēsiûnt asi nādure’ej nej sa ruhuât gīrānt.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s gāhue sī nahuin rā’a nej kokî ruhuât gā’nïnt gātū.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Akuan’ nï̄, nitāj si â’nï̀nj sitiô nan da’ nāgà’ si banêr nej kôki. Ruhuât gāchìnj nīhiát da’ nātsij ñûnj sitiô nan nī gā’nïn ñûnj nej kokî nan ne’ rūkù doj aj.</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Dūyichin\'</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Gāchìnj man</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Ngà ga’nïn sa gachín nī’hiát gan’ānj.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Ngà ga’nïn sa gachín nī’hiát gan’ānj.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s nù huin aran riña nej kokî avhín nì’hiaj gātū da’ si rañu’ūj nej si banêr kôki sò’.\n\nNādunā sa garan’ ruhuât guendâ nej si banêr kôki riña %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">nāgi\'iô\'</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Nānùn ma\'an man</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Da\' ga\'hue gā\'nïn:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Gūij riña gā\'hue nāgi\'iát Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Gūru\'man ra\'a riña <b>nej sa achín nì\'hiát</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Gūij riña gā\'ue Nāgi\'hiô\'</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Nāchrūn <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Kâmara</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Aga\' uxun nanèe</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Danè\' huin</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Sa atāj nan\'ānj an</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Sa màn nan nī sa ‘nï̄nj ra’a DRM huin</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Gāchinj nì\'hiaj</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Nitāj si hūaj nayi\'nin</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Gā\'hue</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Nitāj si hūaj nāyi\'nïn \'hiaj Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Gā\'nïn gī\'hiaj sun sa unïnt ngà sa ni\'hiājt</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Màn riña sa unïnt nārán</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Sā sà\'a huin ânj</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Nārán riña sa unïnt ngà sa ni\'iājt</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Nej ēstûdio</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Ngà gā’hue gā’nïnj man nî ngà gā’hue gāyi’ì nej man gī’hiaj man ēstûdio.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Gāhuin chrūn doj</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Nārán riña aplikasiûn nan da’ gā’hue nātū sa nākàa riñanj</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Nādure\'</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Ngà \'hiaj sunj</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Ngà gisîj</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Guyun sa kïj hua nga USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Na\'nïn riñanj</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Gāchrūn da’nga’ nuu si huā nīkā ruhuât</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Gārasun da’nga’ nū ‘hiát sisī ruhuât gān’āanjt ne’ ñāan ngà si sesiûn aplikasiûn nan.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Nā\'nīn lînk riña a\'ngô sesiûn nākàa</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Da\'nga\' ra\'a</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Na\'ue nani\'ìn ma da\'ngà ra\'at. garahue ñu.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Ûta hiò gutat ra\'at. Garahue ñu.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Ruhuât dīganj a\'ngô nuguan\' nikāj dugui\' ngà sa nana\'uî\' raj</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Da’ nāhuin rā’ât ‘ngō nuguan’ rugūñu’ūnj un nī, %1$s gà’nïn sinūguàn’t gān’ānj riña motor de busqueda.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Si ga\'ue</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Ga\'ue</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Hua da\'j nej na nà\'na\'ui\' nī nū diganj da rugujñu\'unj</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Si gi\'iaj guendo\'</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Na\'ue si\'iaj sun hue\'ê sitio na an\'\nGuxun sa arrán guendà naga\'naj ma</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Hiò doj gatut riña nej sitio rajsunt doj%1$s Menû > Nuto\' ma riña pantayâ ayi\'ij]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Na\'nïn\' datan nej enlase riña %1$s\nNagi\'iaj %1$s navegador yitïnj in</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">&quot;Nagi\'iaj chre\' nej URL guenda nej sitio rajsun yitïnjt\nRu\'ma ra\'à riña URL \'na\' riña dukuán direksiôn &quot;</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Na\'nïn a\'ngo enlase riña a\'ngo rakïj ñanj nakàa\nRu\'ma ra\'à riña ahuin nanj ma\'an enlase \'na riña pajinâ</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Duna\'àj sa rikî sujerênsia riña pantayâ gayi\'ij</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Ngà\' nayi\'nïnj a\'ngô rakij ñaj nakàa</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Naduno\'</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Hiàj nanunj da\' huā ngè riña aga\'a</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Naduna riña dunikò\' duguî\'t rakïj ñanj ra\'ñanj chre</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Narán riña nej sitiô diga\'ñu\'unj ni sa yi\'ìi</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Narán riña nej sitiô yi\'ìi ni nej sa diga\'ñu\'unj, nej si sitiô malware ni nej sitiô software nitaj si ni\'ñanj an.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">‘Hiaj sunj màn ngà HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Huin ruhuaj gātu riña nej sitio ngà ‘ngō da’nga’ gū’nàj HTTPS dadin’ dugumîn da’nga’ nan doj daran’ nej sa huā ‘hiát.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Ga\'ue na\'nïnt</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Guxun ngèt sa narán riña sa yi\'ìi guendâ nej sitiô nan.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Guxūn</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Guxun daran\' nej sîtio</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Nārûn\’ riña nej kôki</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Nāránt riña nej kôki aj</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Gire\' ngè rakïj ñanj</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Si ga\'man ruhuât. Hua a\'nan\' \'ngo rakïj ñanj nan.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">\'Ngo navegadô huìi huin ñûnj, ni si ga\'ue ni\'iajt sa nana\'ui\'t akuan\' riña rakïj ñanj nan.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Narán Rakïj ñanj</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Gana\'nínj nuguan\'an nuhuin saj \'iaj sun a\'nan\' Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Ganarán riña nej sa naga\’nāj a āsìj %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Sa màn</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Sa duyinga\’ nuguan\’ an</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Sa yūmàn’an</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Sa nādigî’ñu</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Sa hua hue\'ê doj guendâ nará riña sa naga\'naj a</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">NITĀJ SI \'IAJ SUN nej sa dugumî sò\' riña sitiô nan</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Ngà \'IAJ SUN nej sa dugumî sò\' riña sitiô nan</string>
+
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Huā seguridâ nikāj koneksiôn</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Nitāj seguridâ nikāj koneksiôn</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Nej sa naga’nāj a nī nej skrip gā’ue nāránt riña</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Nānīkāj ne\’ rūkùu</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Nādure\'</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Nāchrūn a\'ngô si yūgui</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Nāchrūn a\'ngô si yūgui</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Si yūgui aksêso dīrêkto</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Nej ñadu’hua ngà na’nïn sà’t &lt;b&gt;sê sī&lt;/b&gt; nārè’ nej man si ruhuât nādurê’t nej sa ni’hiājt ngà gaché nut riña %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Têma</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Rāngà\' man</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Huā rūmin\' man</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Nanûn man da\’ dūguminj batería </string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Gānikò\' si tema aga\' dan</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Nitāj si aran’ sitiô nan ngà HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s ginùn huin gārasunj HTTPS da’ gā nïn doj gāchē nunt.<a href="%2$s">Gāhuin chrūn doj</a> <br/><br/> Nadunā dàj gā riña hiūj nan riña tàj sa nadunāt> Sa huìi &amp; Sa dugumîn> Sa dugumîn.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Nitāj seguridâ nikāj koneksiôn</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[Si gūruhuaj nī huā a’nan’ riña nagi’hiát dàj gā servidor, así huā ‘ngō sa yī’ì natûj riña servidor. <br/><br/> Sisī nitāj si gi’hiaj chìj gatût riña servidor nan ganïnj ïn, nī sê sa ahīi huin, dòj nī nāhuin man.]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[<label>Huā ‘ngō sa yī’ì natût riña sitio nī da’huît gāhuīt dadin’ gā’hue gā’huì’ yī’ìj sòj.</label><br><br><label>%1$s nitāj si nani’in <b>%2$s</b> man dadin’ nitāj si huā hia danè’ gurugui’ij, rû’huāj si sertifikâdo digañu’ūnj un huin man rû’ huaj, así na’hue gā’nïnj servidor sertifikadô huā hue’ê.</label>]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Narán rakïj ñanj</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Hìaj â. Si gâ’nïn’ da’ nāga’nāj sitiô nan sò’. Gūru’man ra’a riña nù eskûdo si ruhuât gīni’înt ahuin sa yi’ì arán ñûnj.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Nārán riña sa guruhui’ nan</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Ngà dugumînt sò’</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Sa ngà huā nan nī arán man nī dugumîn man sò’. Si ruhuât nādunāt doj dàj gaj nī gā’hue gan’ānjt riña tāj sa nāgi’hiô’.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Si gi\'hiaj guendô\'</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Gūru’man ra’a hiūj nan da’ nādurê’t daran’anj — sa gaché nunt, nej kôki, daran’anj — y nayi’ì nākà ngà a’ngô rikïj ñanj.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Nārán</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget nana’hui’i</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Nare\' nej nuguan\' garajsun rè\' nga nana\'hui\' rè\' 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Gayi’ì si sēsiûnt guendâ gāchē nun huìt nī gārán ñûnj riña nej sa naga’nāj a nī a’ngô nej sa yī’ìi.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Dunâj ñûnj gāchē nun huìt, sanī ga’hue gāyi’ì râ’ñànjt doj riña %1$s widget nù riña pāntayâ ayì’ìt.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Nāchrūn widget riña pāntayâ ayì’ìt</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Ngà nanûn widget riña pāntayâ ayì’ìt</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-tsz/strings.xml b/mobile/android/focus-android/app/src/main/res/values-tsz/strings.xml
new file mode 100644
index 0000000000..67b71e9b21
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-tsz/strings.xml
@@ -0,0 +1,947 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Áamkutaru</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Patsani</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Patsa o miyukwani karanharhita</string>
+
+ <string name="teaser">Jirikurhitini jirinhant\'ani.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Ampe mankari jirinhant\'apka mirikurhisti ya.</string>
+
+ <string name="feedback_erase2">Kentitanhasti jirinhantskuechani</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Jirinhantskata ampe kéntitanhasti ya.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s Jirinhantsï</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Kwankurhini…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Eyankpeni éska eranharhikwa xerekurhiska</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s Mítani</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Mítani…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Wénakwarhu kúparhatani</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Jurhikutakuecharhu kuparata</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Jurhikutakuaecharhu kentita </string>
+
+ <string name="menu_settings">Pérakurhikwaecha</string>
+ <string name="menu_about">Áamkuri</string>
+ <string name="menu_help">Jahroap\'erakwa</string>
+ <string name="menu_rights">Sésikwaecha</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Estakutichani kwarhukuani</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Nántika jatsïntaaka xerekurhikwa ampe íni p\'átaparini</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Jatakwa ampe kwarhukunhasti</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">P\'átani ka eranharhikwaechani jatsïnt\'ani</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Winhaskukata %1$s jimpo</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Ixusï kwankurhini</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Jirinhantskwa ampe mirikurhini</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Inchani</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Kéntitani ka mítant\'ani</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Kéntitani</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Jirinhantskwani kéntita</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Kéntitani &amp; mítani</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Kéntitani ka mítani %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Focusiorhu jirinhantsi</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Klariorhu jirinhantsi</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Focus Betarhu jirinhantsi</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Focus Nightlyrhu jirinhantsi </string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Kwatakwa &amp; Jískakwa</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Estakupani, exepakwa, erakukwaecha</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Pént\'ani, karakurhikwani</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Jarhoap\'ekwa ankueri %1$s,</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Sesimintu kuatakua</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Eranharhikwaeri Jatakwa</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Úratarakwaechani Móptakuani</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Yámu</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Jirinhatarantskuarhu uantakuani, pentani</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Jatakwa T\'antakwa &amp; Úrani</string>
+
+ <string name="preference_category_search">Jirinhani</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Arhistsïkwaechani exeani</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s ch\'eeti jirinhatarantskwarhu axati ampe mankari karanharhikuaka</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Pént\'ani</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Jirinhatarantskwa</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Étskuni</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">P\'atani</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL Karanharhikuarini</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Erakukuhikwaecha</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Apakerani jimpoka %s karakurintaaka kari 450 URLs miyurakuarhu.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Eranharhikukuaechani kúparhatani</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Ampakerani jimpoka %s karanharhikuntaaka chari URLs erakukataecha.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Eranharhikwaechani xanhatani</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Eranharhikwaechani xanhatani</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Kúrhuta máteru pékurhintskwa URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Karakukurhintakuaecha jatakua:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Kuparhatani URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Kúrhuta máteru pékurhintskwa URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Kúrhuta máteru pékurhintskwa URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Miyurakuani karakukurhikuaecharhu kuparhata</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Exepakwa ka Eranharhikukwaeri Jatakwa</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Jatakwa Erakukwaecha</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Pékurhintskwa URLs kéntita</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Sánteru míteni</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Kúruta ka úra pékurhintskwa karanharhintskua URLs.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL kúrutani</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Mánharita o inchara URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Éska í: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Éska í: éska í.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Jimpanhi URL kúparhakukata.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Kéntitani</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Kéntitani</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Áamku sési karakata jaki URL.</string>
+
+ <string name="preference_language">Wantakwa</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Ánchitakwa</string>
+
+ <string name="preference_category_privacy">Jískakata</string>
+ <string name="preference_privacy_block_ads">Ayankpekwaechani kwarhukuani</string>
+ <string name="preference_privacy_block_ads_summary">Máru eranharhikwaecha inchatiksï ayankperakwaecharu, najkuru áamkuri puchanharhiku</string>
+ <string name="preference_privacy_block_analytics">Jatakwaeri estakutichani kwarhukuani</string>
+ <string name="preference_privacy_block_analytics_summary">Í úratarakwa, estakusïnti ampe mánkari eranharhikunka</string>
+ <string name="preference_privacy_block_social">Wantap\'etarakwaechani kwarhukuani</string>
+ <string name="preference_privacy_block_social_summary">Inchanharhikutanhasti jimpoka estakuatikini ka exeratikini máteru úratarakwaechani</string>
+ <string name="preference_privacy_block_content">Jatakwaeri ampe estakutichani kwarhukuani</string>
+ <string name="preference_privacy_block_content_summary2">Máru eranharhikwaecha nantarkuni úati énkari ampakeraka</string>
+ <string name="preference_privacy_category_cookies">Exepakwani kwarhukuani</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">No diosï meyamua je</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Materuechaeri estakuechani kuarhukowa</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Exepakwaechani 3rd kwarhukuani</string>
+
+ <string name="preference_privacy_should_block_cookies_yes_option2">Jo</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Úratarakwani mítani mítitarantskwani úraparini</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Jajkieri mitintskua jimpo mita enkari jurhikutarakua kuparataka o enka eranharhikukua %s xarhanharini jauaka.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Xipatikwa</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Eranharhikwaechani jískani énka úratarakwaechani móptakuaka</string>
+
+ <string name="preference_category_security">Kwatakwa</string>
+
+ <string name="preference_category_performance">Marhuakwa</string>
+ <string name="preference_performance_block_webfonts">Kwarhukuani k\'éri xurukwaeri kararakwaechani</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Nántika áamku xarharaa p\'itakataecha</string>
+
+ <string name="preference_performance_block_javascript">Kwarhukuni JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Eranharhikwaecha kókamintu jatsïranhati, nájkuru nántarkuni jamaka</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Íni %1$s jirinhatarantskwani pént\'ani</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Jatanhekwa ampe axani</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Sánteru mítini</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla jánkurhintasïnti mítini ampe manka sésimintu ánchitaka %1$sm yamintuecha jimpo.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Jískakwa Eyankpekwa</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Tsirimerakuaeri ampe</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Materu tsirimerariecha </string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s |OSS tsirimerariecha</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Ankueri %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Jirinhatarantskwaecha jatsïrakurhikataecha</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Jirinhatarantskuani erakuni</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Jirinhatarantskwaechani pént\'ani</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Jirinhatarantskwa kúparhatani</string>
+ <string name="preference_search_remove_title">Jirinhatarantskwaechani kéntitani</string>
+ <string name="preference_search_remove">Kéntitani</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Jirinhatarantskwa ma kúparhatani</string>
+
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Jirinhatarantskuani erakukurhini:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Jirinhatarantskwa kúparhatani</string>
+
+ <string name="search_add_manually_name_hint">Jirinhatarantskwaeri jakakurhikwani jirinhant\'ani</string>
+ <string name="search_add_manually_string">Kuturhutapakwani marhuatani</string>
+ <string name="search_add_manually_save">Patsani</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Éska í: éskaí.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Jimpanhi jirinhatarantskwa kúparhakukata.</string>
+
+ <string name="search_add_error_empty_name">Jirinhatarantskwaeri jakankurhikwani karanharhitani</string>
+ <string name="search_add_error_duplicate_name">Jirinhatarantskwa ma mat\'uni jakankuristi.</string>
+
+ <string name="search_add_error_empty_search">Jirinhantskwani karanharhita</string>
+
+ <string name="search_add_error_format">Exeni éska jirinhantskwa sési karakata jaka</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Ampakerant\'ani</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Kéntitani</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Jirinhantskwa ampe kéntitani</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">%1$s :Erarhukwaecha</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Inchaparhakwa kwatakata</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Jatsïrakunt\'axati</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Eranharhikukwa jatsïrakata</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Máteru erakukwaecha</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Sánteru ampe</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Jirinhapant\'ani</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Eranharhikukwani jatsïrant\'ani</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Kwanhatsïni</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Jatsïrakurhikwani anhaxustani</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Máteru úratarakwarhu kw\'anhatsent\'ani</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Namuni énka estakutiechani kwarhukuaka</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Estakutichani kwarhukuani</string>
+
+ <string name="your_rights">Ch\'éti sésikwaecha</string>
+
+ <string name="external_app_prompt_title">Máteru úratarakwarhu mítani</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Úakari wéntani %1$s ka íni eranharhikwa mítani %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Úratarakwani jirinhant\'ani énka uaka íni mítani</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Áamku ma úratarakwa úa mítani íni eranharhikwa. Úakari wént\'ani %1$s ka jirinhant\'ani %2$s úratarakwa énka úaka.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Xipatinku Jirinhantskwarhu Wéntari?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s k\'amakukata</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Mítani</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Áamku exentsï marhuatspetini</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Mikani</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Maruata je %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Jano je.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Wenakuni</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s mentaruni jasïsti</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Kentitasïnkaksï estakukuaechani enkari mikantanka.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Pekurintsï %1$s ka santeruksïni kuajchakuaka enkari nani eranharhikuska.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Ini jirinhatarantskuani pekurintani</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Wanajchakuni</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Jískakwa ampe winhaskuntsï</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Jirikurhiparini jankwani winhaskukurhintsï. kúparhakwaechani ka máteru jatakwaechani énkaksïni estakuni ka yóntachipanka kwarhukua.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Ch\'éeti jirinhanstkwa, ch\'éeti jánkwa</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Ampema jirinhantaxakiri? Máteru jirinhatarantskwani eraku pékurhintskwaecharhu.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Wenakwarhu jurhikutakwaechani kuparhataa</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Ch\'éeti eranharhikukwaecharhu kw\'anhatsent\'ani %1$s kókamintu. Eraku \&quot;Wenakwarhu kúparhatani\&quot; %1$s jatakwarhu.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Méntku ísï jirikurhiparini</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Péntsï %1$s éska ch\'éeti jirinhatarantskwa ka exeakari éska sánteu sési mítaati eranharhikukwaechani méteru úratarakwaechaeri.</string>
+
+ <string name="firstrun_close_button">Ya, parini!</string>
+ <string name="firstrun_skip_button">Wanach\'akuni</string>
+ <string name="firstrun_next_button">Máteru</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">_</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Kúparhatani</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">JO</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Áamkutaru</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NO</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Jurhikutarakua mitaati najkuru sesimintu kuatakua pakuariaaka</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Wénani jirikurhipani jirinhant\'ani</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Ayankpekwaecha jinkoni úakari %1$s míantskwani kéntitani clic ma jinkontku. Áamku wétarhinki úratarakwani mítani o exeni ampe manka úni jaka jirinhatarantskwarhu.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Jirinhantskwaeri míantskwa kéntitani</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox jatsïrakurhini</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s úratarakwa maesti énkari úaka k\'ánkurhini Mozilla ústi máteruecha jinkoni.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s úakari pitsikurhini jimpoka <a href="%2$s"> úkata jarasti </a>Mozillaeri jinkoni ka máterueri úratarakuaecha.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Áamkuri tsïrimerakata jaki Mozilla jimpo eska na jinteka Mozilla, Firefox o %1$s jakankurhikwaecha o mitintskwaecha, Sánteru ampe <a href="%2$s">ixu exentakari</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Sánteru ampe marhuatakuaeri %1$s exentakari máteru úricha<a href="%2$s">jinkoni </a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s kwarhukperatiechani maruatasïnti énka Disconnect, Inc. táchani únka ixu <a href="%2$s">GNU mítikata jaka 3</a>, ka úakari exeni <a href="%3$s">ixu</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Jakankurhikwa</string>
+ <string name="gv_prompt_password_hint">Mítintskwa</string>
+ <string name="gv_prompt_clear">Ampakerani</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Kwatakata inchaparhakwa</string>
+ <string name="security_popup_insecure_connection">No kwatakata inchaparhakwa</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">%1$s :jimpo exekata</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Eranharhikwaeri Kwatakwa</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL jarasti ya</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Eranharhikwarhu Exent\'ani</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Eranharhikukwarhu exent\'ani</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d ankuri %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Máteru exentskata</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Máteru jirinhantskwani exentsï</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Mirikurhi jirinhantskwani</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Eranharhikwaeri kurhak\'urhikwa</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Wenakuarhu</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL p\'itakata</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Kwerari ánchitakwaecha</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Miyurakuechani mitani</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Jorenati</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Eranharhikukuaeri sesikuecha</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Exepakueri ayankperakua Tsukunhani</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Étskuni</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Pátani</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Exepakueri ayankperakua Tsukunhani</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Namunitu eyankperakuechani ixeaka, enkari estakuechani kuarhukuaka, enka ukuriaka.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Exepakueri ayankperakua Tsukunhani</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ETSKUKATA ini eranharhikukuarhu</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Ixu aamkuksïni ua jarhotani</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">PATAKATA ini eranharhikukuarhu</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Exepakueri ayankperakua Tsukunhani</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">PATAKATA ini eranharhikukuarhu</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ETSKUKATA ini eranharhikukuarhu</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Etskuntaari exepakuaeri ayankperata %1$s jimpo?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Patari exepakuaeri ayankperata %1$s jimpo?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Áamkutaru</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">perakurhikuecha</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Kustakurhikua</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Jiankuni:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Android pekurhintskuecha</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Puchastsïku <b>jiankukuecha</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Pékurhintskuarhu niarani</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Mojtaku <b>%1$s</b> ETSKUNI]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Pitani</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Arhinhatarakua</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Nani jaraski</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Eyankperakua</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-jimpo xanhatakata</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Sesikua kurhajkurhini</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Kuarhukukata</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Jiankukata</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Android jimpo kuarhukukata</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Jiankuni eska kustaaka</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Kustakuanijku jiankuni</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Mintsinharikua</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Kustakua kuarhukuni</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Jurenkurikua</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Menhechani firefox jatsïraati jurenkuarikua ampe.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Sánteru mítini</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Uratarakua mikurintaati jimpoka jimpankikurintaati</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Kéntitani</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Etskukata</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Jayarakata</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">USB/Wi-Fi weratini ampakerant\'ani</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Mitakata</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Cheeti mitintskua jinkoni jiankuni</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Cheeti mitintskua jinkoni uakari utasï maruatani jarani.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Miyurakuani mitani jumpanki eranharhikukuarhu</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Mítitarantskwaeri p\'ítakata</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Áamkuri mítinhantsï. Tsek\'utantsï.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Manak\'uarhaskari. Tsek\'utantsï.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Ari jirinhantskuecha xarhatani?</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Áamku</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Jo</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Máru jirinhatarantskwaecha áamkusï exerpinki arhistsïkwaechani.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Kéntitani</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Eranharhikwa nántarkuni úxaki?\nTsek\'u Kwatakwa Estakwaeri p\'atani</string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Yámu miyukwaechani mítani %1$s rhu\n %1$s Pékurhintsï</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Miyukwani jimpanhi eranharhikwarhu mítani \n Nákintaru ma miyukwani puchanharhiku</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Mitakurhisti jimpanhi eranharhikwa</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Móptakuni</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Móptakuni jimpanhi eranharhikwarhu</string>
+
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Kéntitani</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Yámu eranharhikukwaechani kéntitaani</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Eranharhikwa xerekurhisti</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Éska xipatikwarhu jamani, jucha áamku patsoo o pentaaka eranharhikwani.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Eranharhikwani míkani</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Mozillani ayankuni íni xerekurhikwa</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Estakukuecha kuarhukukata jarastiksï %s jimpo</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Jatakata</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Ayankperakuecha</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Wanhacharhu</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Erakuni</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Sesimintu kuatakua</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">PATANHASTI kuatakuechani ini eranharhikukuarhu</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">ETSKUNHASTI kuatakuechani ini eranharhikukuarhu</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Kuatakata inchaparhatanhasti</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Aamku kuatakata inchaparhatanhasti</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Estakuecha ka maruatatarakuechani kuarhukuni</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Kuanhatsïntani</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Kéntitani</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Jakankuntani</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Jakankuntani</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Jurhikutarakuani jakani</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Patsakurhikataecha &lt;b&gt;áamku kéntitanhaa&lt;/b&gt; énkari miatskuani %1$s kéntitaka</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Monharhitani</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Niranti</string>
+
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Turhiperani</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-tt/strings.xml b/mobile/android/focus-android/app/src/main/res/values-tt/strings.xml
new file mode 100644
index 0000000000..dc4d90ce55
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-tt/strings.xml
@@ -0,0 +1,1103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Баш тарту</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ОК</string>
+
+ <string name="action_save">Саклау</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Эзләү яки адрес язу</string>
+
+ <string name="teaser">Автоматик рәвештә хосусый гизү.\nГизегез. Бетерегез. Кабатлагыз.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Гизү тарихыгыз бетерелде.</string>
+ <string name="feedback_erase2">Гизү тарихы чистартылды</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Табның гизү тарихы бетерелде.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">%1$s дип эзләү</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Уртаклашу…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Сайттагы проблема турында хәбәр итү</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s белән ачу</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">… белән ачу</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Өй экранына кую</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Ярлыкларга өстәү</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Ярлыклардан алып ату</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Көйләүләр</string>
+ <string name="menu_about">Хакында</string>
+ <string name="menu_help">Ярдәм</string>
+ <string name="menu_rights">Хокукларыгыз</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Күзәтүчеләр блокланды</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Бу функцияне сүндерү кайбер сайт проблемаларын төзәтергә мөмкин</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Эчтәлекне блоклау</string>
+
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Кайбер сайтларны төзәтү өчен сүндерү</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">%1$s нигезендә</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Аша уртаклашу</string>
+
+ <string name="notification_erase_title_android_14">Гизү тарихы бетерелсенме?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Гизү тарихыгызны хәвефсез рәвештә бетерү өчен бу искәртүгә басыгыз яки аны чистартыгыз.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Гизү тарихыгызны хәвефсез рәвештә бетерү өчен бу искәртүгә басыгыз яки аны кырыйга сөйрәгез.</string>
+
+ <string name="notification_erase_text">Гизү тарихын бетерү</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Ачу</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Бетерү һәм ачу</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Бетерү</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Гизү тарихын бетерү</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Чистарту һәм ачу</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Гизүт тарихын чистартып, %1$s программасын ачу</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Focus эченнән эзләү</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Klar эченнән эзләү</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Focus Beta эченнән эзләү</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Focus Nightly эченнән эзләү</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s дилбегәне Сезнең кулга тапшыра.</p>
+<p>Аны хосусый браузер буларак кулланып, түбәндәгеләрне эшләп була:
+ <ul>
+ <li>Турыдан-туры кушымта эчендә эзләү һәм пәрәвездә гизү</li>
+ <li>Күзәтүче-трекерларны блоклау (яисә, көйләүләрне яңартып, аларны рөхсәт итү)</li>
+ <li>Кукиларны, эзләү һәм гизү тарихларын җиңел генә бетереп ату</li>
+ </ul>
+</p>
+<p>%1$s Mozilla тарафыннан җитештерелә. Безнең миссиябез — сәламәт һәм ачык Интернетны үстерү.<br/>
+<a href="%2$s">Күбрәк белү</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Хосусыйлык &amp; Хәвефсезлек</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Күзәтүчеләр, кукилар, бирелгәннәрне сайлау</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Төп итү, автотөгәлләү</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s турында, ярдәм</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Күзәтелүдән көчәйтелгән саклау</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Web-эчтәлек</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Кушымталарны алыштыру</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Гомуми</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Төп браузер, тел</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Мәгълүмат туплау һәм аны куллану</string>
+
+ <string name="preference_category_search">Эзләү</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Эзләү тәкъдимнәрен алу</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s Сез адрес юлында язганны Сезнең эзләү системасына җибәрәчәк</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Төп</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Эзләү системасы</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Кабызылган</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Сүнгән</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL-адресны автотөгәлләү</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Төп сайтлар өчен</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">450-дән артык мәшһүр сайт өчен %s программасының адрес юлында автотөгәлләүне кабызу.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Үзегез өстәгән сайтлар өчен</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">%s программасында Сез еш кулланган адреслар өчен автотөгәлләүне кабызу.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Сайтлар белән идарә итү</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Сайтлар белән идарә итү</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Үзгә URL өстәү</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Автотөгәлләү исемлегегез:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL өстәү</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Үзгә URL өстәү</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Үзгә URL өстәү</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Сылтаманы автотөгәлләнүчеләр исемлегенә өстәү</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Кукилар һәм сайт бирелгәннәре</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Бирелгәннәрне сайлау</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Үзгә URL\'ларны бетерү</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Күбрәк өйрәнү</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Автотөгәлләү өчен кулланучы үзе сайлаган URL\'ларны өстәү яки алар белән идарә итү.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">Өстәләчәк URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">URL\'ны ябыштырыгыз яки языгыз</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Мисал: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Мисал: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Яңа үзгә URL өстәлде.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Бетерү</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Бетерү</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Кертелгән URL\'ны тагын бер кат тикшерегез.</string>
+
+ <string name="preference_language">Тел</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Система теле</string>
+
+ <string name="preference_category_privacy">Хосусыйлык</string>
+ <string name="preference_privacy_block_ads">Реклама күзәтүчеләрен блоклау</string>
+ <string name="preference_privacy_block_ads_summary">Кайбер рекламалар, Сез аларга басмасагыз да, сайтка керүләрегезне күзәтеп тора</string>
+ <string name="preference_privacy_block_analytics">Аналитика күзәтүчеләрен блоклау</string>
+ <string name="preference_privacy_block_analytics_summary">Басу һәм скроллинг кебек хәрәкәтләрне җыю, анализлау һәм үлчәү өчен кулланылалар</string>
+ <string name="preference_privacy_block_social">Социаль челтәр күзәтүчеләрен блоклау</string>
+ <string name="preference_privacy_block_social_summary">Сез зиярат иткән сайтларны күзәтү һәм «Уртаклашу» төймәләре кебек мөмкинлекләрне күрсәтү өчен сайтларга куелалар</string>
+ <string name="preference_privacy_block_content">Башка эчтәлек күзәтүчеләрен блоклау</string>
+ <string name="preference_privacy_block_content_summary2">Моны кабызу кайбер сәхифәләрнең көтелгәнчә эшләмәвенә сәбәп була ала</string>
+ <string name="preference_privacy_category_cookies">Кукиларны блоклау</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Юк, рәхмәт</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Өченче тараф трекер кукиларын гына блоклау</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Өченче тараф кукиларын гына блоклау</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Сайт-ара кукиларны блоклау</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Әйе, зинһар</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Кушымтаны ачу өчен бармак эзен куллану</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Ярлыклар өстәгән булсагыз яки вебсайт %s браузерында инде ачылган булса, бармак эзен кулланып ачыгыз.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Күренмәслек</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Кушымталарны алмаштырганда веб-сәхифәләрне яшерү.</string>
+
+ <string name="preference_category_security">Хәвефсезлек</string>
+
+ <string name="preference_category_performance">Җитештерүчәнлек</string>
+ <string name="preference_performance_block_webfonts">Веб-шрифтларны блоклау</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Билге һәм рәсемнәрнең күренмәвенә сәбәп була ала</string>
+
+ <string name="preference_performance_block_javascript">JavaScript\'ны блоклау</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Сәхифәләр тизрәк йөкләнеләчәк, әмма алар көтелгәнчә эшләмәскә дә мөмкин</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s\'ны төп гизгеч итү</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Куллану мәгълүматларын җибәрү</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Күбрәк белү</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla, %1$s\'ны һәркемгә дә тәкъдим итү һәм яхшырту өчен кирәкле мәгълүматларны гына җыярга тырыша.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Хосусыйлык сәясәте</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Лицензия турында мәгълүмат</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Без кулланган китапханәләр</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS китапханәләр</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">%1$s турында</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Урнаштырылган эзләү системалары</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Эзләү системасын сайлау</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Төп эзләү системаларын яңадан торгызу</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Башка бер эзләү системасын өстәү</string>
+ <string name="preference_search_remove_title">Эзләү системаларын бетерү</string>
+ <string name="preference_search_remove">Бетерү</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Башка бер эзләү системасын өстәү</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Үзегез теләгән эзләү системасын сайлагыз:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Эзләү системасын өстәү</string>
+
+ <string name="search_add_manually_name_hint">Эзләү системасының исеме</string>
+ <string name="search_add_manually_string">Эзләнәчәк сүз я сүзтезмә</string>
+ <string name="search_add_manually_save">Саклау</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Мисал: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Яңа эзләү системасы өстәлде.</string>
+
+ <string name="search_add_error_empty_name">Эзләү системасының исемен кертегез</string>
+ <string name="search_add_error_duplicate_name">Әлеге исем урнаштырылган бер эзләү системасы тарафыннан кулланыла инде.</string>
+
+ <string name="search_add_error_empty_search">Эзләнәсе сүзтезмәне кертегез</string>
+
+ <string name="search_add_error_format">Эзләнәсе сүзтезмәнең Мисал форматына туры килүен тикшерегез</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Кертелгәнне чистарту</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Ябу</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Гизү тарихын бетерү</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Ачык таблар: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Хәвефсез бәйләнеш</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Йөкләнелә</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Веб-сайт йөкләнде</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Күбрәк опцияләр</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Күбрәк опцияләр төймәсе</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Алга бару</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Сайтны яңадан йөкләү</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Кире кайту</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Веб-сайтны йөкләүне туктату</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Соңгы кушымтага кире кайту</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Блокланган күзәтүчеләр саны</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Күзәтүчеләрне блоклау</string>
+
+ <string name="your_rights">Хокукларыгыз</string>
+
+ <string name="external_app_prompt_title">Сылтаманы башка кушымтада ачу</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Бу сылтаманыі %2$s ярдәме белән ачу өчен, сез %1$s\'тан чыга аласыз.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Сылтаманы ача алучы кушымта табу</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Җиһазыгыздагы бер кушымта да бу сылтаманы ача алмый. Аны ача ала алучы кушымтаны %2$s эченнән эзләү өчен, Сез %1$s\'тан чыга аласыз.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Хосусый гизү режимыннан чыгаргамы?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s йөкләнде</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Ачу</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Ярлыкларга өстәлде!</string>
+
+ <string name="error_hostLookup_title">Сервер табылмады</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Ябу</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">%1$s кушымтасына рәхим итегез</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Тиз. Хосусый. Бүлдерүләрсез.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Башлау</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s башка браузерлар кебек түгел</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Өстәмә хосусыйлык өчен кушымтаны япканда, без тарихыгызны чистартабыз.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Һәр сылтаманы ачканда да мәгълүматыгыз саклансын өчен %1$s браузерын төп браузер итеп билгеләгез.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Төп браузер итеп билгеләү</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Калдырып тору</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Хосусыйлыгызны көчәйтегез</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Хосусый гизүне яңа дәрәҗәгә күтәрегез. Сайтлар аша Сезне күзәтүче һәм сәхифәләрнең йөкләнү вакытын арттыручы рекламаларны һәм башка эчтәлекләрне блоклагыз.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Сезнең эзләү, Сезнең кагыйдәләр</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Башка берәр нәрсә эзлисезме? Көйләүләр менюсына кереп, төп итеп башка бер эзләү системасын сайлый аласыз.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Өй экранына ярлыклар өстәгез</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">%1$s\'та иң яраткан сайтларыгызга тиз генә кире кайта аласыз. Моның өчен %1$s менюсыннан \&quot;Өй экранына кушуны\&quot; сайлау җитә.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Хосусыйлыкны гадәткә кертү</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">%1$s\'ны төп гизгечегез итеп сайлап, башка кушымталардан сайтларны ачканда да хосусый гизү мөмкинлегеннән файда күрегез.</string>
+
+ <string name="firstrun_close_button">Яхшы, аңладым!</string>
+ <string name="firstrun_skip_button">Кичү</string>
+ <string name="firstrun_next_button">Киләсе</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Өстәү</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ӘЙЕ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Баш тарту</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">ЮК</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Ярлык «Күзәтелүдән көчәйтелгән саклау» режимы сүндерелгән килеш ачылачак</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Хосусый гизү утырышы</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Бердерүләр аша %1$s утырышыгызны бер орыну белән бетерә аласыз. Кушымтаны ачу яисә гизгечтә нәрсә ачык икәнен күрү кирәк түгел.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Гизү тарихын бетерү</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox\'ны йөкләп алу</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s — Mozilla һәм башка катнашучылар ясаган ирекле һәм ачык чыганаклы программа.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s Сезгә <a href="%2$s">Mozilla Public License</a> һәм башка ачык чыганак лицензияләренең шартлары белән тәкъдим ителә.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Сезгә Mozilla Foundation-ның яисә башка тарафларның һичбер теркәлгән сәүдә билгеләренә, шул исәптән Mozilla, Firefox яисә %1$s исемнәре яки логотипларына бернинди дә хокуклар я лицензияләр бирелми. Өстәмә мәгълүматны <a href="%2$s">монда</a> табып була.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[%1$s өчен өстәмә чыганак кодлары башка берничә ирекле һәм ачык чыганак <a href="%2$s">лицензияләләре</a> астында нәшер ителә.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[Моннан тыш, %1$s, аерым һәм бәйсез әсәрләр буларак, Disconnect, Inc. тәэмин иткән блоклау исемлекләрен куллана. Аларны <a href="%2$s">GNU General Public License v3</a> шартлары белән һәм түләүсез <a href="%3$s">монда</a> табып була.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Кулланучы исеме</string>
+ <string name="gv_prompt_password_hint">Серсүз</string>
+ <string name="gv_prompt_clear">Чистарту</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Хәвефсез бәйләнеш</string>
+ <string name="security_popup_insecure_connection">Хәвефсез булмаган бәйләнеш</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Раслаучы: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Сайт хәвефсезлеге</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL инде бар</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Биттә табу</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Биттә табу</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%2$d дан %1$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Алдагы нәтиҗәне табу</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Арттагы нәтиҗәне табу</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Биттә эзләүне тәмамлау</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Сайтның тулы версиясен сорау</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Сайтның компьютер версиясе</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL копияләнде</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Җитештерүче кораллары</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Сылтамаларны кушымталарда ачу</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Киңәйтелгән</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Сайт рөхсәтләре</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Cookie баннерларын киметү</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Кабынган</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Сүнгән</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title"> Cookie баннерларын киметү</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Мөмкинлек булганда cookie сорауларын автоматик рәвештә кире кагып, баннерларны азрак күрегез.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Cookie баннерларын киметү</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">Бу сайт өчен кабынган</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Бу сайт хәзерге вакытта тәэмин ителми</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">Бу сайт өчен cүнгән</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Cookie баннерларын киметү</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">Бу сайт өчен cүнгән</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">Бу сайт өчен кабынган</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">%1$s өчен cookie баннерлары киметелсенме?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">%1$s өчен cookie баннерлары киметелмәсенме?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s бу сайтның cookie файлларын чистартып, битне яңартачак. Барлык cookie-ларны да чистарту сайттан чыгуга яки сайттагы алыш-биреш кәрзинегезнең бушавына китерә ала.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s cookie сорауларын автоматик рәвештә кире кагарга тырышып карый ала.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Бу сайт хәзерге вакытта Cookie баннерларын киметү белән тәэмин ителми. Төркемебезнең бу сайтны карап чыгып, киләчәктә тәэмин ителүен теләр идегезме?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Баш тарту</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Тәэмин ителүен сорау</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Бу сайтның тәэмин ителүен сорау җибәрелде.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Бу сайтның тәэмин ителүен сорау җибәрелде.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s, туйдырып бетерүчу куки баннерларын яшерү өчен куки үтенечләрен кире кагарга тырыша.\n\nКуки баннерларына кагылышлы опцияләрне %2$s үзгәртә аласыз.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">көйләүләр</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Автоуйнату</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Рөхсәт итү өчен:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Android көйләүләренә керегез</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. <b>Рөхсәтләр</b>гә басыгыз]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Көйләүләргә күчү</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. <b>%1$s</b> көйләвен кабызыгыз]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Камера</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Микрофон</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Урнашу</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Искәртү</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM белән идарә ителгән эчтәлек</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Рөхсәт соралсын</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Тыелган</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Рөхсәт ителгән</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Android тарафыннан тыелган</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Аудио һәм видеоны рөхсәт итү</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Аудионы гына тыю</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Киңәш ителә</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Аудио һәм видеоны тыю</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Тикшеренүләр</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox кайвакытта тикшеренүләр урнаштырырга һәм үткәрергә мөмкин.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Күбрәк белү</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Үзгәртүләрне гамәлгә ашыру өчен кушымта ябылачак</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Бетерү</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Актив</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Тәмамланды</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">USB/Wi-Fi аркылы хаталарны ерактан төзәтү</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Ачу</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Бармак эзегезне кулланып раслау</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Хәзерге кушымта сессиясен дәвам итү өчен бармак эзегезне куллана аласыз.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Сылтаманы яңа утырышта ачу</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Бармак эзе рәсеме</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Бармак эзе танылмады. Тагын бер кат тырышып карагыз.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Бармак артык тиз алынды. Тагын бер кат тырышып карагыз.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Эзләү тәкъдимнәре күрсәтелсенме?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">Тәкъдимнәрен алыр өчен, %1$s Сез адрес юлында язганнарны эзләү системасына җибәрергә тиеш.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Юк</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Әйе</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Кайбер эзләү машиналары тәкъдимнәр ясамый.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Яшерү</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Сайт көтелгәнчә эшләмиме?\nКүзәтүчеләрдән саклауны сүндереп карагыз</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Иң еш кулланылган сайтларга бер орыну белән күчү өчен%1$s Меню > Өй экранга өстәү]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Һәр сылтаманы да %1$s\'та ачу\n%1$s\'ны төп гизгеч итегез</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Иң еш кулланылган сайтларның адресларын автотөгәлләү өчен\nАдрес юлындагы URL\'га озак итеп басып торыгыз</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Сылтаманы яңа биттә ачу өчен\nСылтамага озак итеп басып торыгыз</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Өй экрандагы киңәшләрне сүндерү</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Яңа таб ачылды</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Күчү</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Тулы экран режимына күчү</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Яңа табтагы сылтамага шундук күчү</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Куркыныч булырга мөмкин һәм ялган сайтларны блоклау</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Шикаять ителгән ялган һәм Һөҗүмче сайтларны, зарарлы һәм кирәкмәс программалы сайтларны блоклау.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Тик-HTTPS режимы</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Хәвефсезлекне арттыру өчен сайтларга автоматик рәвештә HTTPS шифрлау протоколын кулланып тоташырга тырыша.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Чыгармалар</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Бу вебсайтлар өчен эчтәлекне блоклауны сүндердегез.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Бетерү</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Барлык вебсайтларны да бетерү</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Кукиларны блоклау</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Кукиларны блокларга телисезме?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Таб ватылды</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Гафу итегез, әмма бу таб белән бер проблема бар.</string>
+
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Хосусый браузер буларак, без бу табны беркайчан да сакламыйбыз һәм яңадан торгыза алмыйбыз.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Табны ябу</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Mozilla-га ватылу турында хәбәр җибәрү</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">%s көненнән башлап блокланган күзәтүчеләр</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Эчтәлек</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Реклама</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Социаль челтәрләр</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Аналитика</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Күзәтелүдән Көчәйтелгән Саклау</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Бу сайт өчен саклау СҮНГӘН</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Бу сайт өчен саклау КАБЫНГАН</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Бәйләнеш хәвефсез</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Бәйләнеш хәвефсез түгел</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Блоклау өчен трекерлар һәм скриптлар</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Кире кайту</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Бетерү</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Исемен үзгәртү</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Исемен үзгәртү</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Ярлык исеме</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">%1$s тарихын бетергәндә, сакланган яки уртаклашылган рәсемнәр &lt;b&gt;бетерелмәячәк&lt;/b&gt;</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Тема</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Ачык</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Караңгы</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Батареяны саклау режимын исәпкә алу</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Җиһаз темасына иярү</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Бу сайт HTTPS кулланмый</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s күбрәк хәвефсезлек өчен мөмкин булганда HTTPS бәйләнешен кулланырга тырыша.
+ <a href="%2$s">Күбрәк белү</a><br/><br/>
+ Бу көйләнүне үзгәртү өчен Көйләүләр > Хосусыйлык һәм Хәвефсезлек > Хәвефсезлек бүлегенә күчегез.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Бәйләнеш хәвефсез түгел</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Бу сервер көйләүләрендәге хата белән бәйле булырга мөмкин, яисә кемдер Сезгә кирәкле серверны икенче бере белән алыштырырга тырыша.<br/><br/>
+ Моңа кадәр бу серверга уңышлы тоташа торган булсагыз, бу хата вакытлыча гына булырга мөмкин.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Кемдер үзенең сайтын бу сайт дип күрсәтергә тырыша кебек, шунлыктан дәвам итү куркыныч булырга мөмкин.</label>
+ <br><br>
+ <label>%1$s кушымтасы <b>%2$s</b> сайтына ышанмый, чөнки сертификатын бастыручу я билгесез, я ул үзлегеннән имзаланган, я сервер дөрес арадашчы сертификатлар җибәрми.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Табны ябу</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Тотылдылар! Без бу сайтны Сезне күзәтүдән тыйдык. Ниләр блоклаганганын һәрвакыт калканга басып күреп була.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Калыкмә тәрәзәне ябу</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Сез саклангансыз!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Бу стандарт көйләүләр көчле саклану тәэмин итә. Әмма ихтыяҗларыгыз башкачарак булса, аларны үзгәртү җиңел.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Ябу</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Тарих, сookie файллары, аслында һәрнәрсәне дә бетереп, яңа табта яңа тормыш башлар өчен монда басыгыз.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Ябу</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Эзләү виджеты</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Гизү тарихы чистартылды! 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Хосусый гизү сеансын башлап җибәрегез, без исә трекерларны һәм башка начар нәрсәләрне блокларбыз.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Хосусый режимда дәвам итәрсез, әмма %1$s виджетын Өй экранына куйсагыз, киләчәктә хосусый режимга тизрәк керә алачаксыз.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Виджетны өй экранына өстәү</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Виджет өй экранына өстәлде</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-uk/strings.xml b/mobile/android/focus-android/app/src/main/res/values-uk/strings.xml
new file mode 100644
index 0000000000..8f6045a38a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-uk/strings.xml
@@ -0,0 +1,1120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Скасувати</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Зберегти</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Введіть запит чи адресу</string>
+
+ <string name="teaser">Автоматичний приватний перегляд.\nПереглядайте. Видаляйте. Повторюйте.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Ваша історія перегляду була очищена.</string>
+ <string name="feedback_erase2">Історію перегляду очищено</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Історію перегляду було стерто.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Шукати %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Поділитися…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Повідомити про сайт</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Відкрити в %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Відкрити в…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Додати на головний екран</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Додати до ярликів</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Вилучити з ярликів</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Налаштування</string>
+ <string name="menu_about">Про</string>
+ <string name="menu_help">Довідка</string>
+ <string name="menu_rights">Ваші права</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Заблоковано стеження</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Вимкнення цієї функції може вирішити деякі проблеми з сайтом</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Блокування вмісту</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Вимкнути для усунення проблем з деякими сайтами</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">За підтримки %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Поділитись через</string>
+
+ <string name="notification_erase_title_android_14">Стерти історію перегляду?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Торкніться або приберіть це сповіщення, щоб надійно стерти свою історію перегляду.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Торкніться або посуньте це сповіщення, щоб надійно стерти свою історію перегляду.</string>
+
+ <string name="notification_erase_text">Стерти історію перегляду</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Відкрити</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Стерти і відкрити</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Стерти</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Стерти історію перегляду</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Стерти і відкрити</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Стерти і відкрити %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Пошук у Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Пошук у Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Пошук у Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Пошук у Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s надає вам контроль.</p>
+<p>Використовуйте його як приватний браузер:
+ <ul>
+ <li>Шукайте і переглядайте безпосередньо в програмі</li>
+ <li>Блокуйте стеження (або змініть налаштування, щоб дозволити його)</li>
+ <li>Видаляйте файли cookie, а також історію пошуку та перегляду</li>
+ </ul>
+</p>
+<p>%1$s створено в Mozilla. Наша місія – розвивати здоровий та відкритий Інтернет.<br/>
+<a href="%2$s">Докладніше</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Приватність і безпека</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Стеження, файли cookie, вибір даних</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Встановити типовим, автозавершення</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Про %1$s, довідка</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Розширений захист від стеження</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Вебвміст</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Перемикання програм</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Загальні</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Типовий браузер, мова</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Збір даних і використання</string>
+
+ <string name="preference_category_search">Пошук</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Отримувати пошукові пропозиції</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s відправлятиме пошуковій системі текст, введений в адресному рядку</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Типова</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Пошукова система</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Увімкнено</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Вимкнено</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Автозавершення URL</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Для популярних сайтів</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Увімкніть автозавершення в %s для понад 450 популярних URL-адрес у панелі адреси.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Для доданих вами сайтів</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Увімкнути, щоб %s автоматично завершував URL-адреси популярних сайтів.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Керувати сайтами</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Керувати сайтами</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Додати власну URL-адресу</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Ваш список автозаповнення:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Додати URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Додати власну URL-адресу</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Додати власну URL-адресу</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Додати посилання для автозавершення</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Файли cookie та дані сайтів</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Вибір даних</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Вилучити власні URL-адреси</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Докладніше</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Додавайте і керуйте автозавершенням власних URL-адрес.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL для додавання</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Вставте чи введіть URL-адресу</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Зразок: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Зразок: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Нову власну URL-адресу додано.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Вилучити</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Вилучити</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Уважно перевірте введену URL-адресу.</string>
+
+ <string name="preference_language">Мова</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Типова системна</string>
+
+ <string name="preference_category_privacy">Приватність</string>
+ <string name="preference_privacy_block_ads">Блокувати рекламу зі стеженням</string>
+ <string name="preference_privacy_block_ads_summary">Деяка реклама відстежує відвідування сайтів, навіть якщо ви на неї не натискали</string>
+ <string name="preference_privacy_block_analytics">Блокувати аналітику зі стеженням</string>
+ <string name="preference_privacy_block_analytics_summary">Використовуються для збору, аналізу та вимірювання активності, наприклад, дотики і прокручування</string>
+ <string name="preference_privacy_block_social">Блокувати стеження соціальних мереж</string>
+ <string name="preference_privacy_block_social_summary">Вбудовуються в сайти для відстеження ваших відвідувань та показу додаткових функцій, наприклад, кнопки \&quot;Поділитися\&quot;</string>
+ <string name="preference_privacy_block_content">Блокувати інші елементи стеження</string>
+ <string name="preference_privacy_block_content_summary2">Увімкнення цієї функції може викликати непередбачувану поведінку деяких сторінок</string>
+ <string name="preference_privacy_category_cookies">Блокувати файли cookie</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Ні, дякую</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Блокувати лише сторонні файли cookie стеження</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Блокувати лише сторонні файли cookie</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Блокувати міжсайтові файли cookie</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Так, будь ласка</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Використовувати відбиток пальця для розблокування</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Розблокуйте відбитком пальця, якщо ви додали ярлики, або якщо вебсайт вже відкритий у %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Під прикриттям</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Приховувати вебсторінки під час перемикання застосунків та не дозволяти знімки екрана.</string>
+
+ <string name="preference_category_security">Безпека</string>
+
+ <string name="preference_category_performance">Швидкодія</string>
+ <string name="preference_performance_block_webfonts">Блокувати вебшрифти</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Може призвести до втрати піктограм чи зображень</string>
+
+ <string name="preference_performance_block_javascript">Блокувати JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Сторінки можуть завантажуватись швидше, але при цьому можуть неправильно працювати</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Зробити %1$s типовим браузером</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Надсилати дані про використання</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Докладніше</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla намагається збирати лише дані, що необхідні для роботи і вдосконалення %1$s для кожного.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Положення про приватність</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Інформація про ліцензію</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Бібліотеки, які ми використовуємо</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Вільні бібліотеки</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Про %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Встановлені пошукові системи</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Виберіть пошукову систему</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Відновити типові пошукові системи</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Додати іншу пошукову систему</string>
+ <string name="preference_search_remove_title">Вилучити пошукові системи</string>
+ <string name="preference_search_remove">Вилучити</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Додати іншу пошукову систему</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Виберіть бажану пошукову систему:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Додати пошукову систему</string>
+
+ <string name="search_add_manually_name_hint">Назва пошукової системи</string>
+ <string name="search_add_manually_string">Запит для пошуку</string>
+ <string name="search_add_manually_save">Зберегти</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Зразок: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Нову пошукову систему додано.</string>
+
+ <string name="search_add_error_empty_name">Введіть назву пошукової системи</string>
+ <string name="search_add_error_duplicate_name">Ця назва вже використовується у встановленій пошуковій системі.</string>
+
+ <string name="search_add_error_empty_search">Введіть пошуковий запит</string>
+
+ <string name="search_add_error_format">Перевірте пошуковий запит на відповідність формату зразка</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Очистити поле</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Відхилити</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Стерти історію перегляду</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Відкритих вкладок: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Безпечне з\'єднання</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Завантаження</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Вебсайт завантажено</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Додатково</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Кнопка додаткових налаштувань</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Перехід уперед</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Перезавантажити вебсайт</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Перейти назад</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Зупинити завантаження сайту</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Повернутись до попередньої програми</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Заблоковано стеження</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Блокувати стеження</string>
+
+ <string name="your_rights">Ваші права</string>
+
+ <string name="external_app_prompt_title">Відкрити посилання в іншій програмі</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Ви можете вийти з %1$s, щоб відкрити це посилання в %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Знайдіть програму, яка може відкрити посилання</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Жодна з програм на вашому пристрої не здатна відкрити це посилання. Ви можете вийти з %1$s для пошуку відповідної програми у %2$s.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Вийти з приватного перегляду?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s завантажено</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Відкрити</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Додано до ярликів!</string>
+
+ <string name="error_hostLookup_title">Сервер не знайдено</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Закрити</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Вітаємо в %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Швидкий. Приватний. Зосереджений.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Розпочати</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s не схожий на інші браузери</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Для кращої приватності ми очищаємо вашу історію, коли ви закриваєте програму.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Зробіть %1$s типовим, щоб захистити ваші дані під час відкриття кожного посилання.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Установити типовим браузером</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Пропустити</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Прокачайте вашу приватність</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Перейдіть на вищий рівень приватного перегляду. Блокуйте рекламу та інший вміст, що може стежити за вами на сайтах і сповільнювати завантаження сторінок.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Ваш пошук, ваш шлях</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Шукаєте щось інше? Виберіть іншу пошукову систему в налаштуваннях.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Додавайте ярлики на головний екран</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Швидко відкривайте свої улюблені сайти у %1$s. Просто оберіть \&quot;Додати на головний екран\&quot; в меню %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Зробіть приватність звичкою</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Встановіть %1$s своїм типовим браузером та отримайте переваги приватного перегляду при переході на вебсайти з інших застосунків.</string>
+
+ <string name="firstrun_close_button">Гаразд, зрозуміло!</string>
+ <string name="firstrun_skip_button">Пропустити</string>
+ <string name="firstrun_next_button">Далі</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Додати</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ТАК</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Скасувати</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">НІ</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Ярлик відкриватиметься з вимкненим Розширеним захистом від стеження</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Сеанс приватного перегляду</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Сповіщення дозволяють вам стирати дані сеансу %1$s одним дотиком. Вам не потрібно відкривати програму чи дивитися, що відбувається у вашому браузері.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Стерти історію перегляду</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Завантажити Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s є вільним програмним забезпеченням з відкритим кодом від Mozilla та інших помічників.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s доступний для вас на умовах <a href="%2$s">Mozilla Public License</a> та інших ліцензій відкритого коду.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Вам не надаються жодні права чи ліцензії на торговельні марки Mozilla Foundation або на будь-які її частини, включно з Mozilla, Firefox, а також назвами чи логотипами %1$s. Додаткову інформацію можна знайти <a href="%2$s">тут</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Додатковий програмний код для %1$s доступний на умовах різних інших <a href="%2$s">ліцензій</a> вільного й відкритого програмного забезпечення.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s також використовує списки блокування від Disconnect Inc., як окремі та незалежні розробки на умовах <a href="%2$s">GNU General Public License v3</a>, і доступні <a href="%3$s">тут</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Ім\'я користувача</string>
+ <string name="gv_prompt_password_hint">Пароль</string>
+ <string name="gv_prompt_clear">Очистити</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Захищене з\'єднання</string>
+ <string name="security_popup_insecure_connection">Незахищене з’єднання</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Засвідчено: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Безпека сайту</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL вже наявний</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Знайти на сторінці</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Знайти на сторінці</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d з %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Знайти наступний результат</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Знайти попередній результат</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Прибрати пошук на сторінці</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Повна версія сайту</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Версія для комп’ютера</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL скопійовано</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Інструменти розробника</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Відкривати посилання у програмах</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Додатково</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Дозволи сайтів</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Зменшення кількості банерів про файли cookie</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Увімкнено</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Вимкнено</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Зменшення кількості банерів про файли cookie</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Переглядайте менше банерів, автоматично відхиляючи запити на збереження файлів cookie, коли це можливо.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Зменшення кількості банерів про файли cookie</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">УВІМКНЕНО для цього сайту</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Сайт наразі не підтримується</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">ВИМКНЕНО для цього сайту</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Зменшення кількості банерів про файли cookie</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">ВИМКНЕНО для цього сайту</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">УВІМКНЕНО для цього сайту</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Увімкнути зменшення кількості банерів про файли cookie для %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Вимкнути зменшення кількості банерів про файли cookie для %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s очистить файли cookie цього сайту та оновить сторінку. Очищення всіх файлів cookie може призвести до виходу з облікових записів або очищення кошика для покупок.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s може намагатися автоматично відхиляти запити на збереження файлів cookie.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Цей сайт наразі не підтримується функцією зменшення кількості банерів про файли cookie. Хочете звернутися до нашої команди, щоб ми розглянули можливість додати підтримку цього вебсайту в майбутньому?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Скасувати</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Звернутися по підтримку</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Запит на підтримку сайту надіслано.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Запит на підтримку сайту надіслано.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s намагається відхиляти запити про збереження файлів cookie, щоб уникнути надокучливих банерів.\n\nКеруйте поведінкою банерів про файли cookie в %2$s.</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">налаштуваннях</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Автовідтворення</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Щоб дозволити це:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Відкрийте налаштування Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Торкніться <b>Дозволи</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Перейти до налаштувань</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Увімкніть перемикач <b>%1$s</b>]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Камера</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Мікрофон</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Розташування</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Сповіщення</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Вміст, контрольований DRM</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Запитувати дозвіл</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Заблоковано</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Дозволено</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Заблоковано Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Дозволити аудіо та відео</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Блокувати лише аудіо</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Рекомендовано</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Блокувати аудіо та відео</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Дослідження</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox може час від часу встановлювати та виконувати дослідження.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Докладніше</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Програма закриється, щоб застосувати зміни</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Вилучити</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Активні</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Завершено</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Віддалене налагодження через USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Розблокувати</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Підтвердьте з відбитком пальця</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Ви можете скористатися відбитком пальця, щоб продовжити поточний сеанс програми.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Відкрити посилання в новому сеансі</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Піктограма відбитку пальця</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Відбиток пальця не розпізнано. Спробуйте знову.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Надто швидкий рух пальцем. Спробуйте знову.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Показувати пошукові пропозиції?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> Для отримання пропозицій %1$s повинен відправляти пошуковій системі введений в адресному рядку текст.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ні</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Так</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Деякі пошукові системи не можуть показувати пропозиції.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Відхилити</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Неочікувана поведінка сайту?\n Спробуйте вимкнути захист від стеження</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Швидкий доступ до популярних сайтів%1$s Меню > Додати на головний екран]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Відкривайте всі посилання в %1$s\n Встановіть %1$s типовим браузером</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Автозавершення популярних URL-адрес\n Тривалий дотик до URL в адресному рядку</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Відкривайте посилання в новій вкладці\n Тривалий дотик до посилання на сторінці</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Вимкнути поради у домівці</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Відкрито нову вкладку</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Перемкнути</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Вхід у повноекранний режим</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Негайно перемикати на посилання в новій вкладці</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Блокувати потенційно небезпечні та підозрілі сайти</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Блокувати відомі підозрілі та зловмисні сайти, шкідливі сайти та сайти з небажаним програмним забезпеченням.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">HTTPS-режим</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Намагатися автоматично доступатися до сайтів за допомогою протоколу шифрування HTTPS для поліпшення безпеки.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Винятки</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Ви вимкнули блокування вмісту для цих вебсайтів.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Вилучити</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Вилучити всі вебсайти</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Блокувати файли cookie</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Бажаєте блокувати файли cookie?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Збій вкладки</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Вибачте. Виникли проблеми з цією вкладкою.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Так як це приватний браузер, ми ніколи не зберігаємо і не можемо відновити цю вкладку.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Закрити вкладку</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Надіслати звіт про збій в Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Заблоковано стеження, починаючи з %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Вміст</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Реклама</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Соціальні мережі</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Аналітика</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Розширений захист від стеження</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Захист на цьому сайті вимкнено</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Захист на цьому сайті увімкнено</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Захищене з’єднання</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">З’єднання не захищене</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Блокувати стеження й скрипти</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Назад</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Вилучити</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Перейменувати</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Перейменувати</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Назва ярлика</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Збережені та спільні зображення &lt;b&gt;не будуть видалені&lt;/b&gt;, якщо ви зітрете історію %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Тема</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Світла</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Темна</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Враховувати режим економії заряду</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Тема пристрою</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Цей сайт не підтримує HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s намагається використовувати HTTPS-з’єднання, коли це можливо для підвищення безпеки.
+ <a href="%2$s">Докладніше</a> <br/><br/>
+ Змініть це налаштування перейшовши до Налаштування > Приватність і безпека > Безпека.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Незахищене зʼєднання</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Це може бути проблема з конфігурацією сервера, або, можливо, хтось намагається імітувати той сервер. <br/><br/>
+ Якщо ви раніше отримували доступ до цього сервера, то це може бути тимчасова помилка.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Хтось може намагатися видати себе за сайт. Подальший перехід може бути ризикованим.</label>
+ <br><br>
+ <label>%1$s не довіряє <b>%2$s</b>, тому що видавець його сертифіката невідомий, сертифікат самопідписаний, або сервер не надсилає правильні посередницькі сертифікати</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Закрити вкладку</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Спіймався! Ми не дозволили цьому сайту стежити за вами. Торкніться щита, щоб побачити заблоковані елементи.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Закрити спливне вікно</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Ви захищені!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Ці типові налаштування забезпечують надійний захист. Але їх можна легко змінити відповідно до ваших особистих потреб.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Відхилити</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Торкніться тут, щоб стерти все – історію, файли cookie й інші дані – та розпочніть начисто у новій вкладці.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Закрити</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Віджет пошуку</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Історію перегляду очищено! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Розпочніть сеанс приватного перегляду, а ми заблокуємо стеження та інші небажані елементи.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Ми залишимо вас у режимі приватного перегляду, але наступного разу розпочніть роботу швидше за допомогою віджета %1$s на головному екрані.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Додати віджет на головний екран</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Віджет додано на головний екран</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-ur/strings.xml b/mobile/android/focus-android/app/src/main/res/values-ur/strings.xml
new file mode 100644
index 0000000000..61ae5d60fb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-ur/strings.xml
@@ -0,0 +1,818 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">منسوخ کریں</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ٹھیک ہے</string>
+
+ <string name="action_save">محفوظ کریں</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">پتہ تلاش یا داخل کریں</string>
+
+ <string name="teaser">خودکار نجی برائوزنگ۔\nبرائوز کریں۔ جزف کریں۔ دہرائیں۔</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">آپ کے برائوزنگ سابقات مٹا دیئے گئے ہیں۔</string>
+
+ <string name="feedback_erase2">براؤزنگ کی سابقات صاف ہو گئی۔</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">ٹیب کی برائوزنگ سابقات مٹا دی گئی ہیں۔</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">۔%1$s کے لئے تلاش کریں</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">شیئر کریں…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">سائٹ مسلہ رپورٹ کریں</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">%1$s میں کھولیں</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">…میں کھولیں</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">ابتدائی اسکرین پر اظافہ کریں</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">شارٹ کٹ میں شامل کریں</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">شارٹ کٹ سے ہٹائیں</string>
+
+ <string name="menu_settings">سیٹنگیں</string>
+ <string name="menu_about">کے بارے میں</string>
+ <string name="menu_help">مدد</string>
+ <string name="menu_rights">آپ کے حقوق</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">ٹریکر بلاک کردہ</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">اسے بند کرنے سے سائٹ کے کچھ مسائل ٹھیک ہو سکتے ہیں۔</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">مواد کو روکیں</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">کچھ سائٹس کو ٹھیک کرنے کے لئے بند کر دیں</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">ان کے ذریعہ %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">کے زریعے شیئر کریں</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">برائوزنگ سابقات مٹائیں</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">کھولیں</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">مٹائیں اور کھولیں</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">مٹائيں</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">برائوزنگ سابقات مٹائیں</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">مٹائیں اور کھولیں</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">مٹائیں اور %1$s کھولیں</string>
+
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s آپ کو کنٹرول دیتی ہے </p>
+<p> اسکو نجی برائوزر کی طرح استعمال کریں:
+ <ul>
+ <li> اپلی کیشن میں ہی تلاش اور براؤز کریں </li>
+ <li>ٹریکررٰ کو بلاک کریں (یا سٹینگوں کی تازہ کاری کر کے ٹریکررٰ کو اجازت دیں)۔ </li>
+ <li> کوکیز کے ساتھ تلاش اور براؤزنگ سابقات کو بھی حذف کرنے کیلیے مٹائیں </li>
+ </ul>
+</p>
+<p>%1$s کی پیداوار ہے۔ ھماری مہم ایک صحت مند کھلے انٹرنیٹ کو فروعٰ دینا ہے۔ Mozilla<br/>
+<a href="%2$s"> مزید جانیے </a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">رازداری اور سلامتی</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">سراغ راہ، کوکیاں، کوائف پسند</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">طے شدہ سیٹ کریں، خودکار مکمل</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">%1$s کے بارے میں، مدد</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">توسيعى سراغ کاری تحفظ</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">ویب مواد</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">ایپس تبدیل کرنا</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">عمومی</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">طے شدہ برائوزر، زبان</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">کوائف کا مجموعہ اور ان کا استعمال</string>
+
+ <string name="preference_category_search">تلاش کریں</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">تلاش تجاویز حاصل کریں</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">طے شدہ</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">تلاش انجن</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">چالو</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">بند</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL خودکار تکميل</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">بہترین سائٹس کے لیئے</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">سائٹس کے لئے حو آپ شامل کریں</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">سائٹس بندرست کریں</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">سائٹس بندرست کریں</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">تخصیصی URL کا + اظافہ کریں</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">URL شامل کریں۔</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">تخصیصی URL کا اظافہ کریں</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">تخصیصی URL کا اظافہ کریں</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">کوکیاں اور سائٹ کے کواِئف</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">کوائف پسند</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">مخصوص URL ہٹائیں</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">مزید سیکھیں</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">مخصوص خودکار مکمل URLs شامل اور بندرست کریں۔</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL اظافہ کرنے کے لیئے</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">URL چسپاں یا داخل کریں</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">مثال کے طور پر: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">مثال: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">نئے تخصیصی URL کا اظافہ کر دیا گیا ہے۔</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">ہٹائیں</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">ہٹائیں</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">درج شدہ URL دو دفعہ پڑتال کریں۔</string>
+
+ <string name="preference_language">زبان</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">نظام طے شدہ</string>
+
+ <string name="preference_category_privacy">رازداری</string>
+ <string name="preference_privacy_block_ads">اشتھار ٹریکرز کو بلاک کریں</string>
+ <string name="preference_privacy_block_ads_summary">چند اشتہاری ٹریکر سائَٹ دورہ کرتی ہیں حب کہ آپ نے اشتتہارات پر کلک بھی نہ کیا ہو</string>
+ <string name="preference_privacy_block_analytics">تجزیاتی ٹریکرز کو بلاک کریں</string>
+ <string name="preference_privacy_block_analytics_summary">سرگرمی جیسے کہ تھپتپانا اور طورمار کرنا کی پہمائش اور تجزیہ کرنے کے لیئے استعمال ہوتا ہے</string>
+ <string name="preference_privacy_block_social">سماجی ٹریکرز بلاک کریں</string>
+ <string name="preference_privacy_block_content">دیگر مواد کے ٹڑیکرز بلاک کریں</string>
+ <string name="preference_privacy_block_content_summary2">اہل بنانے کی وجہ سے شاید چند صفحات غیر متوقع برتائو کر سکتے ہیں</string>
+ <string name="preference_privacy_category_cookies">کوکیز بلاک کری٘ں</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">نہیں شکریہ</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">صرف 3-فریق کی ٹریکر کوکیاں بلاک کریں</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">صرف 3-فریق کی کوکیاں بلاک کریں</string>
+
+ <string name="preference_privacy_should_block_cookies_yes_option2">جی ہاں برائے مہربانی</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">ایپ کو غیر مقفل کرنے کے لیے فنگر پرنٹ کا استعمال کریں۔</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">سٹلتھ</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">اہپس تبدیل کرنے وقت ویب صفحات کو چھپائیں اور اکرین شاٹ بلاک کرین۔</string>
+
+ <string name="preference_category_security">سلامتی</string>
+
+ <string name="preference_category_performance">کارکردگی</string>
+ <string name="preference_performance_block_webfonts">ویب فونٹس بلاک کریں</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">نتیجتن اسکی شاید آئیکن یا تصاویر گایب ہو سکتی ہے</string>
+
+ <string name="preference_performance_block_javascript">JavaScript بلاک کریں</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">صفحات شاید تیزی سے لوڈ ہوں، لیکن شاید غیر متوقع طور پر برتاؤ کریں</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">%1$s و طےشدہ براؤزر بنائیں</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">استعمال شدہ کوائف ارسال کریں</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">مزید سیکھیں</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla صرف اس کو جمع کرنے کی کوشش کرتا ہے جو ہمیں ہر کسی کے لئے %1$s فراہم کرنے اور بہتر بنانے کی ضرورت ہے۔</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">رازداری کا نوٹس</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">لائسنس کی معلومات</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">لائبریریاں جو ہم استعمال کرتے ہیں</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">کے بارے میں%1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">تنصیب شدہ تلاش انجن</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">تلاش انجن کا انتخاب کریں </string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">طےشدہ تلاش انجن بحال کریں</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">ایک اور تلاش انجن کا اضافہ کریں</string>
+ <string name="preference_search_remove_title">تلاش انجن ہٹائیں</string>
+ <string name="preference_search_remove">ہٹائیں</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">ایک اور تلاش انجن کا اضافہ کریں</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">اپنا پسندیدہ انجن منتخب کریں</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">تلاش انجن اضافہ کریں</string>
+
+ <string name="search_add_manually_name_hint">تلاش انجن کا نام</string>
+ <string name="search_add_manually_string">استعمال کرنے کے لیئے اسٹرنگ تلاش کریں</string>
+ <string name="search_add_manually_save">محفوظ کریں</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">مثلاٰ؛ example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">نیا تلاش انجن شامل کر دیا گیا۔</string>
+
+ <string name="search_add_error_empty_name">تلاش انجن کا نام داخل کریں</string>
+ <string name="search_add_error_duplicate_name">ایک تنصیب شدہ تلاش کے انجن پہلے ہی اس نام کا استعمال کر رہا ہے۔</string>
+
+ <string name="search_add_error_empty_search">ایک سٹرنگ داخل کریں</string>
+
+ <string name="search_add_error_format">پڑتال کریں کہ سرچ سٹرنگ مثال کی شکل سے میل کھاتا ہے</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">ان پٹ صاف کریں</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">برخاست کریں</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">برائوزنگ سابقات مٹائیں</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">%1$s ٹیبس کھلے ہیں</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">قابل بھروسا کنکشن</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">لوڈ ہو رہا ہے</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">ویبسائٹ لوڈ ہو گئی ہے</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">مزید اختیارات</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">مزید اختیارات کا بٹن</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">آگے کی جانب گشت کريں</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">ویب سائٹ دوبارہ لوڈ کریں</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">پیچھے کی طرف جائے</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">ویبسائَٹ لوڈ کرنا بند کریں</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">پچھلی ایپلیکیشن میں واپس جائیں</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">ٹریکرز کو بلاک کریں</string>
+
+ <string name="your_rights">آپ کے حقوق</string>
+
+ <string name="external_app_prompt_title">کسی دوسری اپلیکیشن میں ربط کھولیں</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">اس ربط کو %2$s میں کھولنے کے لیےآپ %1$s چھوڑ سکتے ہیں۔</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">ایک ایپیلیکیشن تلاش کریں جو ربط کو کھول سکے</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">آپ کے آلہ پر کوئی بھی ایپلیکیثن اس ربط کو کھولنے کی اھل نہِں۔ آپ %1$s کو چھوڑ کر %2$s کو تلاش کریں ایک ایسی اپلی کیشن جو یہ کر سکتی ہو۔</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">نجی براؤزنگ سے خروج کریں؟</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s مکمل ہوا</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">کھولیں</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">پیش کار نہیں ملا</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">بند کریں</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">شروع کریں</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">آپ کی نجی نوعیت کو پاور اپ کرے</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">نجی برائوزنگ کو اگلی سطح پر لے کر جائیں۔ اشتہارات اور دیگر مواد جو آپ کی مختلف سائٹ پر سراغ راہ کاری کر کے صفحہ کہ لوڈ ہوبے کے وقت کو سست کر سکتا ہے۔</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">آپ کی تلاش، آپ کی طرز پر</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">کچھ مختلف ڈھونڈ رہے ہیں؟ سیٹنگوں سے دوسرے تلاش انجن کا انتخاب کریں۔</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">اپنی ابتدائی اسکرین پر تیز راہ کا ا ضافہ کریں</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">%1$s میں جلد ہی اپنی پسندیدہ سائٹ پر واپس آئیں۔ صرف %1$s مینو سے \&quot;ابتدائی اسکرین پر شامل کریں\&quot; کا انخاب کریں۔</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">رازداری کو عادت بنائیں</string>
+
+ <string name="firstrun_close_button">ٹھیک ہے، مجھے سمجھ آگئی ہے!</string>
+ <string name="firstrun_skip_button">چھوڑ دیں</string>
+ <string name="firstrun_next_button">آگے</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">اظافہ کریں</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">جی ہاں</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">منسوخ کریں</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">نہیں</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">نجی برائوزنگ سیشن</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">اطلاعات آپ کو %1$s سیشن ایک تھاپ سے مٹا سکتے ہیں۔ آپ کو ایپلیکیشن کھولنے یا برائوزر میں کیا چل رہا ہے کی ظرورت نہیں۔</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">برائوزنگ سابقات مٹائیں</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Firefox ڈائونلوڈ کریں</string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">صارف کا نام</string>
+ <string name="gv_prompt_password_hint">پاس ورڈ</string>
+ <string name="gv_prompt_clear">صاف کریں</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">قابل بھروسا کنکشن</string>
+ <string name="security_popup_insecure_connection">غیر مھفوظ کنکشن</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">توثیق کردہ برائے: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">سائٹ سلامتی</string>
+ <string name="preference_autocomplete_duplicate_url_error">URLپہلے ہی موجود ہے</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">صفحے میں ڈھونڈیں</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">صفحہ میں ڈھونڈیں</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%2$d/%1$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d میں سے %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">اگلا نتیجہ تلاش کریں</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">پچھلا نتیجہ تلاش کرین</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">صفحہ میں تلاش کوبرخاست کریں</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">ڈیسک ٹاپ سائٹ کی درخواست کریں</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">ڈیسک ٹاپ سائٹ</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">نقل شدہ URL</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">تخلیق کار ٹول</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">ایپس میں ربط کھولیں</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">اعلٰی</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">سائٹ کی اجازتں</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">چالو</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">بند</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">آٹو پلے</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">اس کی اجازت دینے کے لئے:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Android کی سیٹنگز پر جائیں</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. <b>اجازتوں</b> پر دبایں]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">سیٹنگز پر جائیں</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. <b>%1$s</b> کو چالو کرنے کے لئے ٹو گل کریں]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">کیمرہ</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">مائیکروفون</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">محل وقوع</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">اعلانات</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">اجازت کے لئے پوچھیں</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">بلاک کیا گیا</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">اجازت ہے</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Android کے ذریعہ مسدود ہے</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">آڈیو اور ویڈیو کی اجازت دیں</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">صرف آڈیو بلاک کریں</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">تجویز کردہ</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">آڈیو اور ویڈیو کو مسدود کریں</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">مطالعہ</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">مزید سیکھیں</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">تبدیلیاں لاگو کرنے کے لیے ایپلیکیشن چھوڑ دی جائے گی۔</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">ہٹائیں</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">فعال</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">مکمل شدہ</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">&quot;USB//Wi-Fi کے ذریعے بعید ٹھیک کاری &quot;</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">ربط نئے سیشن میں کھولیں</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">فنگر پرنٹ آئکن</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">فنگر پرنٹ کی پہچان نہیں ہو سکی. دوبارہ کوشش کریں۔</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">انگلی بہت تیزی سے حرکت میں آئی۔ دوبارہ کوشش کریں.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">تلاش تجاویز دکھائیں</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">نہیں</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">ہاں</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">کچھ تلاش انجن تجاویز نہیں دکھا سکتے۔</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">برخاست کریں</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">ابتدائی اسکرین پر تجاویز بند کریں</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">نیا ٹیب کھل گیا</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">سوئچ کریں</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">فوری طور پر نئے ٹیب میں لنک پر سوئچ کریں۔</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">ممکنہ طور پر خطرناک اور دھوکہ دہی والی سائٹوں کو بلاک کریں۔</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">استثنیات</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">اس ویب ساِئٹس کے لئے آپ نے مواد روکنا غیر فعال کر دیا ہے۔</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">ہٹائیں</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">تمام ویب سائٹیں ہٹائیں</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">کوکیز بلاک کری٘ں</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">کیا آپ کوکیز کو بلاک کرنا چاہتے ہیں؟</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">ٹیب تباہ ہوگیا</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">معذرت ہمیں اس ٹیب کے ساتھ ایک مسئلہ درپیش ہے۔</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">ایک نجی براؤزر کے طور پر، ہم کبھی بھی اس ٹیب کو محفوظ یا بحال نہیں کرسکتے ہیں۔</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">ٹیب بند کر دیں</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">تباہی کی رپورٹ Mozilla کو ارسال کریں</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">ٹریکرز %s سے بلاک ہیں۔</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">مواد</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">اشتہار</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">سماجی</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">تجزیہ</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">توسيعى سراغ کاری تحفظ</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">اس سائٹ کیلئے تحفظات بند ہیں</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">اس سائٹ کیلئے تحفظات چالو ہیں</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">کنکشن محفوظ ہے۔</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">کنکشن محفوظ نہیں ہے</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">بلاک کرنے کے لیے ٹریکرز اور اسکرپٹ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">واپس جائیں</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">ہٹائیں</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">نیا نام دیں</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">نیا نام دیں</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">شارٹکٹ کے نام</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">تھیم</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">ہلکا</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">گہرا</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">بیٹری سیور کے ذریعہ مرتب کردہ</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">آلہ کے تھیم پر عمل کریں</string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">ناقابل بھروسا کنکشن</string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">ٹیب بند کریں</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">پاپ اپ بند کریں۔</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">آپ محفوظ ہیں!</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">برخاست کریں</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">بند کریں</string>
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-vi/strings.xml b/mobile/android/focus-android/app/src/main/res/values-vi/strings.xml
new file mode 100644
index 0000000000..3f7833a83a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-vi/strings.xml
@@ -0,0 +1,1120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Hủy bỏ</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Lưu</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Tìm kiếm hoặc nhập địa chỉ</string>
+
+ <string name="teaser">Duyệt web riêng tư.\nDuyệt. Xóa. Lặp lại.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Lịch sử duyệt web của bạn đã bị xóa.</string>
+ <string name="feedback_erase2">Lịch sử duyệt web đã bị xóa</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Lịch sử duyệt web của thẻ đã bị xóa.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Tìm kiếm %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Chia sẻ…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Báo cáo vấn đề về trang</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Mở bằng %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Mở bằng…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Thêm vào màn hình chính</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Thêm vào lối tắt</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Xóa khỏi lối tắt</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Cài đặt</string>
+ <string name="menu_about">Giới thiệu</string>
+ <string name="menu_help">Trợ giúp</string>
+ <string name="menu_rights">Quyền lợi của bạn</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Trình theo dõi đã chặn</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Tắt tính năng này có thể khắc phục một số vấn đề về trang web</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Chặn nội dung</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Tắt để khắc phục lỗi một số trang web</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Được hỗ trợ bởi %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Chia sẻ qua</string>
+
+ <string name="notification_erase_title_android_14">Xóa lịch sử duyệt web?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Nhấn hoặc xóa thông báo này để xóa lịch sử duyệt web của bạn một cách an toàn.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Nhấn hoặc vuốt thông báo này để xóa lịch sử duyệt web của bạn một cách an toàn.</string>
+
+ <string name="notification_erase_text">Xóa lịch sử duyệt web</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Mở</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Xóa và mở</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Xóa</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Xóa lịch sử duyệt web</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Xóa &amp; mở</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Xóa và mở %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Tìm kiếm trong Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Tìm kiếm trong Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Tìm kiếm trong Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Tìm kiếm trong Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s giúp bạn kiểm soát mọi thứ.</p>
+<p>Sử dụng nó như một trình duyệt riêng tư:
+ <ul>
+ <li>Tìm kiếm và duyệt ngay trong ứng dụng</li>
+ <li>Chặn các trình theo dõi (hoặc cập nhật cài đặt để cho phép các trình theo dõi)</li>
+ <li>Xóa cookie cũng như lịch sử tìm kiếm và duyệt web khi xong phiên làm việc</li>
+ </ul>
+</p>
+<p>%1$s được sáng lập bởi Mozilla. Nhiệm vụ của chúng tôi là thúc đẩy một Internet lành mạnh, cởi mở.<br/>
+<a href="%2$s">Tìm hiểu thêm</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Quyền riêng tư &amp; bảo mật</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Theo dõi, cookie, lựa chọn dữ liệu</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Đặt làm mặc định, tự đồng điền</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Giới thiệu về %1$s, trợ giúp</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Trình chống theo dõi nâng cao</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Nội dung web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Chuyển đổi ứng dụng</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Chung</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Trình duyệt, ngôn ngữ mặc định</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Thu thập &amp; sử dụng dữ liệu</string>
+
+ <string name="preference_category_search">Tìm kiếm</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Nhận gợi ý tìm kiếm</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s sẽ gửi nội dung bạn nhập vào thanh địa chỉ đến công cụ tìm kiếm của bạn</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Mặc định</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Công cụ tìm kiếm</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Bật</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Tắt</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL tự động điền</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">Với các trang web hàng đầu</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Cho phép để %s tự động hoàn thành hơn 450 URL phổ biến trong thanh địa chỉ.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">Với trang web bạn thêm</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Bật để %s tự động hoàn thành các URL yêu thích của bạn.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Quản lý trang web</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Quản lý trang web</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Thêm URL tùy chỉnh</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Danh sách tự động điền của bạn:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Thêm URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Thêm URL tùy chỉnh</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Thêm URL tùy chỉnh</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Thêm liên kết vào tự động điền</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookie và dữ liệu trang</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Lựa chọn dữ liệu</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Loại bỏ các URL tùy chỉnh</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Tìm hiểu thêm</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Thêm và quản lý các URL tùy chỉnh tự động điền.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL muốn thêm</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Dán hoặc nhập URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Ví dụ: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Ví dụ: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">URL tùy chỉnh mới đã được thêm vào.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Loại bỏ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Loại bỏ</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Kiểm tra lại URL mà bạn đã nhập.</string>
+
+ <string name="preference_language">Ngôn ngữ</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Mặc định của hệ thống</string>
+
+ <string name="preference_category_privacy">Riêng tư</string>
+ <string name="preference_privacy_block_ads">Chặn trình theo dõi quảng cáo</string>
+ <string name="preference_privacy_block_ads_summary">Một số quảng cáo theo dõi lượt truy cập trang, ngay cả khi bạn không click vào quảng cáo</string>
+ <string name="preference_privacy_block_analytics">Chặn trình theo dõi phân tích</string>
+ <string name="preference_privacy_block_analytics_summary">Được sử dụng để thu thập, phân tích và đo lường các hoạt động như chạm và cuộn trang</string>
+ <string name="preference_privacy_block_social">Chặn trình theo dõi xã hội</string>
+ <string name="preference_privacy_block_social_summary">Được nhúng vào các trang để theo dõi lượt truy cập của bạn và để hiển thị tính năng chẳng hạn như các nút chia sẻ</string>
+ <string name="preference_privacy_block_content">Chặn trình theo dõi khác</string>
+ <string name="preference_privacy_block_content_summary2">Việc kích hoạt có thể khiến một số trang hoạt động không như mong đợi</string>
+ <string name="preference_privacy_category_cookies">Chặn cookie</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Không, cảm ơn</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Chỉ chặn cookie theo dõi của bên thứ ba</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Chỉ chặn cookie bên thứ ba</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Chặn cross-site cookies</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Có</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Sử dụng vân tay để mở khóa ứng dụng</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Mở khóa bằng vân tay nếu bạn đã thêm lối tắt hoặc khi một trang web đã mở trong %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Chế độ ẩn</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Ẩn trang web khi chuyển sang ứng dụng khác và chặn chụp ảnh màn hình.</string>
+
+ <string name="preference_category_security">Bảo mật</string>
+
+ <string name="preference_category_performance">Hiệu suất</string>
+ <string name="preference_performance_block_webfonts">Chặn phông chữ trang Web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Có thể dẫn đến thiếu biểu tượng hoặc hình ảnh</string>
+
+ <string name="preference_performance_block_javascript">Chặn JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Trang có thể tải nhanh hơn, nhưng cũng có thể hoạt động thiếu ổn định</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Đặt %1$s làm trình duyệt mặc định</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Gửi dữ liệu sử dụng</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Tìm hiểu thêm</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla chỉ thu thập những gì chúng tôi cần cung cấp và cải tiến %1$s cho tất cả mọi người.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Chính sách riêng tư</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Thông tin giấy phép</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Thư viện mà chúng tôi sử dụng</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | Thư viện OSS</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Thông tin về %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Công cụ tìm kiếm đã cài đặt</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Chọn công cụ tìm kiếm</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Khôi phục công cụ tìm kiếm mặc định</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Thêm công cụ tìm kiếm khác</string>
+ <string name="preference_search_remove_title">Gỡ bỏ công cụ tìm kiếm</string>
+ <string name="preference_search_remove">Gỡ bỏ</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Thêm công cụ tìm kiếm khác</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Chọn công cụ ưa thích của bạn:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Thêm công cụ tìm kiếm</string>
+
+ <string name="search_add_manually_name_hint">Tên công cụ tìm kiếm</string>
+ <string name="search_add_manually_string">Chuỗi tìm kiếm để sử dụng</string>
+ <string name="search_add_manually_save">Lưu</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Ví dụ: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Đã thêm công cụ tìm kiếm mới.</string>
+
+ <string name="search_add_error_empty_name">Nhập tên công cụ tìm kiếm</string>
+ <string name="search_add_error_duplicate_name">Một công cụ tìm kiếm đã cài đặt đã sử dụng cùng tên này.</string>
+
+ <string name="search_add_error_empty_search">Nhập chuỗi tìm kiếm</string>
+
+ <string name="search_add_error_format">Kiểm tra xem chuỗi tìm kiếm có đúng với định dạng như ở ví dụ không</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Xóa trắng</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Bỏ qua</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Xóa lịch sử duyệt web</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Thẻ đang mở: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Kết nối an toàn</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Đang tải</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Đã tải xong trang web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Tùy chọn thêm</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">Nút tùy chọn khác</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Điều hướng tiến</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Tải lại trang web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Điều hướng lùi</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Dừng tải trang web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Quay về ứng dụng trước đó</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Số trình theo dõi đã chặn</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Chặn theo dõi</string>
+
+ <string name="your_rights">Quyền lợi của bạn</string>
+
+ <string name="external_app_prompt_title">Mở đường dẫn trong ứng dụng khác</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Bạn có thể rời khỏi %1$s để mở liên kết này trong %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Tìm ứng dụng có thể mở liên kết này</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Không có ứng dụng nào trên thiết bị của bạn có thể mở liên kết này. Bạn có thể rời khỏi %1$s để tìm ứng dụng có thể mở %2$s.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Thoát duyệt web riêng tư?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">Đã tải xong %1$s</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Mở</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Đã thêm vào lối tắt!</string>
+
+ <string name="error_hostLookup_title">Không tìm thấy máy chủ</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Đóng</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Chào mừng đến với %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Nhanh. Riêng tư. Không có phiền nhiễu.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Bắt đầu</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s không giống các trình duyệt khác</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">Chúng tôi xóa lịch sử của bạn khi bạn đóng ứng dụng để có thêm quyền riêng tư.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Đặt %1$s làm trifnh duyệt mặc định để bảo vệ dữ liệu của bạn với mọi liên kết bạn mở.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Đặt làm trình duyệt mặc định</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Bỏ qua</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Tăng quyền riêng tư của bạn</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Duyệt web ở chế độ riêng tư để nâng cao bảo mật. Giúp làm giảm thời gian tải trang và chặn các quảng cáo và nội dung mà có thể theo dõi bạn trên các trang web.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Tìm kiếm của bạn, theo cách của bạn</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Đang tìm kiếm với cái gì khác? Chọn công cụ tìm kiếm khác thành mặc định trong Cài đặt.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Thêm lối tắt tới màn hình chính của bạn</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Quay lại trang web của bạn nhanh hơn trong %1$s. Chỉ cần chọn \&quot;Thêm vào màn hình chính\&quot; trong menu %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Làm cho sự riêng tư thành một thói quen</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Đặt %1$s làm trình duyệt mặc định của bạn và nhận được lợi ích của duyệt web riêng tư khi bạn mở các trang web từ các ứng dụng khác.</string>
+
+ <string name="firstrun_close_button">Đã hiểu!</string>
+ <string name="firstrun_skip_button">Bỏ qua</string>
+ <string name="firstrun_next_button">Tiếp</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Thêm</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">CÓ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Hủy bỏ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">KHÔNG</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Lối tắt sẽ mở khi đã tắt tính năng Trình chống theo dõi nâng cao</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Phiên duyệt web riêng tư</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Thông báo cho phép bạn xóa phiên làm việc của %1$s với một cú nhấp. Bạn không cần mở ứng dụng hoặc xem những gì đang chạy trong trình duyệt của bạn.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Xóa lịch sử duyệt web</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Tải Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s là phần mềm miễn phí và mã nguồn mở do Mozilla và các cộng tác viên khác cung cấp.]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s được cung cấp cho bạn theo các điều khoản của <a href="%2$s">Giấy phép Công cộng Mozilla</a> và các giấy phép mã nguồn mở khác.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[Bạn không được cấp bất kỳ quyền hoặc giấy phép nào đối với nhãn hiệu của Tổ chức Mozilla hoặc bất kỳ bên nào, bao gồm tên hoặc logo của Mozilla, Firefox hoặc %1$s. Thông tin bổ sung có thể được tìm thấy <a href="%2$s">tại đây</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Mã nguồn bổ sung cho %1$s có sẵn dưới nhiều <a href="%2$s">giấy phép nguồn mở miễn phí</a> khác.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s cũng sử dụng danh sách chặn được cung cấp bởi Disconnect, Inc. là các tác phẩm riêng biệt và độc lập theo <a href="%2$s">GNU General Public License v3</a> và có sẵn <a href="%3$s">ở đây</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Tên đăng nhập</string>
+ <string name="gv_prompt_password_hint">Mật khẩu</string>
+ <string name="gv_prompt_clear">Xóa</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Kết nối an toàn</string>
+ <string name="security_popup_insecure_connection">Kết nối không an toàn</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Xác minh bởi: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Bảo mật trang web</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL đã tồn tại</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Tìm trong trang</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Tìm trong trang</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d trong số %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Tìm kiếm kết quả tiếp theo</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Tìm kiếm kết quả trước đó</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Loại bỏ tìm kiếm trong trang</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Yêu cầu trang web cho máy tính</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Trang web cho máy tính</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">Đã sao chép URL</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Công cụ nhà phát triển</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Mở liên kết trong ứng dụng</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Nâng cao</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Quyền hạn trang web</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Giảm biểu ngữ cookie</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">Bật</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Tắt</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Giảm biểu ngữ cookie</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">Xem ít biểu ngữ hơn bằng cách tự động từ chối yêu cầu cookie, khi có thể.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">Giảm biểu ngữ cookie</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">BẬT cho trang web này</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Trang web hiện không được hỗ trợ</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">TẮT cho trang web này</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Giảm biểu ngữ cookie</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">TẮT cho trang web này</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">BẬT cho trang web này</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Bật giảm biểu ngữ cookie cho %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Tắt giảm biểu ngữ cookie cho %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s sẽ xóa cookie của trang web này và làm mới trang. Xóa tất cả cookie có thể khiến bạn đăng xuất hoặc làm trống giỏ hàng.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s có thể thử tự động từ chối yêu cầu cookie.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">Trang web này hiện không được hỗ trợ bởi Giảm biểu ngữ cookie. Bạn có muốn yêu cầu nhóm của chúng tôi xem xét trang web này và thêm hỗ trợ trong tương lai không?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Hủy bỏ</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Yêu cầu hỗ trợ</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Đã gửi yêu cầu hỗ trợ trang web.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Đã gửi yêu cầu hỗ trợ trang web.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s cố gắng từ chối yêu cầu cookie để loại bỏ biểu ngữ cookie gây phiền nhiễu.\n\nQuản lý tùy chỉnh biểu ngữ cookie trong %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">cài đặt</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Tự động phát</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">Để cho phép nó:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Đi đến Cài đặt Android</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Nhấn vào <b>Quyền</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Đi đến Cài đặt</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Gạt công tắc <b>%1$s</b> sang BẬT]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Máy ảnh</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Micrô</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Vị trí</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Thông báo</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">Nội dung DRM được kiểm soát</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Hỏi để cho phép</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Đã chặn</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Đã cho phép</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Bị chặn bởi Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Cho phép âm thanh và video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Chỉ chặn âm thanh</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Được đề xuất</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Chặn âm thanh và video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Nghiên cứu</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox có thể cài đặt và chạy các nghiên cứu theo thời gian.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Tìm hiểu thêm</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">Ứng dụng sẽ thoát để áp dụng các thay đổi</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Xóa</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Hoạt động</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Hoàn tất</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Gỡ lỗi từ xa qua USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Mở khóa</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Xác nhận bằng vân tay của bạn</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">Bạn có thể sử dụng vân tay của mình để tiếp tục phiên ứng dụng hiện tại của mình.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Mở liên kết trong phiên mới</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Biểu tượng vân tay</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Không thể nhận dạng vân tay. Vui lòng thử lại.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Ngón tay đã di chuyển quá nhanh. Vui lòng thử lại.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Hiển thị đề xuất tìm kiếm?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> Để nhận đề xuất, %1$s cần gửi nội dung bạn nhập vào thanh địa chỉ tới công cụ tìm kiếm.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Không</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Có</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Một vài công cụ tìm kiếm có thể không hiện gợi ý.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Bỏ qua</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Trang web hoạt động không như mong đợi?\n Hay thử tắt Trình chống theo dõi</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Truy cập một chạm vào các trang web bạn sử dụng nhiều nhất%1$s Menu > Thêm vào Màn hình chính]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Mở mọi liên kết trong %1$s\n Đặt %1$s làm trình duyệt mặc định</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Tự động điền URLs cho các trang web bạn sử dụng\n Nhấp và giữ bất kỳ URL trong thanh địa chỉ</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Mở liên kết trên thẻ mới\n Nhấp và giữ bất kì liên kết nào trên trang</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Tắt mẹo trên màn hình bắt đầu</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">Đã mở thẻ mới</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Chuyển</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Đã vào chế độ toàn màn hình</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Chuyển sang liên kết trong thẻ mới ngay lập tức</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Chặn các trang web nguy hiểm và lừa đảo</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Chặn các trang web được báo cáo là lừa đảo và tấn công, trang web phần mềm độc hại và các trang web phần mềm không mong muốn.</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">Chế độ chỉ HTTPS</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Tự động cố gắng kết nối với các trang web bằng giao thức mã hóa HTTPS để tăng cường bảo mật.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Ngoại lệ</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">Bạn đã tắt chế độ Chặn nội dung cho các trang web này.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Xóa</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Xóa tất cả các trang web</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Chặn cookie</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Bạn có muốn chặn cookie?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Thẻ bị hỏng</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Rất tiếc. Chúng tôi đã gặp sự cố với thẻ này.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">Trong trình duyệt riêng tư, chúng tôi không bao giờ lưu và không thể khôi phục thẻ này.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Đóng thẻ</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Gửi báo cáo lỗi đến Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Trình theo dõi bị chặn kể từ %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Nội dung</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Quảng cáo</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Xã hội</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Phân tích</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Trình chống theo dõi nâng cao</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Bảo vệ đã TẮT cho trang web này</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Bảo vệ đã BẬT cho trang web này</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Kết nối an toàn</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Kết nối không an toàn</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Trình theo dõi và script để chặn</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Quay lại</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Xóa</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Đổi tên</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Đổi tên</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Tên lối tắt</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Ảnh đã lưu và chia sẻ &lt;b&gt;sẽ không bị xóa&lt;/b&gt; khi bạn xóa lịch sử %1$s</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Chủ đề</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Sáng</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Tối</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Đặt theo trình tiết kiệm pin</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Đặt theo chủ đề thiết bị</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">Trang web này không hỗ trợ HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s đã thử kết nối HTTPS bất cứ khi nào có thể để bảo mật hơn.
+ <a href="%2$s">Tìm hiểu thêm</a> <br/><br/>
+ Thay đổi cài đặt này trong Cài đặt > Riêng tư &amp; bảo mật > Bảo mật.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Kết nối không an toàn</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ Đây có thể là sự cố với cấu hình của máy chủ hoặc có thể là ai đó đang cố mạo danh máy chủ. <br/><br/>
+ Nếu trước đây bạn đã kết nối thành công với máy chủ này, lỗi có thể là tạm thời.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Ai đó có thể đang cố mạo danh trang web và việc tiếp tục có thể gặp rủi ro.</label>
+ <br><br>
+ <label>%1$s không tin tưởng <b>%2$s</b> bởi vì tổ chức phát hành chứng chỉ của nó không xác định, chứng chỉ tự ký hoặc máy chủ không gửi đúng chứng chỉ trung gian.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Đóng thẻ</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Bắt được rồi! Chúng tôi đã ngăn trang web này theo dõi bạn. Nhấn vào tấm khiên bất kỳ lúc nào để xem những gì chúng tôi đang chặn.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Đóng cửa sổ bật lên</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">Bạn đã được bảo vệ!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">Các cài đặt mặc định này cung cấp khả năng bảo vệ mạnh mẽ. Tuy nhiên, thật dễ dàng để điều chỉnh cài đặt để đáp ứng các nhu cầu cụ thể của bạn.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Bỏ qua</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Nhấn vào đây để xóa tất cả — lịch sử, cookie, mọi thứ — và bắt đầu làm mới trên một thẻ mới.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Đóng</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Widget tìm kiếm</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Đã xóa lịch sử duyệt web! 🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Bắt đầu phiên duyệt web riêng tư của bạn và chúng tôi sẽ chặn trình theo dõi và các nội dung xấu khác khi bạn di chuyển.</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">Chúng tôi sẽ để bạn ở chế độ duyệt web riêng tư, nhưng hãy bắt đầu nhanh hơn vào lần sau với tiện ích %1$s trên màn hình chính của bạn.</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Thêm widget vào màn hình chính</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Đã thêm widget vào màn hình chính</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-wo/strings.xml b/mobile/android/focus-android/app/src/main/res/values-wo/strings.xml
new file mode 100644
index 0000000000..73c23f2250
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-wo/strings.xml
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <string name="action_cancel">Neenal</string>
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Denc</string>
+
+ <string name="urlbar_hint">Seet walla dugal ag màkkaan</string>
+
+ <string name="teaser">Njoow ci sutura doxal boppam.\nJoow. Far. Tambaliwaat.</string>
+
+ <string name="feedback_erase">Farees na jaar-jaaru sag njoow.</string>
+
+ <string name="search_hint">Seet %1$s</string>
+
+ <string name="menu_share">Séddoo…</string>
+
+ <string name="menu_add_to_home_screen">Yokk ci njëlbéenu sa xoolu</string>
+
+ <string name="menu_settings">Jekk-jekkal</string>
+ <string name="menu_about">Ñeel</string>
+ <string name="menu_help">Ndimbal</string>
+ <string name="menu_rights">Say yelleef</string>
+
+ <string name="menu_trackers_blocked_title">Téyees na toppaatekat yi</string>
+
+ <string name="share_dialog_title">Séddoo ci</string>
+
+ <string name="notification_erase_text">Far jaar-jaaru njoow gi</string>
+
+ <string name="notification_action_open">Ubbi</string>
+
+ <string name="notification_action_erase_and_open">Far te Ubbi</string>
+
+ <string name="shortcut_erase_short_label">Far</string>
+
+ <string name="shortcut_erase_long_label">Far jaar-jaaru njoow gi</string>
+
+
+ <string name="preference_category_search">Seet</string>
+
+ <string name="preference_search_engine_default">Wàccaale</string>
+
+ <string name="preference_state_on">Taalees</string>
+
+ <string name="preference_state_off">Fayees</string>
+
+ <string name="preference_subitem_autocomplete">Àggale mbindum màkkaan gu boppu</string>
+
+ <string name="preference_autocomplete_action_add">+ Yokkal ag màkkaan gees jëmmal</string>
+
+ <string name="preference_autocomplete_title_add">Yokkal ag màkkaan gees jëmmal</string>
+
+ <string name="preference_autocomplete_title_remove">Dindi màkkaan gees Jëmmal</string>
+
+ <string name="preference_autocomplete_learn_more">Gën a xam</string>
+
+ <string name="preference_autocomplete_custom_summary">Yokkal te yor mottali gu boppu yu màkkaan yees jëmmal.</string>
+
+ <string name="preference_autocomplete_add_title">Màkkaan gees war a yokk</string>
+
+ <string name="preference_autocomplete_add_hint">Tafal wala bind ag màkkaan</string>
+
+ <string name="preference_autocomplete_add_example">Misaal: misaal.com</string>
+
+ <string name="preference_autocomplete_add_confirmation">Yokkees na màkkaan gees jëmmal gu bees.</string>
+
+ <string name="preference_autocomplete_menu_remove">Far</string>
+
+ <string name="preference_autocomplete_action_remove_content_description">Far</string>
+
+ <string name="preference_autocomplete_add_error">Xoolaatal màkkaan gi nga bind.</string>
+
+ <string name="preference_language">Làkk</string>
+ <string name="preference_language_systemdefault">Wàccaaleeg noste gi</string>
+
+ <string name="preference_category_privacy">Sutura</string>
+ <string name="preference_privacy_block_ads">Téye toppkati siiwal</string>
+ <string name="preference_privacy_block_ads_summary">Yenn siiwal yi, donte bësoo ci, man nañoo topp dal yi ngay ubbi</string>
+ <string name="preference_privacy_block_analytics">Téye toppkati xayma</string>
+ <string name="preference_privacy_block_analytics_summary">Dees leen di jëfandikoo ngir dajale, saytu ak natt yëngu-yëngu yu mel ni bës walla yéegal-wàcce aw xët</string>
+ <string name="preference_privacy_block_social">Téye toppkati mbaali mboolaay</string>
+ <string name="preference_privacy_block_social_summary">Dees leen di dugalaale ci dali web yi ngir topp sag njoow ak di wone ay solo niki bësu ngir séddoo</string>
+ <string name="preference_privacy_block_content">Téye yaneen toppkati ëmbéef</string>
+ <string name="preference_privacy_block_content_summary2">Doxal gi man naa jur yenn xëti web yi am doxaliin gees foogulwoon</string>
+
+ <string name="preference_privacy_secure_mode">Nëbbu</string>
+ <string name="preference_privacy_stealth_summary">Nëbb xëti web yi sooy jàll ci beneen jëfekaay</string>
+
+ <string name="preference_category_performance">Gaawaay</string>
+ <string name="preference_performance_block_webfonts">Téye loyi web yi</string>
+ <string name="preference_performance_block_webfonts_summary">Man naa jur njunj walla péeñ yu dul feeñ</string>
+
+ <string name="preference_default_browser2">Def %1$s muy sa joowukaay bu njëkk</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Yónneey njoxe ci njëfandikoo gi</string>
+
+ <string name="preference_mozilla_telemetry_summary">Gën ce xam</string>
+
+ <string name="preference_mozilla_telemetry_summary2">Mozilla li mu soxla rekk, te manul ñàkk, lay jéem a dajale ngir man a gënal %1$s ngir nun ñépp.</string>
+
+ <string name="preference_privacy_notice">Sàrti Sutura</string>
+
+ <string name="preference_about">Ñeel %1$s</string>
+
+ <string name="preference_search_installed_search_engines">Seetukaay yiñ fi sàmp</string>
+
+ <string name="preference_search_restore">Delloo seetukaay yi na ñu meloon</string>
+
+ <string name="preference_search_add2">+ Yokk ab seetukaay</string>
+ <string name="preference_search_remove_title">Far ay seetukaay</string>
+ <string name="preference_search_remove">Far</string>
+
+ <string name="action_option_add_search_engine">Yokk ab seetukaay</string>
+
+ <string name="search_add_manually_name_hint">Turu seetukaay bi</string>
+ <string name="search_add_manually_string">Mbindum seet mees di jëfandikoo</string>
+ <string name="search_add_manually_save">Denc</string>
+
+ <string name="search_add_manually_example">Misaal: misaal.com//search/?q=%s</string>
+
+ <string name="search_add_confirmation">Yokkees na seetukaay bu bees.</string>
+
+ <string name="search_add_error_empty_name">Duggalal turu seetukaay bi</string>
+
+ <string name="search_add_error_empty_search">Duggalal mbind mi ngay seet</string>
+
+ <string name="search_add_error_format">Seetal ndax mbindum sa ceet méngoo naak melokaanu Misaal mi</string>
+
+ <string name="content_description_clear_input">Far mbind mi</string>
+
+ <string name="content_description_dismiss_input">Tëj</string>
+
+ <string name="content_description_erase">Far jaar-jaaru njoow gi</string>
+
+ <string name="content_description_tab_counter">Làcc yi ubbeeku: %1$s</string>
+
+ <string name="content_description_lock">Lonkoo gu wóor</string>
+
+ <string name="accessibility_announcement_loading">Mi ngi yeb</string>
+
+ <string name="accessibility_announcement_loading_finished">Yebees na dalu web bi</string>
+
+ <string name="content_description_menu">Yeneen tànnéef</string>
+
+ <string name="content_description_forward">Dem ci kanam</string>
+
+ <string name="content_description_reload">Yebaat dalu web bi</string>
+
+ <string name="content_description_back">Dellu ginnaaw</string>
+
+ <string name="content_description_stop">Dag dali web biy yeebu</string>
+
+ <string name="content_description_customtab_exit">Déllu ci app bi kë jiitu</string>
+
+ <string name="content_description_blocking_switch">Tëyyé trackers yi</string>
+
+ <string name="your_rights">Sa wareef</string>
+
+ <string name="external_app_prompt_title">Ubbil lëkkalekaay bi ci beneen jëfekaay</string>
+ <string name="external_app_prompt">Man ngaa génn %1$s ngir ubbi bii lëkkalekaay ci %2$s.</string>
+ <string name="external_app_prompt_no_app_title">Seet ab jëfekaay bu man a ubbu lëkkalekaay bi</string>
+ <string name="external_app_prompt_no_app">Amul benn jëfekaay ci sa jumtukaay bu man a ubbi bii lëkkalekaay. Man ngaa génn %1$s ngir seet ci %2$s ab jëfekaay bu ko man.</string>
+ <string name="external_multiple_apps_matched_exit">Génn ci Njoow gu Suturloo gi?</string>
+
+ <string name="download_snackbar_finished">%1$s mat na</string>
+
+ <string name="download_snackbar_open">Ubbi</string>
+
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Giseesul joxekaay bi</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <string name="firstrun_defaultbrowser_title">Dooleel sa sutura</string>
+ <string name="firstrun_defaultbrowser_text2">Yóbbul njoow ci sutura ci geneen tolluwaay. Téyeel siiwal yeek yeneen ëmbeef yi lay man topp ci yeneen dal yi te di yeexal yebug xët yi.</string>
+
+ <string name="firstrun_search_title">Seet ak noo ko bëggee</string>
+ <string name="firstrun_search_text">Leneen ngay seet? Tànnal beneen seetukaay ci jekk-jekkal yi.</string>
+
+ <string name="firstrun_shortcut_title">Yokki lëkkalekaay ci njëlbeenu sa xoolu</string>
+ <string name="firstrun_shortcut_text">Dellu ci say dal yi nga taamu ci %1$s ci lu gaaw. Doy na nga bës ci \&quot;Yokk ci njëlbeenu xoolu bi\&quot; ci njëlu %1$s.</string>
+
+ <string name="firstrun_privacy_title">Def joow ci sutura doon jikko</string>
+ <string name="firstrun_privacy_text">Def %1$s sa joowukaay bu njëkk te jariñoo mbaaxi njoow ci sutura sooy ubbi xëti web ci yeneen jëfekaay.</string>
+
+ <string name="firstrun_close_button">OK, Dégg naa la!</string>
+ <string name="firstrun_skip_button">Tëb</string>
+ <string name="firstrun_next_button">Toftal</string>
+
+ <string name="content_blocking_disabled">-</string>
+
+ <string name="dialog_addtohomescreen_action_add">Yokk</string>
+
+ <string name="dialog_addtohomescreen_action_cancel">Neenal</string>
+
+ <string name="notification_browsing_session_channel_name">Ubbig njoow ci sutura</string>
+
+ <string name="notification_browsing_session_channel_description">Yëgle yi di nañ la may ngay man di far njoxéef yi ci sa %1$s ci benn bës rek. Soxlawoo ubbi jëfekaay walla xool liy dox ci sa joowukaay.</string>
+
+ <string name="tabs_tray_action_erase">Far jaar-jaaru njoow gi</string>
+
+ <string name="download_firefox">Yebbi Firefox</string>
+
+ <string name="your_rights_content1">%1$s jëfekaay bu amul-fay te ubbeeku la bu Mozilla ak yeneen aji-barkeelu defar.</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-yua/strings.xml b/mobile/android/focus-android/app/src/main/res/values-yua/strings.xml
new file mode 100644
index 0000000000..1bbc5049a4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-yua/strings.xml
@@ -0,0 +1,479 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Ma’ u beetal</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">Uts</string>
+
+ <string name="action_save">Táabsaj</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Kaxbil wa oksaj tu\'uxi’</string>
+
+ <string name="teaser">Ku maan tu juunaj chen a wóok\'sal.\nMaanen. Púustej. Tu ka\'aten.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Lúubsa\'ab tuláakal ba\'ax ta kaxtej.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Kaxbil %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Ka túuxtik ti\'…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">A\'al u táalamil te\'e túux tan kaxtiko\'</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Je\'eb ich %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Je\'eb ich…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Ts\'áabak tu\'ux u yila\'al tun káajal</string>
+
+ <string name="menu_settings">Máak’anbil</string>
+ <string name="menu_about">Yo\'sal</string>
+ <string name="menu_help">Áantaj</string>
+ <string name="menu_rights">A tojbe\'enilo\'ob</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Kaxan ba\'al tupa\'anilo\'ob</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Léench’inta’ab yéetel %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Túuxbil yéetel</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Lúubsal tuláakal tu\'ux maanech</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Je\'ebek</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Tuupuk ts\'óokole\' ka je\'ebek</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Tuupuk</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Lúubsal tuláakal tu\'ux maanech</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Tuupuk ts\'óokole\' ka je\'ebek</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Tuupuk ts\'óokole\' ka je\'ebek %1$s</string>
+
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Ta wóok’sal yéetel Jeets’el óol</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Bixil ka kaxantik ba’alob, cookies, yéetel péeksilil</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Ts’íibta’ab le ta yáax ts’íibo’, ka chuupuk tu juunaj</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">Yóok’sal le %1$s, áantaj</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Ba’alob U ba’il web</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">K’exlantik biilalo’ob</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Much’lantik péeksililo’ob yéetel bix beelankil</string>
+
+ <string name="preference_category_search">Kaxta’ak</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Le ta yáax ts’íibo’</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Meyajta’al</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Ma’ tu meyajta’al</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">Chuupuk tu juunaj URL</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Ts’áabak URL tsikbe’eniltal</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Ts’áabak URL tsikbe’eniltal</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Ts’áabak URL tsikbe’eniltal</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies yéetel u péeksilil le tu’uxilo’</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Jela’anil péeksilo’ob</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Tuupuk le URL tsikbe’enilta’ab</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">K’ajóoltal u yaanali’</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Ts’áabak bey xan kaxáantak le chuupuk tu juunal le URL tsikbe’enilta’ab.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL uti’al u ts’áabak</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Tak’bil wa oksa’ak u ts’íibtal URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">E’esajil: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">E’esajil: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Túumben URL tsikbe’eltan ts’óok u ts’áabak.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Tuupuk</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Tuupuk</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Ka’a ilej le URL ta ts’íibtaj.</string>
+
+ <string name="preference_language">T’aanil</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">U biilal yáax ts’íibtaj ti’ le nuupankil meyajilo’</string>
+
+ <string name="preference_category_privacy">Chen tu wóok’sale’</string>
+ <string name="preference_privacy_block_ads">Ma’ meyajta’ab le kaxan ba’al uti’al koonol ba’alob</string>
+ <string name="preference_privacy_block_ads_summary">Yáan koonol ba’alob ku kaxantik a xíimbalil ich le tu’uxilo’, kex ma’ tan péets’ik yóok’olo’</string>
+ <string name="preference_privacy_block_analytics">Ma’ meyajta’al le kaxan ba’al túukulnaj</string>
+ <string name="preference_privacy_block_analytics_summary">Beelankil uti’al moolbil, túukulbil yéetel p’iisbil péeksilo’ob je’e bey le ku máachaj bey xan ku jakchajal</string>
+ <string name="preference_privacy_block_social">Ma’ meyajta’al le kaxan ba’al uti’al tsikbal máak</string>
+ <string name="preference_privacy_block_social_summary">Jupa’an ich je’e tu’uxake’ uti’al u kaxantik tu’ux ka maan ich web, bey xan uti’al u ye’esiktech bixilo’ob je’e bey le ka ts’áank’abtik uti’al a túuxtik ba’alob</string>
+ <string name="preference_privacy_block_content">Ma’ meyajta’ab le kaxan ba’al uti’al jejelas ba’ilob</string>
+ <string name="preference_privacy_block_content_summary2">Wa ka meyajtike’ ju beytal u k’as jela’antik u meyaj jejelas tseel ju’unilob</string>
+ <string name="preference_privacy_category_cookies">Ma’ meyajta’ak cookies</string>
+
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Ma’ meyajta’ak chen cookies ti’ yaanalilo’ob</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Mun yila’al</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Ta’akbesa’al le tseel ju’unob web ken u káajal u k’exel biilalilo’ob.</string>
+
+ <string name="preference_category_performance">Buka’ajil</string>
+ <string name="preference_performance_block_webfonts">Ma’ meyajta’al u sayab web</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">Je’el u beytal u sa’atal le woojilo’ob wa le oochelo’ob</string>
+
+ <string name="preference_performance_block_javascript">Ma’ meyajta’ak JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Le tseel ju’unob web je’el u beytal u meyaj séebanil chen ba’ale’ je’el u beytal u k’as k’exik u meyaj xan</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Yéeytej %1$s ka p’àatak bey a suuk a maan ich web yéeteli’</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Túuxtej buka’aj ts’óok a xupik</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">K’ajóoltal u yaanali’</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla ku kaxantik u molik chen le jach k’áabetaj uti’al u ts’a’ik yéetel u ma’alobtal %1$s ti’ tuláakalilo’ob.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Ts’áab ojelbil bix u kana’antal ati’alo’</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Yóok’sal le %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">U múuk’il ti’ u maan máak ich web ts’oka’anilob</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Ts’áabak tu ka’aten le u yáax múuk’il ti’ u kaxan ba’al máak ich web</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Tsàabak u láak’ u múuk’il ti’ u kaxan ba’al máak ich web</string>
+ <string name="preference_search_remove_title">Túupuk u múuk’il ti’ u kaxan ba’al máak ich web</string>
+ <string name="preference_search_remove">Tuupuk</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Tsàabak u múuk’il ti’ u kaxan ba’al máak ich web</string>
+
+ <string name="search_add_manually_name_hint">U k’áaba’ ti’ u múuk’il ti’ u kaxan ba’al máak ich web</string>
+ <string name="search_add_manually_string">Kaxbil nuupul uti’al meyajta’al</string>
+ <string name="search_add_manually_save">Táabsaj</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">E’esajil: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Ts’óok u tsàabal túumben u múuk’il ti’ u kaxan ba’al máak ich web.</string>
+
+ <string name="search_add_error_empty_name">Oksa’ak u k’áaba’ ti’ le u múuk’il ti’ u maan máak ich web</string>
+ <string name="search_add_error_duplicate_name">Junp’éel le u múuk’il ti’ u kaxan ba’al máak ich webe’ ts’óok u k’áabatal beyo’.</string>
+
+ <string name="search_add_error_empty_search">Oksa’ak le nuupul ti’ u kaxbil ba’al</string>
+
+ <string name="search_add_error_format">Ila’al wa le nuupul ti’ u kaxbil ba’ale’ uts ti’ le paatul yáax e’esajilo’</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Púustak le tsool ts’íibilo’</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Ma’ ilbil</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Lúubsal tuláakal tu\'ux maanech</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">U nu’ukbesaj ts’íibilo’ jeba’anil: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Utsil nuupankil</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Chuupulil</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Le tseelil webe’ ts’óok u chuupul</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Jejelas tu’uxil</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Xeen toj táanil</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Ka’a chuupuk le tseelil webe’</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Suutnen ti’ a maan ich web</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">P’áatak u chuupul le tseelil webe’</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Suutnen ti’ le ba’il ta yáax ts’íibo’</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Ma’ meyajta’al le kaxan ba’alo’</string>
+
+ <string name="your_rights">A tojbe’enilob</string>
+
+ <string name="external_app_prompt_title">Je’ebak le nuupankil ich yaanal ba’ilo’</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Je’el u beytal a jóok’oj ti’ %1$s uti’al a je’ik le nuupankila’ ich %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Kaxanta’ak junp’éel ba’il tu’ux ka pàajchajak u je’ik le nuupankila’</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Mixjunp’éel le ba’il ich a núukulila’ u je’ik le nuupankila’. Je’el u beytal a jóok’oj ti’ %1$s uti’al a kaxtik junp’éel bail tu’ux u jèebej ich %2$s.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">¿A k’áat a jóok’oj ti’ le maan ich web chen a wóok’sal wa’a?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s ts’óokij</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Je\'ebek</string>
+
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Ma’ kaxta’ab le núukulil ku ts’a’ik internet</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Nojochkúuns a ba’il ta wóok’sal</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Bis táanxil tu’ux le a maansajil ich web yéetel u ba’il a wóok’sal. Ma’ cha’ik u chíikpajal le koonol ba’alobo’ wa u láak’ ba’il ku kaxtikech ich le tseel web tu’ux ka maano’ uti’al u chaambelkúunsik a wéensik ba’alob te’ webo’.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">A kaxan ba’al, je’e bey a k’áato’</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">¿Ka kaxtik ba’al jela’anil wa’a? Yéey u jela’anil u múuk’il a kaxan ba’al ta yéeytaj yáax táanile’ ich le ba’ila’.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Ts’a’a u séeb k’at bejilo’ob ti’ a wokoj te’ yáax cha’anila’</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Súutnen séebanil ti’ a tseel web uts ta wicho’ ich %1$s. Yéey \&quot;ts’áabak ich u yáax tseel web\&quot; lik’ul u ts’íibil tsoolanilo’ob %1$s.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Suuktatech u kanáantal le a wóok’salo’</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Ts’a’a %1$s bey a kaxan ba’al a yéeymaj ka wilik le ma’alobil kaxan ba’al tu’ux u kanáantal le a wóok’sal ken a je’ik jejelas tseel web lik’ulil yaanal ba’ilob.</string>
+
+ <string name="firstrun_close_button">¡Na’atbij!</string>
+ <string name="firstrun_skip_button">Ma’ ilbij</string>
+ <string name="firstrun_next_button">U láak’o’</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Ts’áabak</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">JE’ELE’</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Ma’ u beetal</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">MA’</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Meyajil ti’ maan ich web chen teech</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Le ku ts’a’ik ojelbil ba’ax ku yúuchule’ ku cha’ik u túupul le meyajil %1$s chen yéetel jun péets’ak. Mix k’áabet a je’ik u ba’il wa mix k’áabet a wilik ba’ax ku meyaj ich tu’ux a maano’.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Lúubsal tuláakal tu\'ux maanech</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Éemsa’ak Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s lela’ jun meyajil mina’an u wóojil jeba’antak, béeta’ab men Mozilla yéetel u láak’ muulmeyajilo’ob.]]></string>
+
+
+
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">A k’áaba’</string>
+ <string name="gv_prompt_password_hint">Wóojil</string>
+ <string name="gv_prompt_clear">Púustak</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Uts nuupankil</string>
+ <string name="security_popup_insecure_connection">K’as nuupankil</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Ila’abij men: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">U jéets’elil te’e tu’uxilo’</string>
+ <string name="preference_autocomplete_duplicate_url_error">Le URL yani’</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">Ma’</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Je’ele’</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Ma’ ilbil</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-zam/strings.xml b/mobile/android/focus-android/app/src/main/res/values-zam/strings.xml
new file mode 100644
index 0000000000..8fb42c387f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-zam/strings.xml
@@ -0,0 +1,443 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">B-láɁ=y</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">ăɁ</string>
+
+ <string name="action_save">Mb-lòɁ sóg</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">KwàɁn kó wiɁ</string>
+
+ <string name="teaser">Wí lút tá. KwàɁn. Tedónt. Bí-ré.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Mté dont na ré ko wíl.</string>
+
+ <string name="feedback_erase2">Ndó bíy</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Ndó bíy sá.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">KwàɁn lô %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Tă~làz…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Gús KwàɁn m-xâc</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Mb-šàlɁ leɁn %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Mb-šàlɁ leɁn…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">M-tòb lô yíʔb</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">M-tóba ló kó tílta yúl</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Mté dónt kúe</string>
+
+ <string name="menu_settings">Thús kùey</string>
+ <string name="menu_about">Chò nàk ná</string>
+ <string name="menu_help">Lì ché</string>
+ <string name="menu_rights">Ko nákin niél</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">TòɁw-ná lô men dè-kè</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">ChaɁn %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Tă~làz leɁn</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">Tób bí lô góš</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Mb-šàlɁ lá</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Tòb bí ner mb-šàlɁ</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Tòb bì</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Tób bí lô góš</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Tòb bí &amp; mb-šàlɁ</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Tòb bí ner mb-šàlɁ %1$s</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">KwàɁn léɁn Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">KwàɁn léɁn Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">KwàɁn léɁn Focus Beta</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">KwàɁn léɁn Focus Nightly</string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Yent-chó wìʔ</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Nêd, cookies ner yêts</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">KwàɁn %1$s, lì-chél</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">KwàɁn šò=leɁn</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Sè App</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">Ré=tá</string>
+
+ <string name="preference_category_search">KwàɁn</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">b-šèn=ná</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">Blá Kìy</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Tóg gá</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL mkéy</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">m-tób tùs kùe URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">M-tób tùs kùe URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">M-tòb URL</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies ner kwàɁn mb-šèn=lû</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">B-šèn=ná kùe</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Mkìb tùs kùe URLs</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Lab kùe</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">M-tòb URL</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Lí chop ó m-tòb URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">&quot;VáɁ: mozilla.org &quot;</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">M-tòb: sálépágina.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">Dób lá URL kùb.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Kìb</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Kìb</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Wì cho besta blüy URL.</string>
+
+ <string name="preference_language">Dìzh</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">Kó díed lenɁ</string>
+
+ <string name="preference_category_privacy">Ngyé-n cho wiɁ</string>
+ <string name="preference_privacy_block_ads">TòɁw-ná lô men dè-kè</string>
+ <string name="preference_privacy_block_analytics">TòɁw-ná lô men dè-kè</string>
+ <string name="preference_privacy_block_social">TòɁw-ná lô men dè-kè</string>
+ <string name="preference_privacy_block_content">TòɁw-ná lô men dè-kè</string>
+ <string name="preference_privacy_category_cookies">TòɁw cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">Yénta</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">TòɁw 3 cookies ná táɁ thîb mèn</string>
+
+ <string name="preference_privacy_should_block_cookies_yes_option2">ăɁ líy</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Yìz</string>
+
+ <string name="preference_category_performance">Sà dè kèy sín</string>
+ <string name="preference_performance_block_webfonts">TòɁw letr Internet</string>
+
+ <string name="preference_performance_block_javascript">TòɁw lô JavaScript</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">&quot;M-tòb %1$s mdó-lás=lû &quot;</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">M-tàl kò lì-chèl</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Lab kùe</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">M-bláb kùe</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">Cho nak kùe %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Tob yìb kwàɁn</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">bí~rè sá nák ahɁ</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">M-tòb tá thîb yìb kwàɁn</string>
+ <string name="preference_search_remove_title">Kìb yíb kúan</string>
+ <string name="preference_search_remove">Kíb</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">M-tòb yíʔb-kwàɁn</string>
+
+ <string name="search_add_manually_name_hint">KwàɁn sá lé yíʔb-kwàɁn</string>
+ <string name="search_add_manually_string">KwàɁn nêt lí chèl</string>
+ <string name="search_add_manually_save">Mb-lòɁ sóg</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Wí: lemen.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">Dób lá yíʔb-kwàɁn.</string>
+
+ <string name="search_add_error_empty_name">KwàɁn sá lé yíʔb-kwàɁn</string>
+
+ <string name="search_add_error_empty_search">KwàɁn sá lé dìzh</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Tòmbî tòlô</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">B-láɁ=y</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Tób bí lô góš</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Lô nó-šàlɁ: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Mgéy sín</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Mdé láɁ ní</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Lô nó-šàlɁ</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">Wì kó ták lìl</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Gûa sìs nêd</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">TeɁ zàp lô</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Bì-rè nêd</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">B-láɁ mdé láɁ=y</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Bí-ré app</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">TòɁw-ná lô men dè-kè</string>
+
+ <string name="your_rights">Ko nákin niél</string>
+
+ <string name="external_app_prompt_title">Mb-šàlɁ nêt (n̆eza) lenɁ tá thîb app</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">Tàk rûl trè %1$s zá tàk mb-šàlɁ nêd ré lenɁ %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">KwàɁn app kó tàk mb-šàlɁ nêd ré</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">Niè thîb app tàk mb-šàlɁ nêd ré. Tàk rûl trè %1$s zá tàk mb-šàlɁ nêd ré lenɁ %2$s.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">¿Mb-ròɁ gá?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s tèlôy</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Mb-šàlɁ lá</string>
+
+
+
+
+
+
+
+ <string name="error_hostLookup_title">Ngyé-n yìb rè</string>
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">M-tób kì ko lùt ta wí</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Lleva la navegación privada a otro nivel. Bloquea anuncios publicitarios y otro tipo de contenido que puede rastrearte a través de los sitios y ralentizar el tiempo de descarga de las páginas.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Kò kwàʔn lû, nêb lû</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">¿Buscas algo diferente? Elige otro motor de búsqueda predeterminado en Ajustes.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Agrega atajos a la pantalla principal</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Acostúmbrate a la privacidad</string>
+
+ <string name="firstrun_close_button">ăɁ, gùa!</string>
+ <string name="firstrun_skip_button">B-láɁ=y</string>
+ <string name="firstrun_next_button">Tá thîb vá</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">M-tòb</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">ăɁ</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">B-láɁ=y</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Lút ta níe kúe</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Tób bí lô góš</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">B-là Firefox</string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Chó lèl</string>
+ <string name="gv_prompt_password_hint">Contraseñ</string>
+ <string name="gv_prompt_clear">Tòb-bì</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Bès-tá m-dób kîy</string>
+ <string name="security_popup_insecure_connection">WíɁ bès-tá</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">WíɁ=y: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Zá nî-éy</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL šò=là</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">ăɁ</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Promote SearchWidget Dialog -->
+
+ </resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-zh-rCN/strings.xml b/mobile/android/focus-android/app/src/main/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000000..a2fbdb9796
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-zh-rCN/strings.xml
@@ -0,0 +1,1127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">取消</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">确定</string>
+
+ <string name="action_save">保存</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">搜索或输入网址</string>
+
+ <string name="teaser">全自动的私密浏览。\n无痕浏览,不必劳心。</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">您的浏览历史已清除。</string>
+ <string name="feedback_erase2">浏览历史已清除</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">已清除标签页浏览历史。</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">搜索 %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">分享…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">反馈网站问题</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">用 %1$s 打开</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">打开于…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">添加到主屏幕</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">添加快捷方式</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">移除快捷方式</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">设置</string>
+ <string name="menu_about">关于</string>
+ <string name="menu_help">帮助</string>
+ <string name="menu_rights">您的权利</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">已屏蔽跟踪器</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">关闭此功能或许可以解决一些网站的问题</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">内容拦截</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">关闭以解决一些网站问题</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">由 %1$s 提供</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">分享方式</string>
+
+ <string name="notification_erase_title_android_14">需要清除浏览历史吗?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">点按或清除此通知,即可安全清除浏览历史。</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">点按或轻扫此通知,即可安全清除浏览历史。</string>
+
+ <string name="notification_erase_text">清除浏览历史</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">打开</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">清除并打开</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">清除</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">清除浏览历史</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">清除并打开</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">清除并打开 %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Focus · 搜索</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Klar · 搜索</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Focus Beta · 搜索</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Focus Nightly · 搜索</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s 让您掌控线上生活。</p>
+<p>可以用作隐私浏览器:
+ <ul>
+ <li>直接在应用中搜索和浏览</li>
+ <li>拦截跟踪器(也可调整为允许跟踪器)</li>
+ <li>自动清除 Cookie、搜索记录和浏览历史</li>
+ </ul>
+</p>
+<p>%1$s 由 Mozilla 出品。我们的使命是促成健康、开放的互联网。<br/>
+<a href="%2$s">详细了解</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">隐私与安全</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">跟踪、Cookie、数据反馈</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">设置默认引擎、自动补全</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">关于 %1$s、使用说明</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">增强型跟踪保护</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">网络内容</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">切换应用程序</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">常规</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">默认浏览器、语言</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">数据收集与使用</string>
+
+ <string name="preference_category_search">搜索</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">获取搜索建议</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s 会将您在地址栏中输入的内容发送至您的搜索引擎</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">默认</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">搜索引擎</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">开启</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">关闭</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">网址自动补全</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">对于常用网站</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">开启之后,%s 地址栏可以自动补全超过 450 个热门网站。</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">对于您添加的网站</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">开启之后,%s 可以自动补全您喜爱的网址。</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">管理网站</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">管理网站</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ 添加自定义网址</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">您的自动补全列表:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">添加网址</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">添加自定义网址</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">添加自定义网址</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">添加自动补全的链接</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookie 和网站数据</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">数据反馈</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">移除自定义网址</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">详细了解</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">添加和管理自定义的自动补全网址。</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">要添加的网址</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">粘贴或输入网址</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">示例:mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">例如:example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">已添加新的自定义网址。</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">移除</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">移除</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">请复查您输入的网址。</string>
+
+ <string name="preference_language">语言</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">系统默认</string>
+
+ <string name="preference_category_privacy">隐私</string>
+ <string name="preference_privacy_block_ads">拦截广告跟踪器</string>
+ <string name="preference_privacy_block_ads_summary">一些广告在跟踪您的访问,即使您没有点击广告</string>
+ <string name="preference_privacy_block_analytics">拦截分析跟踪器</string>
+ <string name="preference_privacy_block_analytics_summary">它们会收集、分析和测量您的活动,例如点按和滚动</string>
+ <string name="preference_privacy_block_social">拦截社交跟踪器</string>
+ <string name="preference_privacy_block_social_summary">嵌入在网站上来跟踪您的访问,并显示分享按钮等功能</string>
+ <string name="preference_privacy_block_content">拦截其他内容跟踪器</string>
+ <string name="preference_privacy_block_content_summary2">启用可能导致部分网站运作不正常</string>
+ <string name="preference_privacy_category_cookies">阻止 Cookie</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">不用,谢谢</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">仅阻止第三方跟踪器 Cookie</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">仅阻止第三方 Cookie</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">拦截跨站 Cookie</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">好的</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">使用指纹解锁应用</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">若 %s 有打开的网站或添加过快捷方式,请使用指纹解锁。</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">隐形</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">切换应用时隐藏网页内容,并阻止截屏、投屏。</string>
+
+ <string name="preference_category_security">安全</string>
+
+ <string name="preference_category_performance">性能</string>
+ <string name="preference_performance_block_webfonts">拦截网络字体</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">可能造成图标或图像缺失</string>
+
+ <string name="preference_performance_block_javascript">阻止 JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">页面加载可能更快,但可能遭遇意外状况</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">将 %1$s 设为默认浏览器</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">发送使用统计</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">详细了解</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla 坚持仅收集为大众提供和改进 %1$s 所必需的数据。</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">隐私声明</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">许可信息</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">我们使用的开源库</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | 开源软件库</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">关于 %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">已安装的搜索引擎</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">选择搜索引擎</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">恢复默认搜索引擎</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">添加更多搜索引擎</string>
+ <string name="preference_search_remove_title">移除搜索引擎</string>
+ <string name="preference_search_remove">移除</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">添加其他搜索引擎</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">选择想使用的搜索引擎:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">添加搜索引擎</string>
+
+ <string name="search_add_manually_name_hint">搜索引擎名称</string>
+ <string name="search_add_manually_string">搜索字符串</string>
+ <string name="search_add_manually_save">保存</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">例如:example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">已添加新的搜索引擎。</string>
+
+ <string name="search_add_error_empty_name">输入搜索引擎名称</string>
+ <string name="search_add_error_duplicate_name">一个已安装的搜索引擎已在使用该名称。</string>
+
+ <string name="search_add_error_empty_search">输入搜索字符串</string>
+
+ <string name="search_add_error_format">请检查搜索字符串与示例格式是否匹配</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">清空输入内容</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">关闭</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">清除浏览历史</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">已打开 %1$s 个标签页</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">安全连接</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">正在加载</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">网站已加载</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">更多选项</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">更多选项按钮</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">浏览下一页</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">重新加载网站</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">浏览上一页</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">停止加载网站</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">返回之前的应用</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">拦截的跟踪器数量</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">拦截跟踪器</string>
+
+ <string name="your_rights">您的权利</string>
+
+ <string name="external_app_prompt_title">用另一个应用打开链接</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">您可以离开 %1$s,用 %2$s 打开此链接。</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">寻找可以打开此链接的应用</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">您的设备上的应用都不能打开此链接。您可以离开 %1$s,到 %2$s 找找适合的应用。</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">退出隐私浏览模式?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s 下载完毕</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">打开</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">快捷方式已添加!</string>
+
+ <string name="error_hostLookup_title">找不到服务器</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">关闭</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">欢迎使用 %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">快速,隐私,高效率。</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">开始使用</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s 与其他浏览器不同</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">隐私保护考量,我们会在您关闭应用程序时,自动清除历史记录。</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">将 %1$s 设为默认浏览器,保护您的数据安全。</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">设为默认浏览器</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">跳过</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">强化您的隐私</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">隐私浏览模式变得更强大了。能拦截广告,还能拦截在不同网站跟踪您,又拖慢网页加载的内容。</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">用你的方式搜你所寻</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">想搜点不一样的东西?可在设置里选择换个默认搜索引擎。</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">在主屏幕中添加快捷方式</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">快速用 %1$s 回到您喜爱的网站。只需在 %1$s 菜单中选择“添加到主屏幕”。</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">让隐私成为一种习惯</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">将 %1$s 设为您的默认浏览器,用其他应用打开网页时即可享受隐私浏览。</string>
+
+ <string name="firstrun_close_button">明白了!</string>
+ <string name="firstrun_skip_button">跳过</string>
+ <string name="firstrun_next_button">下一步</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">添加</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">是</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">取消</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">否</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">使用此快捷方式打开时,将禁用跟踪保护功能</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">隐私浏览会话</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">推送通知可让您一键清除 %1$s 浏览状态。这样就无需事先打开应用,同时可以避免显露出浏览器中浏览的内容。</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">清除浏览历史</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">下载 Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s 是由 Mozilla 及贡献者制作的一款自由的开源软件。]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s 依照 <a href="%2$s">Mozilla 公共许可证</a>及其他一些开源许可证向您授权。]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[您没有取得 Mozilla 基金会或任何一方的商标的任何权利或许可,包括 Mozilla、Firefox 和 %1$s 名称或徽标的许可。有关信息请查阅<a href="%2$s">此处</a>。]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[%1$s 其他源代码以各类自由和开源<a href="%2$s">许可证</a>开放。]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s 还使用 Disconnect 公司提供的拦截列表,它是以 <a href="%2$s">GNU 通用公共许可证 v3</a> 提供的一个独立的作品,可在<a href="%3$s">这里</a>找到。]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">用户名</string>
+ <string name="gv_prompt_password_hint">密码</string>
+ <string name="gv_prompt_clear">清除</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">安全连接</string>
+ <string name="security_popup_insecure_connection">不安全连接</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">验证机构:%1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">网站安全性</string>
+ <string name="preference_autocomplete_duplicate_url_error">网址已存在</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">在页面中查找</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">在此页面中查找</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">第 %1$d 项,共 %2$d 个匹配项</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">查找下一个结果</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">查找上一个结果</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">关闭页内查找</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">要求桌面版网站</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">桌面版网站</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">已复制网址</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">开发者工具</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">用外部应用打开链接</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">高级</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">网站权限</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">减少 Cookie 横幅</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">开启</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">关闭</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">减少 Cookie 横幅</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">尽可能自动拒绝 Cookie 请求,减少横幅出现频率。</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">减少 Cookie 横幅</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">在该网站开启</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">暂不支持该网站</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">在该网站关闭</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">减少 Cookie 横幅</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">在该网站关闭</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">在该网站开启</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">要为 %1$s 开启“减少 Cookie 横幅”功能吗?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">要为 %1$s 关闭“减少 Cookie 横幅”功能吗?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s 将清除此网站的 Cookie 并刷新页面。清除 Cookie 可能会导致您退出登录,或清空购物车。</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s 会尝试自动拒绝 Cookie 请求。</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">“减少 Cookie 横幅”功能暂不支持此网站。您希望请求我们的团队调查此网站以在将来完成支持吗?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">取消</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">请求支持</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">请求已提交。</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">请求已提交。</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s 会尝试拒绝 Cookie 请求以消除恼人的 Cookie 横幅。\n\n您可以在 %2$s 中管理 Cookie 横幅的首选项。</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">设置</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">自动播放</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">若要允许:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. 前往 Android 设置</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. 点按<b>权限</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">前往设置</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. 开启<b>%1$s</b>权限]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">相机</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">麦克风</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">位置</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">通知</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">受 DRM 控制的内容</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">始终询问</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">阻止</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">允许</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">被 Android 阻止</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">允许音频和视频</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">仅阻止音频</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">推荐</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">阻止音频和视频</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">研究</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox 可能会不时地安装并运行一些研究项目。</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">详细了解</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">应用程序将退出以应用更改</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">移除</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">进行中</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">已完成</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">通过 USB/Wi-Fi 远程调试</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">解锁</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">指纹确认</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">你可以验证指纹以继续当前应用会话。</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">新建会话打开链接</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">指纹图标</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">指纹无法识别。请重试。</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">手指移动太快。请重试。</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">要显示搜索建议吗?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">为获取建议,%1$s 需将您在地址栏中输入的内容发送至搜索引擎。</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">否</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">是</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">某些搜索引擎无法显示建议。</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">关闭</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">网站表现异常??\n
+ 尝试关闭跟踪保护</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[一键访问您的常用网站%1$s菜单 > 添加到主屏幕]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">用 %1$s 打开所有链接\n
+ 将 %1$s 设为默认浏览器
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">自动补全您的常用网站地址\n
+ 长按地址栏的中任一链接
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">新建标签页打开链接\n
+ 长按页面上的任一链接</string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">关闭启动页上的小提示</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">已打开新标签页</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">切换</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">进入全屏模式</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">立即显示新建打开的链接</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">拦截潜在的危险与诈骗网站</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">拦截已被报告的诈骗、攻击性,或含有恶意软件、垃圾软件的网站。</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">HTTPS-Only 模式</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">自动尝试使用 HTTPS 加密协议连接至网站,以增强安全性。</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">例外</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">您已对这些网站禁用内容拦截。</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">移除</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">移除全部网站</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">拦截 Cookie</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">您是要拦截网站 Cookie 吗?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">标签页崩溃</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">抱歉, 此标签页出现问题并已崩溃。</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">作为一款隐私浏览器,我们不会保存浏览历史,因此无法还原此标签页。</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">关闭标签页</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">向 Mozilla 发送崩溃报告</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">自%s起拦截的跟踪器</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">内容</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">营销</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">社交</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">统计</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">增强型跟踪保护</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">已关闭此网站的跟踪保护</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">已开启此网站的跟踪保护</string>
+
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">连接安全</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">连接不安全</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">要拦截的跟踪器和脚本</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">返回</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">移除</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">重命名</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">重命名</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">快捷方式名称</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">清除 %1$s 的历史记录时,&lt;b&gt;将不会&lt;/b&gt;删除保存和分享的图像。</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">主题</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">浅色</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">深色</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">依系统省电模式设置</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">跟随设备主题</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">此站点不支持 HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s 尽可能尝试使用 HTTPS 连接以提高安全性。
+ <a href="%2$s">了解更多</a> <br/><br/>
+ 通过“设置”>“隐私与安全”>“安全”更改此设置。]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">连接不安全</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[
+ 这可能是服务器配置的问题,也可能是有人试图冒充服务器。 <br/><br/>
+ 如果您过去曾成功连接到此服务器,则该错误可能是暂时的。
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>可能有人试图冒充该网站,继续访问可能会有风险。</label>
+ <br><br>
+ <label>%1$s 不信任 <b>%2$s</b>,因为其证书颁发者未知、证书为自签名的,或者服务器未发送正确的中间证书。</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">关闭标签页</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">抓到了!我们已阻止此网站的跟踪,您可随时点按盾牌了解已拦截哪些内容。</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">关闭弹窗</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">保护您是我的首要职责</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">默认设置已提供足够强大的保护。如您有特殊需求,也可方便地调整这些设置。</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">知道了</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">点按此处即可删除浏览历史、Cookie 等所有数据,并新建一个全新标签页。</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">关闭</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">搜索小组件</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">浏览历史已清除!🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">进入隐私浏览模式,我们会在您上网时拦截跟踪器和其他脏东西。</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">开始隐私浏览吧。想更快发起搜索,下次可以直接点按主屏幕上的 %1$s 小组件。</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">将小组件添加至主屏幕</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">小组件已添加至主屏幕</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-zh-rHK/strings.xml b/mobile/android/focus-android/app/src/main/res/values-zh-rHK/strings.xml
new file mode 100644
index 0000000000..5f5f49a7e9
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-zh-rHK/strings.xml
@@ -0,0 +1,933 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">取消</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">儲存</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">搜尋或輸入地址</string>
+
+ <string name="teaser">自動私隱瀏覽\n睇完 · 刪咗佢 · 再嚟過</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">你嘅瀏覽歷史已被刪除。</string>
+
+ <string name="feedback_erase2">已清除瀏覽歷史</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Tab 嘅瀏覽歷史記錄已被刪除。</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">搜索%1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">分享…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">報告網站問題</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">喺%1$s中打開</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">用…打開</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">加入主螢幕</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">加入捷徑</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">從捷徑中移除</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">設定</string>
+ <string name="menu_about">關於</string>
+ <string name="menu_help">說明</string>
+ <string name="menu_rights">你嘅權利</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">已阻止追蹤器</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">關閉呢個功能可能會修復一啲網站問題</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">攔截內容</string>
+
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">關閉以修復某啲網站嘅問題</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">由%1$s提供支持</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">分享去</string>
+
+ <!-- While a browsing session is active (in the foreground or background) we will show a notification
+ so that the user doesn't forget about the website still being open. This text is shown in
+ the notification. Clicking the notification will have the same effect as clicking the "erase"
+ button in the application. -->
+ <string name="notification_erase_text">刪除瀏覽紀錄</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">打開</string>
+
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">刪除並開啟</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">刪除</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">刪除瀏覽記錄</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">刪除並開啟</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">刪除並開啟 %1$s</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">喺 Focus 度搜尋</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">喺 Klar 度搜尋</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">喺 Focus Beta 度搜尋</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">喺 Focus Nightly 度搜尋</string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">私隱同安全</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">追蹤器、Cookies、數據選擇</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">設定為預設,自動完成</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">關於 %1$s、說明</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">加強追蹤保護</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">網頁內容</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">切換應用程式</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">一般</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">預設瀏覽器、語言</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">數據收集同使用</string>
+
+ <string name="preference_category_search">搜尋</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">獲得搜尋建議</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">預設值</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">搜尋引擎</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">開咗</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">冇開</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">自動完成網址</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">熱門網站</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">你加入嘅網站</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">管理網站</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">管理網站</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ 加入自訂網頁</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">你嘅自動完成列表:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">加入網址</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">加入自訂網址</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">加入自訂網址</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">加入自動完成嘅連結</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies 同網站數據</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">數據選擇</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">移除自訂網址</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">想知多啲</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">加入並管理自訂自動完成嘅URLs。</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">加入嘅網址</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">貼上或輸入網址</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">例如:mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">例如:example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">已加入新嘅自訂網址。</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">移除</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">移除</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">請檢查多次你輸入嘅網址。</string>
+
+ <string name="preference_language">語言</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">系統預設值</string>
+
+ <string name="preference_category_privacy">私隱</string>
+ <string name="preference_privacy_block_ads">阻擋廣告追蹤器</string>
+ <string name="preference_privacy_block_ads_summary">就算你冇撳過啲廣告,有啲廣告都會跟蹤你嘅瀏覽</string>
+ <string name="preference_privacy_block_analytics">阻擋分析追蹤器</string>
+ <string name="preference_privacy_block_analytics_summary">用嚟收集、分析並測量點擊同捲動之類嘅活動</string>
+ <string name="preference_privacy_block_social">阻擋社交媒體追蹤器</string>
+
+ <string name="preference_privacy_block_content">阻擋其他內容追蹤器</string>
+ <string name="preference_privacy_block_content_summary2">開咗佢可能會導致某啲頁面出現異常行為</string>
+ <string name="preference_privacy_category_cookies">阻擋 Cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">唔使喇,唔該</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">淨係阻擋第三方追蹤器 Cookies</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">淨係阻擋第三方 Cookies</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">阻擋橫跨網站嘅 Cookies</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">好吖,唔該晒</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">用指紋去解鎖個 app</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">隱形</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">切換 app 嘅時候隱藏網頁並阻擋截圖。</string>
+
+ <string name="preference_category_security">保密</string>
+
+ <string name="preference_category_performance">效能</string>
+ <string name="preference_performance_block_webfonts">阻擋網絡字型</string>
+
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">或會導致遺失圖標或圖片</string>
+
+ <string name="preference_performance_block_javascript">阻擋 JavaScript</string>
+
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">網頁可能會載入得快啲,但亦可能出現問題</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">將 %1$s 設定為預設瀏覽器</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">傳送使用狀況數據</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">想知多啲</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla 致力只收集大家足以提供並改進 %1$s所需嘅資料。</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">私隱權告示</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">關於 %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">已安裝嘅搜尋引擎</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">揀選搜尋引擎</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">還原預設嘅搜尋引擎</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ 加入另一個搜尋引擎</string>
+ <string name="preference_search_remove_title">移除搜尋引擎</string>
+ <string name="preference_search_remove">移除</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">加入另一個搜尋引擎</string>
+
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">揀選你鍾意嘅引擎:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">加入搜尋引擎</string>
+
+ <string name="search_add_manually_name_hint">搜尋引擎名稱</string>
+ <string name="search_add_manually_string">要用嘅搜尋字串</string>
+ <string name="search_add_manually_save">儲存</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">例如:example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">加入新咗嘅搜尋引擎。</string>
+
+ <string name="search_add_error_empty_name">輸入搜尋引擎名稱</string>
+ <string name="search_add_error_duplicate_name">有一個已安裝嘅搜尋引擎已經用咗呢個名。</string>
+
+ <string name="search_add_error_empty_search">輸入搜尋字串</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">清除輸入</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">收到</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">刪除瀏覽紀錄</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">開咗嘅分頁:%1$s 個</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">安全連線</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">載入緊</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">載入咗網站</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">更多選項</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">更多選項掣</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">前往下一頁</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">重新整理網站</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">返去上一頁</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">停止載入網站</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">返去先前嗰個 app</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">已阻擋嘅追蹤器數目</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">阻擋追蹤器</string>
+
+ <string name="your_rights">你嘅權利</string>
+
+ <string name="external_app_prompt_title">用另一個 app 開啟連結</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">你可以跳出 %1$s 以 %2$s 開啟呢個連結。</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">搵個可以開啟連結嘅 app</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">係咪要離開私隱瀏覽?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s 已完成</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">開啟</string>
+
+ <string name="error_hostLookup_title">搵唔到伺服器</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">關閉</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">歡迎使用 %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">快速、私隱、簡潔。</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">開始使用</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s 同其他瀏覽器唔同</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">為咗更加保護你嘅私隱,我哋會在您閂咗個app時,自動清除瀏覽紀錄。</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">將 %1$s 設為預設瀏覽器,保護你嘅私隱同資料。</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">設為預設瀏覽器</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">略過</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">升級你嘅個人私隱</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">你想點搜尋,就點搜尋</string>
+
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">想搜尋吓啲唔同嘅嘢?喺設定度揀選另一個預設嘅搜尋引擎啦。</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">喺你嘅主頁加入捷徑</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">私隱就習以為常</string>
+
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">將 %1$s 設定為你嘅預設瀏覽器,當你由其他 app 度開啟網頁嘅時候,都能夠得益於私隱瀏覽。</string>
+
+ <string name="firstrun_close_button">明白晒!</string>
+ <string name="firstrun_skip_button">略過</string>
+ <string name="firstrun_next_button">下一步</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">加入</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">好</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">取消</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">唔好</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">捷徑會喺停用加強追蹤保護嘅情況下開啟</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">私隱瀏覽工作階段</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">刪除瀏覽紀錄</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">下載 Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s 係免費同開放源代碼嘅軟件,係由 Mozilla 同其他貢獻者一齊整出嚟㗎。]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">使用者名稱</string>
+ <string name="gv_prompt_password_hint">密碼</string>
+ <string name="gv_prompt_clear">清除</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">安全連線</string>
+ <string name="security_popup_insecure_connection">不安全連線</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">經 %1$s 驗證</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">網站安全性</string>
+ <string name="preference_autocomplete_duplicate_url_error">已經有呢個網址</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">喺呢頁搵嘢</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">喺呢頁搵嘢</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">第 %1$d 個,共 %2$d 個</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">搵下一個結果</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">搵上一個結果</string>
+
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">關閉頁面搜尋</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">請求桌面版網頁</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">桌面版</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">已複製網址</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">開發者工具</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">以其他 apps 開啟連結</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">進階</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">網站權限</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">減少 Cookie 橫額</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">開啟</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">關閉</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">減少 Cookie 橫額</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">盡可能自動拒絕 Cookie 請求,讓你看到更少橫額。</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">減少 Cookie 橫額</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">於此網站開啟</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">於此網站關閉</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">減少 Cookie 橫額</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">於此網站關閉</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">於此網站開啟</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">要為 %1$s 開啟 Cookie 橫額減少功能?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">要為 %1$s 關閉 Cookie 橫額減少功能?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s 將清除此網站的 Cookie 並重新載入頁面。清除 Cookie 可能會將你從網站登出,或清空購物車。</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">自動播放</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">允許佢:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. 去 Android 設定</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. 撳<b>權限</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">去設定</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. 撳<b>%1$s</b>去開咗佢]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">相機</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">咪高風</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">位置</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">通知</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">由數碼權利管理嘅內容</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">每次都問咗先</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">封鎖咗嘅</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">允許咗嘅</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">由Android封鎖咗</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">允許自動播放影音</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">僅封鎖聲音</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">推薦嘅嘢</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">封鎖影音</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">使用者研究</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox 可能周不時會安裝同展開研究。</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">想知多啲</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">程式將會結束以便套用更改</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">移除</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">生效</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">已完成</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">透過 USB/Wi-Fi 遙距除錯</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">解鎖</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">確認您嘅指紋</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">使用指紋解鎖後,你可以繼續該工作階段。</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">用一個新嘅工作階段開啟連結</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">指紋圖標</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">未能識別指紋。請再試一次。</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">手指移動得太快。請再試一次。</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">係咪要顯示搜尋建議?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">要獲得建議嘅話,%1$s 需要將你喺網址列度打嘅嘢傳送畀搜尋引擎。</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">唔好</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">好</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">部份搜尋引擎冇建議提供。</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">取消</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">網站係咪出現問題?\n
+ 試下關閉追蹤保護</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[一按即跳到你最常用嘅網站%1$s 功能表 > 加入去主畫面]]></string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">以新 tab 開啟連結\n
+ 喺網頁長按任何連結
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">關閉喺開始畫面上嘅貼士</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">已開啟新嘅 tab</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">切換</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">立即切換去新 tab 度嘅連結</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">阻擋潛在嘅危險同欺詐網站</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">僅 HTTPS 模式</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">自動只會連線到使用 HTTPS 協議加密嘅網站,以增加安全。</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">例外</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">你喺呢啲網站停用咗內容阻擋。</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">移除</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">移除所有網站</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">阻擋 Cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">你想唔想阻擋Cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Tab 冧檔</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">對唔住。呢個 tab 發生問題。</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">作為私隱瀏覽器,我哋無法儲存或還原呢個 tab。</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">關閉 Tab</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">傳送冧檔報告畀 Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">自 %s 起已阻擋嘅追蹤器數目</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">內容</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">廣告</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">社交媒體</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">數據分析</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">加強追蹤保護</string>
+
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">呢個網站已關閉保護</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">呢個網站已開啟保護</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">安全連線</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">不安全連線</string>
+
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">要阻擋嘅追蹤器同程式碼</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">返回</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">移除</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">重新命名</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">重新命名</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">捷徑名稱</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">色系</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">淺色</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">深色</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">按省電模式決定</string>
+
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">跟返裝置嘅佈景主題</string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">關閉 tab</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">我哋捉到同阻止咗呢個網站追蹤您。㯲下個盾牌嚟了解我哋阻止咗啲乜。</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">閂咗啲彈出式窗口</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">你已經受到保護!</string>
+
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">預設設定已經提供咗強大保護,但如果有需要,你可以簡單調整一下。</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">閂咗呢舊嘢佢</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">關閉</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">搜尋小工具</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">已清除瀏覽紀錄!</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">使用私人瀏覽模式,我哋就會同你擋曬啲追蹤器同其他衰嘢㗎喇。</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">跟著就俾返你繼續私人瀏覽啦,但係想快速開始搜尋嘅話,可以把 %1$s 嘅搜尋小工具放到主畫面。</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">將小工具添加到主介面</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">已經將小工具添加至主介面</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values-zh-rTW/strings.xml b/mobile/android/focus-android/app/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..544e8ddf9f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,1121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">取消</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">確定</string>
+
+ <string name="action_save">儲存</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">進行搜尋或輸入網址</string>
+
+ <string name="teaser">無痕瀏覽,不留足跡。</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">已清除您的瀏覽紀錄。</string>
+ <string name="feedback_erase2">已清除瀏覽紀錄</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">已清除分頁瀏覽紀錄。</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">搜尋 %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">分享…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">回報網站問題</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">使用 %1$s 開啟</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">開啟於…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">新增至裝置主畫面</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">新增捷徑</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">刪除捷徑</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">選項</string>
+ <string name="menu_about">關於</string>
+ <string name="menu_help">說明</string>
+ <string name="menu_rights">您的權利</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">追蹤器封鎖數量</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">關閉此功能可能可以解決一些網站的問題</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">內容封鎖</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">關閉此功能來解決一些網站問題</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">由 %1$s 提供</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">透過下列程式分享</string>
+
+ <string name="notification_erase_title_android_14">要清除瀏覽紀錄嗎?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">點擊或滑掉這則通知,即可安全地清除您的瀏覽紀錄。</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">點擊或滑掉這則通知,即可安全地清除您的瀏覽紀錄。</string>
+
+ <string name="notification_erase_text">清除瀏覽紀錄</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">開啟</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">清除並開啟</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">清除</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">清除瀏覽紀錄</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">清除並開啟</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">清除並開啟 %1$s</string>
+
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">使用 Focus 搜尋</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">使用 Klar 搜尋</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">使用 Focus Beta 搜尋</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">使用 Focus Nightly 搜尋</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s 讓您可自行控制線上生活。</p>
+<p>可當作私密瀏覽器使用:
+ <ul>
+ <li>直接在程式中搜尋、瀏覽</li>
+ <li>封鎖追蹤器(也可調整設定,允許追蹤器)</li>
+ <li>清除 Cookie、搜尋紀錄、上網紀錄</li>
+ </ul>
+</p>
+<p>%1$s 是由 Mozilla 所打造,我們的使命是培養一個健康、開放的網際網路環境。<br/>
+<a href="%2$s">了解更多</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">隱私與安全</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">追蹤、Cookie、回報資料</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">設為預設瀏覽器、自動完成</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">關於 %1$s、使用說明</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">加強型追蹤保護</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">網站內容</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">切換應用程式</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">一般</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">預設瀏覽器、語言</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">資料收集與使用</string>
+
+ <string name="preference_category_search">搜尋</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">取得搜尋建議</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">您在網址列打字時,%1$s 就會將您輸入的文字傳送到搜尋引擎</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">預設</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">搜尋引擎</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">開啟</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">關閉</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">網址自動完成</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">針對熱門網站</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">開啟後,即可在 %s 網址列自動完成超過 450 組熱門網址。</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">針對您加入的網站</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">開啟後,即可讓 %s 自動完成您最愛的網址。</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">管理網站</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">管理網站</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ 新增自訂網址</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">您的自動完成清單:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">新增網址</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">新增自訂網址</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">新增自訂網址</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">加入鏈結自動完成</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookie 與網站資料</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">回報資料</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">移除自訂網址</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">了解更多</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">新增與管理自訂自動完成網址。</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">要新增的網址</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">貼上或輸入網址</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">例如: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">舉例: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">已新增自訂網址。</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">移除</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">移除</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">請檢查您輸入的網址。</string>
+
+ <string name="preference_language">語言</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">系統預設</string>
+
+ <string name="preference_category_privacy">隱私權</string>
+ <string name="preference_privacy_block_ads">封鎖廣告型追蹤器</string>
+ <string name="preference_privacy_block_ads_summary">某些廣告就算您不點擊,也會追蹤您造訪的網站</string>
+ <string name="preference_privacy_block_analytics">封鎖分析型追蹤器</string>
+ <string name="preference_privacy_block_analytics_summary">用來收集、分析、測量點擊與滾動等行為</string>
+ <string name="preference_privacy_block_social">封鎖社交追蹤器</string>
+ <string name="preference_privacy_block_social_summary">內嵌於網站,用來追蹤您的造訪紀錄,並提供分享按鈕等功能</string>
+ <string name="preference_privacy_block_content">封鎖其他內容追蹤器</string>
+ <string name="preference_privacy_block_content_summary2">開啟後,可能會造成某些頁面的行為不正常</string>
+ <string name="preference_privacy_category_cookies">封鎖 Cookie</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">不要,謝謝</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">僅封鎖第三方追蹤 Cookie</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">僅封鎖第三方 Cookie</string>
+
+ <string name="preference_privacy_should_block_cookies_cross_site_option">封鎖跨網站 Cookie</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">好!</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">使用指紋解鎖程式</string>
+
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">若已用 %s 開啟網站或加入捷徑,可使用指紋直接解鎖。</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">秘密行動</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">切換程式時,隱藏網頁內容並防止拍攝擷圖。</string>
+
+ <string name="preference_category_security">安全性</string>
+
+ <string name="preference_category_performance">效能</string>
+ <string name="preference_performance_block_webfonts">封鎖網路字型</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">可能會造成網頁當中的圖示或圖片消失</string>
+
+ <string name="preference_performance_block_javascript">封鎖 JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">頁面可能會更快載入,但也可能會造成功能不正常</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">將 %1$s 設為預設瀏覽器</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">傳送使用資料</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">了解更多</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla 致力於只收集用來為眾人改善 %1$s 所需的必要資料。</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">隱私權公告</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">授權資訊</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">我們使用的程式庫</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | 開放原始碼程式庫</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">關於 %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">已安裝的搜尋引擎</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">選擇搜尋引擎</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">還原預設搜尋引擎</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ 新增其他搜尋引擎</string>
+ <string name="preference_search_remove_title">移除搜尋引擎</string>
+ <string name="preference_search_remove">移除</string>
+
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">新增其他搜尋引擎</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">選擇想使用的搜尋引擎:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">新增搜尋引擎</string>
+
+ <string name="search_add_manually_name_hint">搜尋引擎名稱</string>
+ <string name="search_add_manually_string">要使用的搜尋字串</string>
+ <string name="search_add_manually_save">儲存</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">例如: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">已加入新搜尋引擎。</string>
+
+ <string name="search_add_error_empty_name">輸入搜尋引擎名稱</string>
+ <string name="search_add_error_duplicate_name">已有安裝的搜尋引擎使用該名稱。</string>
+
+ <string name="search_add_error_empty_search">輸入搜尋字串</string>
+
+ <string name="search_add_error_format">請確認搜尋字串是否符合範例格式</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">清除輸入內容</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">結束輸入</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">清除瀏覽紀錄</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">開啟分頁數: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">安全連線</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">載入中</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">網站已載入</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">更多選項</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">更多選項按鈕</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">瀏覽下一頁</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">重新載入網站</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">瀏覽上一頁</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">停止載入網站</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">回到先前的應用程式</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">已封鎖的追蹤器數量</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">封鎖追蹤器</string>
+
+ <string name="your_rights">您的權利</string>
+
+ <string name="external_app_prompt_title">用其他應用程式開啟鏈結</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">您可離開 %1$s,到 %2$s 安裝應用程式來開啟此鏈結。</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">尋找可開啟此鏈結的應用程式</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">您裝置中並未安裝可開啟此鏈結的應用程式。您可離開 %1$s,到 %2$s 安裝一套。</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">要結束隱私瀏覽嗎?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s 下載完成</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">開啟</string>
+
+
+
+
+
+
+
+
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">已新增捷徑!</string>
+
+ <string name="error_hostLookup_title">找不到伺服器</string>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">關閉</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">歡迎使用 %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">快速、有隱私、不讓人分心。</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">開始使用</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s 與其他瀏覽器不同</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">為了加強保護隱私,我們會在您關閉應用程式時,自動清除瀏覽紀錄。</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">將 %1$s 設為預設瀏覽器,保護您的資料。</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">設為預設瀏覽器</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">略過</string>
+
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">加強您的隱私</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">隱私瀏覽功能變得更強大了。現在可封鎖廣告,以及其他可在不同網站間追蹤您的上網紀錄,又拖慢網頁載入的追蹤器。</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">用你的方式搜尋</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">想找點不一樣的東西嗎?可在設定畫面中選擇不同的預設搜尋引擎。</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">在主畫面加入捷徑</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">只要選擇 %1$s 選單中的「新增至裝置主畫面」即可快速用 %1$s 回到您最愛的網站。</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">讓隱私成為一種習慣。</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">將 %1$s 設為您的預設瀏覽器,從其他程式開啟網頁時即可直接進入隱私瀏覽模式從中受益。</string>
+
+ <string name="firstrun_close_button">好,知道了!</string>
+ <string name="firstrun_skip_button">略過</string>
+ <string name="firstrun_next_button">下一步</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">新增</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">好的</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">取消</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">不要</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">使用此捷徑開啟時,將關閉追蹤保護功能</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">隱私瀏覽階段</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">不需要開啟程式或確認瀏覽器中有哪些資料,只要輕鬆一點,就能清除 %1$s 瀏覽階段的通知項目。</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">清除瀏覽紀錄</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">下載 Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s 是由 Mozilla 及貢獻者所打造,自由且開放原始碼的軟體。]]></string>
+
+
+
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s 是依照 <a href="%2$s">Mozilla Public License</a> 以及其他開放原始碼授權條款提供給您。]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[您並未被授權使用 Mozilla 基金會或任何相關部門的商標,包含但不限於 Mozilla、Firefox、%1$s 的文字或圖樣。可以在<a href="%2$s">這裡</a>找到更多資訊。]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[%1$s 其他部分的原始碼,則使用各種不同的自由與開放原始碼<a href="%2$s">授權條款</a>提供。]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s 還使用由 Disconnect, Inc. 提供的封鎖清單,該清單是一份依照 <a href="%2$s">GNU General Public License v3</a> 條款分別提供的獨立作品,可在<a href="%3$s">此處</a>取得。]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">使用者名稱</string>
+ <string name="gv_prompt_password_hint">密碼</string>
+ <string name="gv_prompt_clear">清除</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">安全連線</string>
+ <string name="security_popup_insecure_connection">不安全的連線</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">驗證機構: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">網站安全性</string>
+ <string name="preference_autocomplete_duplicate_url_error">網址已經存在</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">在頁面中搜尋</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">在頁面中搜尋</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">第 %1$d 筆,共 %2$d 筆</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">尋找下一筆</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">尋找上一筆</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">關閉頁面搜尋</string>
+
+
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">開啟桌面版網站</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">桌面版網站</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">已複製網址</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">開發者工具</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">用 App 開啟鏈結</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">進階</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">網站權限</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">減少 Cookie 橫幅</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">開啟</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">關閉</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">減少 Cookie 橫幅</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">盡可能自動拒絕 Cookie 請求,讓您能看到更少橫幅。</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->--&gt;
+ <string name="cookie_banner_exception_item_title">減少 Cookie 橫幅</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">對此網站開啟</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">目前不支援的網站</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">對此網站關閉</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">減少 Cookie 橫幅</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">對此網站關閉</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">對此網站開啟</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">要為 %1$s 開啟減少 Cookie 橫幅功能嗎?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">要為 %1$s 關閉減少 Cookie 橫幅功能嗎?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s 將清除此網站的 Cookie 並重新載入頁面。清除 Cookie 可能會將您從網站登出,或清空購物車。</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s 可以嘗試自動為您拒絕網站要設定 Cookie 的請求。</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">「減少 Cookie 橫幅」功能目前暫不支援此網站。您想要將此網站回報給我們的團隊,看看是否未來有機會支援嗎?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">取消</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">請求技術支援</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">已送出對此網站的需求。</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">已送出對此網站的需求。</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s 會嘗試拒絕網站設定 Cookie 的請求,來自動為您關閉擾人的 Cookie 橫幅。\n\n可到 %2$s 管理 Cookie 橫幅的行為。</string>
+
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">設定</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">自動播放</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">若要允許:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. 開啟 Android 設定</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. 點擊<b>權限</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">開啟設定</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. 開啟<b>%1$s</b>權限]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">相機</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">麥克風</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">位置</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">通知</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">由 DRM 控制的內容</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">總是詢問</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">封鎖</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">允許</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">被 Android 封鎖</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">允許自動播放影音內容</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">僅封鎖音訊</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">推薦</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">封鎖影音內容</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">使用者研究</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox 會不定時安裝並執行使用者研究。</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">了解更多</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">應用程式將結束以套用變更</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">移除</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">進行中</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">已完成</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">透過 USB/Wi-Fi 進行遠端除錯</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">解鎖</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">使用您的指紋確認</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">您可以使用指紋來繼續使用應用程式。</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">用新瀏覽階段開啟鏈結</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">指紋圖示</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">無法識別指紋,請再試一次。</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">手指移動得太快,請再試一次。</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">要顯示搜尋建議嗎?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description">為了取得建議,%1$s 需要將您在網址列輸入的文字傳送至搜尋引擎。</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">不要</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">好的</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">某些搜尋引擎無法提供建議。</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">知道了!</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">網站變得怪怪的?\n
+ 試試關閉追蹤保護功能</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[快速開啟您最常用的網站%1$s選單 > 新增至裝置主畫面]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">使用 %1$s 開啟所有鏈結\n
+ 將 %1$s 設為預設瀏覽器
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">自動完成您最常造訪的網站網址\n
+ 長按網址列中的任何網址
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">使用新分頁開啟鏈結\n
+ 長按頁面上的任何鏈結
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">關閉啟動畫面上的使用秘訣</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">已開啟新分頁</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">切換</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">進入全螢幕模式</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">開啟鏈結後,立即切換到該分頁</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">封鎖可能危險或詐騙的網站</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">封鎖已被回報為詐騙、有攻擊性、惡意軟體以及有害軟體的網站。</string>
+
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">純 HTTPS 模式</string>
+
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">自動嘗試使用加密過的 HTTPS 通訊協定連線到網站,以增加安全性。</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">例外網站</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">您已針對這些網站關閉內容封鎖功能。</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">移除</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">移除所有網站</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">封鎖 Cookie</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">您想要封鎖網站 Cookie 嗎?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">分頁發生錯誤</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">很抱歉,這個分頁有點問題。</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">作為一套隱私瀏覽器,我們不會保存上網紀錄,也無法還原此分頁。</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">關閉分頁</string>
+
+
+
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">傳送錯誤報告給 Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">自 %s起封鎖的追蹤器數量</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">內容</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">廣告</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">社交</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">統計</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">加強型追蹤保護</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">已關閉此網站的追蹤保護</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">已開啟此網站的追蹤保護</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">連線安全</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">連線不安全</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">要封鎖的追蹤器與指令碼</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">回上一頁</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">移除</string>
+
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">重新命名</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">重新命名</string>
+
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">捷徑名稱</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">清除 %1$s 瀏覽紀錄時,&lt;b&gt;將不會&lt;/b&gt;刪除已儲存或分享的圖片</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">佈景主題</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">亮色</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">暗色</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">由系統省電模式設定</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">依照裝置佈景主題顯示</string>
+
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">此網站不支援 HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s 為了加強安全性,會盡可能使用 HTTPS 進行連線。<a href="%2$s">了解更多</a><br/><br/>可到「設定 > 隱私權與安全性 > 安全性」調整此設定。]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">不安全連線</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message"><![CDATA[可能是伺服器設定問題造成,或是有人嘗試偽裝成該伺服器。<br/><br/>
+若您以前可以與該伺服器正常連線,那麼這個錯誤可能只是暫時的,請稍候再試試看。]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[<label>有心人士可能正在嘗試將別的網站偽裝成您想造訪的網站,若繼續開啟網站可能會有風險。</label>
+<br><br>
+<label>因為憑證簽發者未知、憑證是自簽憑證,或伺服器並未送出正確的中介憑證的關係,%1$s 無法信任 <b>%2$s</b>。</label>]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">關閉分頁</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">抓到了!我們已防止此網站追蹤您。隨時點擊盾牌即可了解我們封鎖了哪些內容。</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">關閉彈出視窗</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">讓我們保護您!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">下列預設設定就已經提供了強大保護,但如果您有特殊需求,也很簡單就能調整。</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">知道了!</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">點擊此處即可清除上網紀錄、Cookie 等所有資料,然後重新開啟一個乾乾淨淨的分頁。</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">關閉</string>
+
+ !-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. --&gt;
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">搜尋小工具</string>
+
+ !-- This is the title of promote search widget dialog. --&gt;
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">已清除瀏覽紀錄!🎉</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">進入隱私瀏覽模式,我們會在您上網時封鎖追蹤器與其他髒東西。</string>
+
+ !-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. &quot;Focus&quot;) --&gt;
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">接下來就交給您繼續進行隱私瀏覽了。未來想快速開始搜尋的話,可以把 %1$s 搜尋小工具放到主畫面。</string>
+
+ !-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. --&gt;
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">將小工具新增至裝置主畫面</string>
+
+ !-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. --&gt;
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">已將小工具新增至裝置主畫面</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values/app.xml b/mobile/android/focus-android/app/src/main/res/values/app.xml
new file mode 100644
index 0000000000..f5c9b95425
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values/app.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <string name="app_name" translatable="false">Firefox Focus</string>
+
+ <!-- This String is used in the User Agent -->
+ <string name="useragent_appname" translatable="false">Focus</string>
+
+ <!-- This String is the short version of app name -->
+ <string name="onboarding_short_app_name" translatable="false">Focus</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values/attrs.xml b/mobile/android/focus-android/app/src/main/res/values/attrs.xml
new file mode 100644
index 0000000000..597f7f1ae6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values/attrs.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <attr name="primaryText" format="reference" />
+ <attr name="secondaryText" format="reference" />
+ <attr name="disabled" format="reference" />
+ <attr name="destructive" format="reference" />
+
+ <declare-styleable name="ResizableKeyboardViewDelegate">
+ <attr name="viewsToHideWhenActivated" format="reference" />
+ <attr name="animate" format="boolean" />
+ </declare-styleable>
+
+ <declare-styleable name="AnimatedProgressBar">
+ <attr name="wrapShiftDrawable" format="boolean" />
+ <attr name="shiftDuration" format="reference" />
+ <attr name="shiftInterpolator" format="reference" />
+ </declare-styleable>
+
+ <declare-styleable name="PreferenceSwitch">
+ <attr name="preferenceKey" format="reference" />
+ <attr name="preferenceKeyTitle" format="reference" />
+ <attr name="preferenceKeyDescription" format="reference" />
+ </declare-styleable>
+
+ <declare-styleable name="SwitchWithDescription">
+ <attr name="switchTitle" format="reference" />
+ <attr name="switchDescription" format="reference" />
+ <attr name="switchIcon" format="reference" />
+ </declare-styleable>
+
+ <declare-styleable name="RadioButtonPreference">
+ <attr format="string|boolean|integer|reference|float" name="defaultValue"/>
+ <attr name="android:defaultValue"/>
+ </declare-styleable>
+
+</resources> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/values/colors.xml b/mobile/android/focus-android/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000000..a8b414e983
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values/colors.xml
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <color name="colorPrimary">@color/photonViolet05</color>
+ <color name="colorSecondary">@color/photonLightGrey05</color>
+ <color name="primaryText">@color/photonInk50</color>
+ <color name="secondaryText">@color/photonDarkGrey05</color>
+
+ <color name="contrastColor">@color/photonBlack</color>
+
+ <color name="error">@color/photonRed70</color>
+ <color name="focusContrastPink">#e452B9</color>
+
+ <color name="disabled">#66312A65</color>
+ <color name="background">@color/colorPrimary</color>
+ <color name="splash_screen_background">@color/photonViolet05</color>
+
+ <color name="colorTextInactive">#80FFFFFF</color>
+ <color name="urlBarHintText">@color/photonDarkGrey05</color>
+ <color name="statusBarBackground">@color/background</color>
+
+ <color name="colorCursor">#ccffffff</color>
+ <color name="colorOverlay">#cc000000</color>
+
+ <color name="toolbarUrlBackground">@color/photonLightGrey05</color>
+
+ <color name="divider">@color/photonLightGrey30</color>
+ <color name="accentBright">@color/photonPink70</color>
+ <color name="accent">@color/photonPink70</color>
+ <color name="destructive">#FF6A75</color>
+
+ <!-- Logo and Splash -->
+ <color name="headerGradientStart">#D4D5FA</color>
+ <color name="headerGradientMiddle">#D3D5FB</color>
+ <color name="headerGradientEnd">#D5D7FA</color>
+
+ <color name="homeGradient1">#D3D4FA</color>
+ <color name="homeGradient2">#D7D6F9</color>
+ <color name="homeGradient3">#ECEAFA</color>
+ <color name="homeGradient4">#F5F4FE</color>
+ <color name="homeGradient5">#D9D3F5</color>
+ <color name="homeGradient6">#D6C9EB</color>
+
+ <!-- Progress Bar -->
+ <color name="colorProgressGradientStart">#FFFF1AD9</color>
+ <color name="colorProgressGradientCenter">#FFFF1AD9</color>
+ <color name="colorProgressGradientEnd">#FFFF1AD9</color>
+
+ <color name="colorErase">@color/photonMagenta70</color>
+ <color name="colorErasePressed">@color/photonMagenta80</color>
+
+ <color name="colorDotHighlight">@color/photonBlue40</color>
+ <color name="colorCrashAccent">@color/photonBlue40</color>
+
+ <!-- Toolbar -->
+ <color name="toolbar_color">@color/colorPrimary</color>
+
+ <color name="images_removal_warning_background_color">#353852</color>
+ <color name="colorPoweredBy">@color/photonLightGrey05</color>
+ <color name="menuBackground">@color/colorSecondary</color>
+
+ <!-- Snackbar-->
+ <color name="snackbarBackground">@color/colorSecondary</color>
+ <color name="snackbarTextColor">@color/primaryText</color>
+ <color name="snackbarActionText">@color/accentBright</color>
+
+ <!-- Search Suggestions -->
+ <color name="searchSuggestionsBackground">@color/photonLightGrey05</color>
+ <color name="searchSuggestionPromptBackground">@color/photonViolet05</color>
+ <color name="searchSuggestionPromptTitleColor">@color/photonInk80</color>
+ <color name="searchSuggestionPromptSubtitleColor">@color/photonInk80</color>
+ <color name="searchSuggestionPromptBorderColor">@color/colorSecondary</color>
+ <color name="searchSuggestionPromptButtonTextColor">@color/accentBright</color>
+
+ <color name="searchHintTextColor">#ffffffff</color>
+ <color name="searchHintBackgroundColor">@color/photonLightGrey05</color>
+ <color name="urlBarInactiveBackgroundColor">#480f1126</color>
+ <color name="autocompleteBackgroundColor">#ffbaa8e6</color>
+
+ <!-- Onboarding -->
+ <color name="onboarding_indicator_default">#7FFFFFFF</color>
+ <color name="onboarding_indicator_selected">#FFFFFFFF</color>
+ <color name="onboardingButtonOneColor">#312A64</color>
+ <color name="onboardingButtonTwoColor">#E0E0E6</color>
+ <color name="onboardingCloseButtonColor">#F2F2F7</color>
+
+ <!-- Session -->
+ <color name="colorSession">@color/photonLightGrey05</color>
+ <color name="colorActiveSession">@color/photonViolet05</color>
+
+ <!-- Launcher Icon Background-->
+ <color name="add_to_homescreen_icon_background">@color/photonInk60</color>
+
+ <color name="firefoxInstallHint">@color/focusContrastPink</color>
+
+ <color name="scrollbarThumb">#b2b2b2b2</color>
+ <color name="doorhanger_link">#FF2AA1FE</color>
+
+ <!-- Preferences -->
+ <color name="preference_summary_text">@color/secondaryText</color>
+ <color name="settings_background">@color/photonLightGrey05</color>
+ <color name="preference_learn_more_link">@color/accentBright</color>
+ <color name="selected_search_engine">@color/accentBright</color>
+
+ <color name="colorSettingsTint">@color/photonGrey10</color>
+ <color name="colorAccentSettings">@color/accentBright</color>
+
+ <color name="preference_row_selected">#353852</color>
+ <color name="preference_row_disabled">#B3313131</color>
+
+ <color name="trackingProtectionSheetBackground">@color/background</color>
+
+ <color name="enabled_button_tint">@color/photonBlack</color>
+
+ <!--Onboarding fragment colors -->
+ <color name="onboarding_text">@color/photonDarkGrey05</color>
+ <color name="onboarding_title">@color/photonLightGrey05</color>
+
+ <!--Modals colors -->
+ <color name="modal_background">@color/colorSecondary</color>
+
+ <!-- Override AC colors -->
+ <color name="mozac_ui_icons_fill">@color/primaryText</color>
+ <color name="mozac_additional_note_background">@color/colorPrimary</color>
+ <color name="mozac_additional_note_text_color">@color/secondaryText</color>
+
+ <!-- CFR colors -->
+ <color name="cfr_text_color">#FBFBFE</color>
+ <color name="cfr_pop_up_shape_end_color">#AB71FF</color>
+ <color name="cfr_pop_up_shape_start_color">#592ACB</color>
+ <color name="cfr_triangle_color">#FFFFFF</color>
+
+ <!-- Biometric screen colors -->
+ <color name="biometric_show_button_background">#312A64</color>
+
+ <!-- HomeScreen background colors -->
+ <color name="home_screen_modal_gradient_one">#D3D4FA</color>
+ <color name="home_screen_modal_gradient_two">#D7D6F9</color>
+ <color name="home_screen_modal_gradient_three">#ECEAFA</color>
+ <color name="home_screen_modal_gradient_four">#F0EFFA</color>
+ <color name="home_screen_modal_gradient_five">#D9D3F5</color>
+ <color name="home_screen_modal_gradient_six">#D6C9EB</color>
+
+ <!-- Promote SearchWidget Dialog colors -->
+ <color name="promote_search_widget_dialog_background">#FFFFFF</color>
+ <color name="promote_search_widget_dialog_close_button_background">#F2F2F7</color>
+ <color name="promote_search_widget_dialog_add_widget_button_background">#312A64</color>
+
+ <!---Cookie banner details panel colors-->
+ <color name="cookie_banner_details_panel_report_a_site_text_color">@color/photonViolet70</color>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values/configuration.xml b/mobile/android/focus-android/app/src/main/res/values/configuration.xml
new file mode 100644
index 0000000000..180caf0f80
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values/configuration.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <integer name="erase_animation_alpha_duration">250</integer>
+ <integer name="erase_animation_scale_duration">100</integer>
+ <integer name="erase_animation_translate_duration">100</integer>
+ <integer name="erase_animation_translate_offset">150</integer>
+
+ <integer name="erase_snackbar_delay">500</integer>
+
+ <integer name="progress_shift_duration">500</integer>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values/dimens.xml b/mobile/android/focus-android/app/src/main/res/values/dimens.xml
new file mode 100644
index 0000000000..61baa3e098
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values/dimens.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources xmlns:tools="http://schemas.android.com/tools">
+ <dimen name="menu_elevation">8dp</dimen>
+
+ <dimen name="tab_sheet_end_margin">40dp</dimen>
+ <dimen name="activity_horizontal_margin">16dp</dimen>
+ <dimen name="activity_vertical_margin">16dp</dimen>
+
+ <item name="match_parent" type="dimen">-1</item>
+ <!-- We specifically want match_parent here. If we set -1, the build breaks since integers aren't allowed.
+ If we set -1dp, the UI breaks (i.e. we don't get match_parent). For some reason adding another
+ redirection via an existing attribute works... -->
+ <dimen name="firstrun_container_width">@dimen/match_parent</dimen>
+
+ <!-- The custom tabs spec defines a maximum close button size, we need to define this here to enforce that sizing. -->
+ <dimen name="customtabs_toolbar_icon_size">24dp</dimen>
+
+ <!-- We are using a NavigationView in our context menu and it adds padding that we do not want. -->
+ <dimen name="design_navigation_padding_top_default" tools:override="true">0dp</dimen>
+ <dimen name="design_navigation_separator_vertical_padding" tools:override="true">0dp</dimen>
+ <dimen name="design_navigation_padding_bottom" tools:override="true">0dp</dimen>
+
+ <dimen name="firstrun_card_width">300dp</dimen>
+ <dimen name="firstrun_card_height">460dp</dimen>
+
+ <dimen name="fingerprint_icon_size">64dp</dimen>
+ <dimen name="fingerprint_status_layout_margin_vertical">48dp</dimen>
+
+ <dimen name="tabs_button_text_size">12dp</dimen>
+
+ <dimen name="adaptive_icon_drawable_dimen">108dp</dimen> <!-- Specified in AdaptiveIconDrawable docs. -->
+
+ <dimen name="dialogHorizontalPadding">24dp</dimen>
+ <dimen name="dialog_min_width_major">65%</dimen>
+ <dimen name="dialog_min_width_minor">75%</dimen>
+
+ <dimen name="preference_root_layout_padding">16dp</dimen>
+ <dimen name="preference_icon_drawable_size">24dp</dimen>
+ <dimen name="preference_drawable_padding">32dp</dimen>
+ <dimen name="preference_padding_top">8dp</dimen>
+ <dimen name="preference_padding_horizontal">16dp</dimen>
+ <dimen name="preference_padding_vertical">12dp</dimen>
+ <dimen name="preference_row_height">48dp</dimen>
+
+ <dimen name="textinputlayout_spacing">8dp</dimen>
+
+ <dimen name="urlinput_height">57dp</dimen>
+
+ <dimen name="doorhanger_width">300dp</dimen>
+ <dimen name="doorhanger_input_width">250dp</dimen>
+ <dimen name="doorhanger_offsetX">12dp</dimen>
+ <dimen name="doorhanger_offsetY">67dp</dimen>
+ <dimen name="doorhanger_drawable_padding">5dp</dimen>
+ <dimen name="doorhanger_subsection_padding">8dp</dimen>
+ <dimen name="doorhanger_section_padding_small">10dp</dimen>
+ <dimen name="doorhanger_section_padding_medium">20dp</dimen>
+ <dimen name="doorhanger_section_padding_large">30dp</dimen>
+ <dimen name="doorhanger_icon_size">60dp</dimen>
+ <dimen name="doorhanger_rounded_corner_radius">4dp</dimen>
+ <dimen name="doorhanger_small_icon">16dp</dimen>
+
+ <dimen name="browser_menu_height">280dp</dimen>
+
+ <dimen name="menu_blocking_switch_container_height">88dp</dimen>
+ <dimen name="menu_blocking_switch_height">20dp</dimen>
+ <dimen name="menu_blocking_switch_width">46dp</dimen>
+ <dimen name="menu_blocking_switch_margin">12dp</dimen>
+
+ <dimen name="search_suggestions_padding_start">56dp</dimen>
+ <dimen name="search_suggestions_padding_with_icon">16dp</dimen>
+
+ <dimen name="browser_toolbar_height">56dp</dimen>
+
+ <!-- Override the default menu width values from AC. -->
+ <dimen name="mozac_browser_menu_width_min" tools:ignore="UnusedResources">112dp</dimen>
+ <dimen name="mozac_browser_menu_width_max" tools:ignore="UnusedResources">314dp</dimen>
+
+ <!-- Preferences. -->
+ <dimen name="radio_button_preference_height">48dp</dimen>
+ <dimen name="radio_button_preference_width">48dp</dimen>
+ <dimen name="radio_button_preference_start_margin">18dp</dimen>
+ <dimen name="radio_button_preference_title_margins">16dp</dimen>
+
+
+ <!-- Default values for Material Bottom sheet. -->
+ <dimen name="tablet_bottom_sheet_width">@dimen/match_parent</dimen>
+ <dimen name="tablet_bottom_sheet_peekheight">64dp</dimen>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values/fonts.xml b/mobile/android/focus-android/app/src/main/res/values/fonts.xml
new file mode 100644
index 0000000000..95a56f16f9
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values/fonts.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <string name="font_roboto_medium">sans-serif-medium</string>
+ <string name="font_roboto_regular">sans-serif</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values/ids.xml b/mobile/android/focus-android/app/src/main/res/values/ids.xml
new file mode 100644
index 0000000000..485dee349b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values/ids.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <item name="add_to_shortcuts" type="id" />
+ <item name="remove_from_shortcuts" type="id" />
+ <item name="share" type="id" />
+ <item name="settings" type="id" />
+ <item name="open_default" type="id" />
+ <item name="find_in_page" type="id" />
+ <item name="open_select_browser" type="id" />
+ <item name="custom_tab_menu_item" type="id" />
+ <item name="finish" type="id" />
+ <item name="next" type="id" />
+ <item name="add_to_homescreen" type="id" />
+ <item name="help" type="id" />
+ <item name="whats_new" type="id" />
+ <item name="open_in_firefox_focus" type="id" />
+ <item name="report_site_issue" type="id"/>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values/preference_keys.xml b/mobile/android/focus-android/app/src/main/res/values/preference_keys.xml
new file mode 100644
index 0000000000..6fbdb2dd5f
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values/preference_keys.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="pref_key_search_engine" translatable="false"><xliff:g id="preference_key">pref_search_engine</xliff:g></string>
+ <string name="pref_key_show_search_suggestions" translatable="false"><xliff:g id="preference_key">pref_show_search_suggestions</xliff:g></string>
+ <string name="pref_key_manual_add_search_engine" translatable="false"><xliff:g id="preference_key">pref_manual_add_search_engine</xliff:g></string>
+ <string name="pref_key_radio_search_engine_list" translatable="false">pref_radio_search_engine_list</string>
+ <string name="pref_key_multiselect_search_engine_list" translatable="false">pref_multiselect_search_engine_list</string>
+
+ <string name="pref_key_remote_server_prod" translatable="false">pref_key_remote_server_prod</string>
+
+ <string name="pref_key_privacy_block_ads" translatable="false"><xliff:g id="preference_key">pref_privacy_block_ads</xliff:g></string>
+ <string name="pref_key_privacy_block_analytics" translatable="false"><xliff:g id="preference_key">pref_privacy_block_analytics</xliff:g></string>
+ <string name="pref_key_privacy_block_social" translatable="false"><xliff:g id="preference_key">pref_privacy_block_social</xliff:g></string>
+ <string name="pref_key_privacy_block_cryptomining" translatable="false"><xliff:g id="preference_key">pref_privacy_block_cryptomining</xliff:g></string>
+ <string name="pref_key_privacy_block_fingerprinting" translatable="false"><xliff:g id="preference_key">pref_privacy_block_fingerprinting</xliff:g></string>
+ <string name="pref_key_privacy_block_other3" translatable="false"><xliff:g id="preference_key">pref_privacy_block_other3</xliff:g></string>
+ <string name="pref_key_privacy_total_trackers_blocked_count" translatable="false"><xliff:g id="preference_key">pref_key_privacy_total_trackers_blocked_count</xliff:g></string>
+ <string name="pref_key_privacy_ever_changed_etp" translatable="false"><xliff:g id="preference_key">pref_key_privacy_ever_changed_etp</xliff:g></string>
+
+ <string name="pref_key_tool_tip" translatable="false"><xliff:g id="preference_key">pref_key_tool_tip</xliff:g></string>
+
+ <string name="pref_key_performance_block_webfonts" translatable="false"><xliff:g id="preference_key">pref_performance_block_webfonts</xliff:g></string>
+ <string name="pref_key_performance_block_javascript" translatable="false"><xliff:g id="preference_key">pref_performance_block_javascript</xliff:g></string>
+ <string name="pref_key_performance_enable_cookies" translatable="false"><xliff:g id="preference_key">pref_performance_enable_cookies</xliff:g></string>
+ <string name="pref_key_performance_block_images" translatable="false"><xliff:g id="preference_key">pref_performance_block_images</xliff:g></string>
+
+ <string name="pref_key_default_browser" translatable="false"><xliff:g id="preference_key">pref_default_browser</xliff:g></string>
+ <string name="pref_key_leakcanary" translatable="false"><xliff:g id="preference_key">pref_key_leakcanary</xliff:g></string>
+
+ <string name="pref_key_telemetry" translatable="false"><xliff:g id="preference_key">pref_telemetry</xliff:g></string>
+
+ <string name="pref_key_secure" translatable="false"><xliff:g id="preference_key">pref_secure</xliff:g></string>
+
+ <string name="pref_key_safe_browsing" translatable="false"><xliff:g id="preference_key">pref_safe_browsing</xliff:g></string>
+
+ <string name="pref_key_https_only" translatable="false"><xliff:g id="preference_key">pref_https_only</xliff:g></string>
+
+ <string name="pref_key_biometric" translatable="false"><xliff:g id="preference_key">pref_biometric</xliff:g></string>
+ <string name="pref_key_about" translatable="false"><xliff:g id="preference_key">pref_about</xliff:g></string>
+ <string name="pref_key_help" translatable="false"><xliff:g id="preference_key">pref_help</xliff:g></string>
+ <string name="pref_key_rights" translatable="false"><xliff:g id="preference_key">pref_rights</xliff:g></string>
+ <string name="pref_key_privacy_notice" translatable="false"><xliff:g id="preference_key">pref_privacy_notice</xliff:g></string>
+ <string name="pref_key_licensing_info" translatable="false"><xliff:g id="preference_key">pref_licensing_info</xliff:g></string>
+ <string name="pref_key_libraries_we_use" translatable="false"><xliff:g id="preference_key">pref_libraries_we_use</xliff:g></string>
+
+ <string name="pref_key_locale" translatable="false"><xliff:g id="preference_key">pref_locale</xliff:g></string>
+ <string name="pref_in_app_review_openings" translatable="false"><xliff:g id="preference_key">pref_in_app_review_openings</xliff:g></string>
+ <string name="pref_in_app_review_step" translatable="false"><xliff:g id="preference_key">pref_in_app_review_step</xliff:g></string>
+ <string name="pref_in_app_review_time" translatable="false"><xliff:g id="preference_key">pref_in_app_review_time</xliff:g></string>
+
+ <string name="pref_key_screen_autocomplete" translatable="false"><xliff:g id="preference_key">pref_screen_autocomplete</xliff:g></string>
+ <string name="pref_key_autocomplete_preinstalled" translatable="false"><xliff:g id="preference_key">pref_autocomplete_preinstalled</xliff:g></string>
+ <string name="pref_key_autocomplete_custom" translatable="false"><xliff:g id="preference_key">pref_autocomplete_custom</xliff:g></string>
+ <string name="pref_key_screen_custom_domains" translatable="false"><xliff:g id="preference_key">pref_screen_custom_domains</xliff:g></string>
+
+ <string name="pref_key_privacy_security_screen" translatable="false"><xliff:g id="preference_key">pref_screen_privacy_security</xliff:g></string>
+ <string name="pref_key_advanced_screen" translatable="false"><xliff:g id="preference_key">pref_advanced_screen</xliff:g></string>
+ <string name="pref_key_general_screen" translatable="false"><xliff:g id="preference_key">pref_general_screen</xliff:g></string>
+
+ <string name="pref_key_mozilla_screen" translatable="false"><xliff:g id="preference_key">pref_screen_mozilla</xliff:g></string>
+ <string name="pref_key_search_screen" translatable="false"><xliff:g id="preference_key">pref_screen_search</xliff:g></string>
+ <string name="pref_key_remote_debugging" translatable="false"><xliff:g id="preference_key">pref_remote_debugging</xliff:g></string>
+ <string name="pref_key_open_links_in_external_app" translatable="false"><xliff:g id="preference_key">pref_key_open_links_in_external_app</xliff:g></string>
+ <string name="pref_key_studies" translatable="false"><xliff:g id="preference_key">pref_key_studies</xliff:g></string>
+ <string name="pref_key_secret_settings" translatable="false"><xliff:g id="preference_key">pref_key_secret_settings</xliff:g></string>
+ <string name="pref_key_use_nimbus_preview" translatable="false"><xliff:g id="preference_key">pref_key_use_nimbus_preview</xliff:g></string>
+
+ <string name="has_opened_new_tab" translatable="false"><xliff:g id="preference_key">has_opened_new_tab</xliff:g></string>
+ <string name="has_added_to_home_screen" translatable="false"><xliff:g id="preference_key">has_added_to_home_screen</xliff:g></string>
+ <string name="has_requested_desktop" translatable="false"><xliff:g id="preference_key">has_requested_desktop</xliff:g></string>
+ <string name="app_launch_count" translatable="false"><xliff:g id="preference_key">app_launch_count</xliff:g></string>
+ <string name="pref_key_category_safe_browsing" translatable="false"><xliff:g id="preference_key">safe_browsing_category</xliff:g></string>
+
+ <string name="pref_key_category_security" translatable="false"><xliff:g id="preference_key">security_category</xliff:g></string>
+
+ <string name="pref_key_search_widget_installed" translatable="false"><xliff:g id="preference_key">pref_key_search_widget_installed</xliff:g></string>
+ <string name="pref_key_clear_browsing_sessions" translatable="false"><xliff:g id="preference_key">pref_key_clear_browsing_sessions</xliff:g></string>
+
+ <string name="pref_key_screen_exceptions" translatable="false">
+ <xliff:g id="preference_key">pref_screen_exceptions</xliff:g>
+ </string>
+ <string name="pref_cfr_visibility_for_tracking_protection" translatable="false"><xliff:g id="preference_key">pref_cfr_visibility_for_tracking_protection</xliff:g></string>
+ <string name="pref_cfr_visibility_for_start_browsing" translatable="false"><xliff:g id="preference_key">pref_cfr_visibility_for_start_browsing</xliff:g></string>
+
+ <string name="pref_tool_tip_privacy_security_settings" translatable="false"><xliff:g id="preference_key">pref_tool_tip_privacy_security_settings</xliff:g></string>
+ <!-- Theme Settings -->
+ <string name="pref_key_light_theme" translatable="false">pref_key_light_theme</string>
+ <string name="pref_key_dark_theme" translatable="false">pref_key_dark_theme</string>
+ <string name="pref_key_default_theme" translatable="false">pref_key_default_theme</string>
+
+ <!-- Site Permissions Settings -->
+ <string name="pref_key_allow_autoplay_audio_video" translatable="false"><xliff:g id="preference_key">pref_key_allow_autoplay_audio_video</xliff:g></string>
+ <string name="pref_key_block_autoplay_audio_only" translatable="false"><xliff:g id="preference_key">pref_key_block_autoplay_audio_only</xliff:g></string>
+ <string name="pref_key_block_autoplay_audio_video" translatable="false"><xliff:g id="preference_key">pref_key_block_autoplay_audio_video</xliff:g></string>
+ <string name="pref_key_ask_to_allow" translatable="false"><xliff:g id="preference_key">pref_key_ask_to_allow</xliff:g></string>
+ <string name="pref_key_blocked" translatable="false"><xliff:g id="preference_key">pref_key_blocked</xliff:g></string>
+ <string name="pref_key_allowed" translatable="false"><xliff:g id="preference_key">pref_key_allowed</xliff:g></string>
+
+ <string name="pref_key_site_permissions" translatable="false"><xliff:g id="preference_key">pref_key_privacy_site_permissions</xliff:g></string>
+ <string name="pref_key_autoplay" translatable="false"><xliff:g id="preference_key">pref_key_autoplay</xliff:g></string>
+ <string name="pref_key_browser_feature_media_key_system_access" translatable="false"><xliff:g id="preference_key">pref_key_browser_feature_media_key_system_access</xliff:g></string>
+ <string name="pref_key_phone_feature_camera" translatable="false"><xliff:g id="preference_key">pref_key_phone_feature_camera</xliff:g></string>
+ <string name="pref_key_phone_feature_location" translatable="false"><xliff:g id="preference_key">pref_key_phone_feature_location</xliff:g></string>
+ <string name="pref_key_phone_feature_microphone" translatable="false"><xliff:g id="preference_key">pref_key_phone_feature_microphone</xliff:g></string>
+ <string name="pref_key_phone_feature_notification" translatable="false"><xliff:g id="preference_key">pref_key_phone_feature_notification</xliff:g></string>
+
+ <!-- OnBoarding Step -->
+ <string name="pref_key_onboarding_step" translatable="false"><xliff:g id="preference_key">pref_key_onboarding_step</xliff:g></string>
+ <string name="pref_key_first_screen" translatable="false"><xliff:g id="preference_key">pref_key_first_screen</xliff:g></string>
+ <string name="pref_key_second_screen" translatable="false"><xliff:g id="preference_key">pref_key_second_screen</xliff:g></string>
+ <string name="firstrun_shown" translatable="false"><xliff:g id="preference_key">firstrun_shown</xliff:g></string>
+ <string name="new_onboarding_enabled" translatable="false"><xliff:g id="preference_key">new_onboarding_enabled</xliff:g></string>
+
+ <!-- Cookie Banner Reduction Settings-->
+ <string name="pref_key_cookie_banner_enabled" translatable="false"><xliff:g id="preference_key">pref_key_cookie_banner_enabled</xliff:g></string>
+ <string name="pref_key_cookie_banner_settings" translatable="false">pref_key_cookie_banner_settings</string>
+ <string name="pref_key_cookie_banner_reject_all" translatable="false">pref_key_cookie_banner_reject_all</string>
+ <string name="pref_key_cookie_banner_disabled" translatable="false">pref_key_cookie_banner_disabled</string>
+ <string name="pref_cfr_visibility_for_cookie_banner" translatable="false"><xliff:g id="preference_key">pref_cfr_visibility_for_cookie_banner</xliff:g></string>
+
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values/static_strings.xml b/mobile/android/focus-android/app/src/main/res/values/static_strings.xml
new file mode 100644
index 0000000000..c5deff31e5
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values/static_strings.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <!-- Secret Settings Strings -->
+ <!-- Label for the secret settings preference -->
+ <string name="preference_secret_settings" translatable="false">Secret Settings</string>
+
+ <!-- Label for using the nimbus collections preview -->
+ <string name="preference_use_nimbus_preview" translatable="false">Use Nimbus Preview Collection (requires restart)</string>
+
+ <!-- Toast shown to the user when they are activating the secret dev menu
+ The first parameter is number of long clicks left to enable the menu -->
+ <string name="about_debug_menu_toast_progress" translatable="false">Debug menu: %1$d click(s) left to enable</string>
+ <string name="about_debug_menu_toast_done" translatable="false">Debug menu enabled</string>
+
+ <!-- Label for LeakCanary Toggle. It's used in Advanced Settings. -->
+ <string name="preference_leakcanary" translatable="false">LeakCanary</string>
+
+ <!-- Application Services abbreviation used in AboutFragment -->
+ <string name="services_abbreviation" translatable="false">AS</string>
+
+ <!-- Label for using remote settings server url -->
+ <string name="preferences_debug_settings_remote_settings_server" translatable="false">Use Remote Settings Production server \n(Staging will be used when disabled) \n(requires restart)</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values/strings.xml b/mobile/android/focus-android/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000000..cec6aa586a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values/strings.xml
@@ -0,0 +1,1069 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources xmlns:moz="http://mozac.org/tools" xmlns:tools="http://schemas.android.com/tools">
+ <!-- ####################################################################################### -->
+ <!-- ## Put only strings into this file that should be translated. Move all other strings ## -->
+ <!-- ## into a separate file like strings_references.xml ## -->
+ <!-- ####################################################################################### -->
+
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_cancel">Cancel</string>
+ <!-- Label used for buttons, e.g. in dialogs -->
+ <string name="action_ok">OK</string>
+
+ <string name="action_save">Save</string>
+
+ <!-- This text is shown in the URL bar when it's empty -->
+ <string name="urlbar_hint">Search or enter address</string>
+
+ <string name="teaser">Automatic private browsing.\nBrowse. Erase. Repeat.</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a browsing session -->
+ <string name="feedback_erase">Your browsing history has been erased.</string>
+ <string name="feedback_erase2">Browsing history cleared</string>
+
+ <!-- "Snackbar" shown after the user has pressed the 'erase' button at the end of a custom tab browsing session -->
+ <string name="feedback_erase_custom_tab">Tab’s browsing history has been erased.</string>
+
+ <!-- This label is shown below the URL bar as soon as the user enters text. Clicking the label will perform a search -->
+ <string name="search_hint">Search for %1$s</string>
+
+ <!-- Menu item: Share the currently visible page -->
+ <string name="menu_share">Share…</string>
+
+ <!-- Menu item: Report an issue on the current site -->
+ <string name="menu_report_site_issue">Report Site Issue</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. %1$s will be
+ replaced with the name of the browser like: "Open in Firefox" or "Open in Chrome". Some
+ links can be opened by native apps that aren't a browser, e.g. "Open in YouTube" -->
+ <string name="menu_open_with_default_browser2">Open in %1$s</string>
+
+ <!-- Menu item: Switch to another browser to open the currently visible page. This menu item
+ will be shown if there are multiple browsers and we do not know which one is the default
+ browser or in case Focus is actually the default browser. Clicking this menu item will show
+ a screen with multiple browsers (or other apps that can open the current URL) to choose from. -->
+ <string name="menu_open_with_a_browser2">Open in…</string>
+
+ <!-- Menu item: Add the current page as a shortcut to the device's home screen (launcher). -->
+ <string name="menu_add_to_home_screen">Add to Home screen</string>
+
+ <!-- Menu item: Add the current site as a shortcut on the Home screen -->
+ <string name="menu_add_to_shortcuts">Add to Shortcuts</string>
+ <!-- Menu item: Remove the current site as a shortcut from the Home screen -->
+ <string name="menu_remove_from_shortcuts">Remove from Shortcuts</string>
+
+ <!-- Menu item: Shows information about features and changes that are new to this version -->
+ <string name="menu_settings">Settings</string>
+ <string name="menu_about">About</string>
+ <string name="menu_help">Help</string>
+ <string name="menu_rights">Your Rights</string>
+
+ <!-- Menu item: This is the label for a menu entry that shows how many trackers have been blocked
+ for the currently loaded website. The number of blocked trackers is shown below this label.
+ Next to this label is a switch that allows the user to temporarily enable / disable the
+ blocking of trackers for the current browsing session - for example if the current website
+ doesn't work correctly with blocked content. -->
+ <string name="menu_trackers_blocked_title">Trackers blocked</string>
+
+ <!-- Menu item: This is the subtitle for the Trackers blocked menu entry that shows how many
+ trackers have been blocked for the currently loaded website. -->
+ <string name="menu_trackers_blocked_subtitle">Turning this off may fix some site problems</string>
+
+ <!-- Menu item: This is the label for turning off content blocking for the current website. -->
+ <string name="menu_content_blocking">Content Blocking</string>
+ <!-- This is the subtitle content blocking toggle -->
+ <string name="menu_content_blocking_subtitle">Turn off to fix some sites</string>
+
+ <!-- This is a small text at the bottom of the menu shown in a "custom tab" for branding purposes.
+ See https://github.com/mozilla-mobile/focus-android/issues/2106
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="menu_custom_tab_branding">Powered by %1$s</string>
+
+ <!-- This is the title of a dialog that shows all the share targets (apps or contacts) when
+ sharing an URL. -->
+ <string name="share_dialog_title">Share via</string>
+
+ <string name="notification_erase_title_android_14">Erase browsing history?</string>
+ <string name="notification_erase_text_android_14" moz:RemovedIn="124" tools:ignore="UnusedResources">Tap or clear this notification to securely erase your browsing history.</string>
+
+ <!-- Text shown in the notification description that pops up to remind the user that a browsing session is active
+ for Android 14+. -->
+ <string name="notification_erase_text_android_14_1">Tap or swipe this notification to securely erase your browsing history.</string>
+
+ <string name="notification_erase_text">Erase browsing history</string>
+
+ <!-- Notification action to open Focus and resume the current browsing session. -->
+ <string name="notification_action_open">Open</string>
+
+ <!-- Notification action to erase the current browsing session AND switch to Focus (bring it
+ to the foreground) -->
+ <string name="notification_action_erase_and_open">Erase and Open</string>
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_short_label">Erase</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters. -->
+ <string name="shortcut_erase_long_label">Erase browsing history</string>
+
+
+ <!-- On Android 7+ users can add a shortcut for erasing the browsing history to the home screen.
+ This is the label for this shortcut. Android recommends a maximum length of 10 characters. -->
+ <string name="shortcut_erase_and_open_short_label">Erase &amp; open</string>
+
+ <!-- The same as 'shortcut_erase_short_label' but more descriptive. The launcher shows this
+ instead of the short title when it has enough space. Android recommends a maximum length
+ of 25 characters.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="shortcut_erase_and_open_long_label">Erase and open %1$s</string>
+
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus.-->
+ <string name="text_selection_search_action_focus">Search in Focus</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Klar is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Klar.-->
+ <string name="text_selection_search_action_klar">Search in Klar</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Beta is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Beta.-->
+ <string name="text_selection_search_action_focus_beta">Search in Focus Beta</string>
+ <!-- This is the label of an action we offer when the user selects text in other third-party apps.
+ Focus Nightly is hard coded since we can't use variables in this context.
+ Do not translate or transliterate Focus Nightly.-->
+ <string name="text_selection_search_action_focus_nightly">Search in Focus Nightly</string>
+
+ <!-- Content of about focus. Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ Argument 2 is the url for the learn-more link. -->
+ <string name="about_content"><![CDATA[<p>%1$s puts you in control.</p>
+<p>Use it as a private browser:
+ <ul>
+ <li>Search and browse right in the app</li>
+ <li>Block trackers (or update settings to allow trackers)</li>
+ <li>Erase to delete cookies as well as search and browsing history</li>
+ </ul>
+</p>
+<p>%1$s is produced by Mozilla. Our mission is to foster a healthy, open Internet.<br/>
+<a href="%2$s">Learn more</a></p>]]></string>
+
+ <!-- Header for the Privacy and Security settings menu -->
+ <string name="preference_privacy_and_security_header">Privacy &amp; Security</string>
+
+ <!-- Preference summary for settings related to privacy and security -->
+ <string name="preference_privacy_and_security_summary">Tracking, cookies, data choices</string>
+
+ <!-- Preference category description for settings related to search, set default
+ and autocomplete are settings a user can find and change inside the "search" settings screen -->
+ <string name="preference_search_summary">Set default, autocomplete</string>
+
+ <!-- Preference category description for settings screen for settings related to Mozilla -->
+ <!-- About the app and help are links that are inside this menu -->
+ <!-- %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_summary">About %1$s, help</string>
+
+ <!-- Preference category for ad blocking and enhanced tracking protection settings -->
+ <string name="preference_category_tracking_protection3">Enhanced Tracking Protection</string>
+
+ <!-- Preference category for settings related to controlling web content -->
+ <string name="preference_category_web_content">Web Content</string>
+
+ <!-- Preference category: stealth settings for while switching apps -->
+ <string name="preference_category_switching_apps">Switching Apps</string>
+
+ <!-- Preference category for General Settings -->
+ <string name="preference_category_general">General</string>
+
+ <!-- Preference summary for General Settings category; the two things users can find in this category -->
+ <string name="preference_general_summary2">Default browser, language</string>
+
+ <!-- Preference category for settings about sending usage data -->
+ <string name="preference_category_data_collection_use">Data Collection &amp; Use</string>
+
+ <string name="preference_category_search">Search</string>
+
+ <!-- Title of "switch" preference that enables/disables search suggestions -->
+ <string name="preference_show_search_suggestions">Get search suggestions</string>
+ <!-- Description of the preference that enables/disables search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_show_search_suggestions_summary">%1$s will send what you type in the address bar to your search engine</string>
+
+ <!-- This label is shown below the name of the default search engine in settings -->
+ <string name="preference_search_engine_default">Default</string>
+
+ <!-- This label is shown above the currently selected search engine in settings -->
+ <string name="preference_search_engine_label">Search engine</string>
+
+ <!-- Text that is shown below a "switch" preference that is enabled. -->
+ <string name="preference_state_on">On</string>
+
+ <!-- Text that is shown below a "switch" preference that is disabled. -->
+ <string name="preference_state_off">Off</string>
+
+ <!-- Item in settings that will open a new preference screen for configuring the URL autocomplete behavior. -->
+ <string name="preference_subitem_autocomplete">URL Autocomplete</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the default list -->
+ <string name="preference_switch_autocomplete_topsites">For top sites</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the topsites list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_topsite_summary2">Enable to have %s autocomplete over 450 popular URLs in the address bar.</string>
+
+ <!-- Title of "switch" preference that enables/disables autocomplete for the user-defined list -->
+ <string name="preference_switch_autocomplete_user_list">For sites you add</string>
+
+ <!-- Summary for the toggle to enable autocomplete for the user-defined list
+ %s is a placeholder for the app name (e.g. Firefox Focus)-->
+ <string name="preference_autocomplete_user_list_summary2">Enable to have %s autocomplete your favorite URLs.</string>
+
+ <!-- Preference category: Manage (user-defined) sites -->
+ <string name="preference_category_autocomplete_manage_sites">Manage sites</string>
+
+ <!-- Item in autocomplete settings that will open a new preference screen for adding and removing URLs to the user-defined list-->
+ <string name="preference_autocomplete_subitem_manage_sites">Manage sites</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add">+ Add custom URL</string>
+
+ <!-- Explanation text above the list of custom autocomplete URLs. -->
+ <string name="preference_autocomplete_explanation_text">Your autocomplete list:</string>
+
+ <!-- Action at the bottom of the list of custom autocomplete URLs that will open a new screen to add a new URL to the list. -->
+ <string name="preference_autocomplete_action_add2">Add URL</string>
+
+ <!-- Title of the screen for adding custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_add">Add custom URL</string>
+
+ <!-- Label for the button to quick add custom autocomplete URLs. -->
+ <string name="custom_autocomplete_quick_add">Add custom URL</string>
+
+ <!-- Label for the button to quick add the current URL to the custom autocomplete list -->
+ <string name="add_custom_autocomplete_label">Add link to autocomplete</string>
+
+ <!-- Preference category for settings about cookies and site data -->
+ <string name="preference_category_cookies">Cookies and Site Data</string>
+
+ <!-- Preference category for settings about data choices -->
+ <string name="preference_category_data_choices">Data Choices</string>
+
+ <!-- Title of the screen for removing custom autocomplete URLs. -->
+ <string name="preference_autocomplete_title_remove">Remove custom URLs</string>
+
+ <!-- A link to SUMO at autocomplete settings. -->
+ <string name="preference_autocomplete_learn_more">Learn more</string>
+
+ <!-- Preference summary: Custom (user-defined) autocomplete URLs. -->
+ <string name="preference_autocomplete_custom_summary">Add and manage custom autocomplete URLs.</string>
+
+ <!-- Label for the "custom autocomplete URL" input field -->
+ <string name="preference_autocomplete_add_title">URL to add</string>
+
+ <!-- "Hint" text for the "custom autocomplete URL" input field. Shown when the field is empty. -->
+ <string name="preference_autocomplete_add_hint">Paste or enter URL</string>
+
+ <!-- Example how a custom domain autocomplete URL be added (e.g. without http://) -->
+ <string name="preference_autocomplete_add_example2">Example: mozilla.org</string>
+
+ <!-- To be removed once the new hint has been translated -->
+ <string name="preference_autocomplete_add_example">Example: example.com</string>
+
+ <!-- Confirmation "snackbar" shown after a new custom autocomplete URL has been added. -->
+ <string name="preference_autocomplete_add_confirmation">New custom URL added.</string>
+
+ <!-- Menu item to remove existing autocomplete URLs. -->
+ <string name="preference_autocomplete_menu_remove">Remove</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that will delete all selected custom autocomplete URLs. -->
+ <string name="preference_autocomplete_action_remove_content_description">Remove</string>
+
+ <!-- Error message shown if the entered custom autocomplete URL is not valid or empty. -->
+ <string name="preference_autocomplete_add_error">Double-check the URL you entered.</string>
+
+ <string name="preference_language">Language</string>
+ <!-- This is shown when the user hasn't set a focus specific language, i.e. when Focus
+ is using the system default language. -->
+ <string name="preference_language_systemdefault">System default</string>
+
+ <string name="preference_category_privacy">Privacy</string>
+ <string name="preference_privacy_block_ads">Block ad trackers</string>
+ <string name="preference_privacy_block_ads_summary">Some ads track site visits, even if you don’t click the ads</string>
+ <string name="preference_privacy_block_analytics">Block analytic trackers</string>
+ <string name="preference_privacy_block_analytics_summary">Used to collect, analyze and measure activities like tapping and scrolling</string>
+ <string name="preference_privacy_block_social">Block social trackers</string>
+ <string name="preference_privacy_block_social_summary">Embedded on sites to track your visits and to display functionality like share buttons</string>
+ <string name="preference_privacy_block_content">Block other content trackers</string>
+ <string name="preference_privacy_block_content_summary2">Enabling may cause some pages to behave unexpectedly</string>
+ <string name="preference_privacy_category_cookies">Block cookies</string>
+
+ <!-- Three options for Cookie blocking. Yes (All cookies Blocked), Block 3rd-party cookies
+ only (Only 3rd-party Cookies Blocked), No (No cookies blocked) -->
+ <string name="preference_privacy_should_block_cookies_no_option2">No thanks</string>
+ <string name="preference_privacy_should_block_cookies_third_party_tracker_cookies_option">Block 3rd-party tracker cookies only</string>
+ <string name="preference_privacy_should_block_cookies_third_party_only_option">Block 3rd-party cookies only</string>
+ <string name="preference_privacy_should_block_cookies_cross_site_option">Block cross-site cookies</string>
+ <string name="preference_privacy_should_block_cookies_yes_option2">Yes please</string>
+
+ <!-- Preference Title: Biometrics can be used to unlock Focus if the previous session's data was not erased by the user. -->
+ <string name="preference_security_biometric">Use fingerprint to unlock app</string>
+ <!-- Preference Summary: Biometrics (iris scan, fingerprint, or facial scan) can be used to unlock Focus if the app had a URL
+ open when the app was last run to ensure that only the phone's owner can view a previous session.
+ %s will be replaced by the app name (e.g. Firefox Focus)
+ Shortcuts is a feature that allows the user to pin his favorite websites to Focus home screen so he can quickly access them-->
+ <string name="preference_security_biometric_summary2">Unlock using fingerprint if you’ve added Shortcuts or when a website is already open in %s.</string>
+
+ <!-- Preference Title: Secure Mode is a setting that prevents the app's content to show up in the "recent apps" screen
+ and prevents the user from taking screenshots or casting the app to other displays. -->
+ <string name="preference_privacy_secure_mode">Stealth</string>
+ <!-- Preference Summary: Stealth mode (previously "Secure mode") is a setting that prevents the
+ app's content (in our case especially the content of webpages) to show up in the "recent apps"
+ screen. Additionally Android will prevent the user from taking screenshots or casting the app
+ to other displays. -->
+ <string name="preference_privacy_stealth_summary">Hide webpages when switching apps and block taking screenshots.</string>
+
+ <string name="preference_category_security">Security</string>
+
+ <string name="preference_category_performance">Performance</string>
+ <string name="preference_performance_block_webfonts">Block web fonts</string>
+ <!-- This text is shown below the setting for disabling web fonts. Some websites use icons/images from a font and those do not show up if fonts are blocked.-->
+ <string name="preference_performance_block_webfonts_summary">May result in missing icons or images</string>
+
+ <string name="preference_performance_block_javascript">Block JavaScript</string>
+ <!-- This text is shown below setting for disabling JavaScript. Some websites may not work correctly when JavaScript is disabled -->
+ <string name="preference_performance_block_javascript_summary">Pages may load faster, but may also behave unexpectedly</string>
+
+ <!-- This preference does not set Focus as the default browser but instead links to Android's
+ "default apps" settings screen or if not supported by this Android version to a SUMO page describing
+ how to set Focus as a default browser.
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="preference_default_browser2">Make %1$s default browser</string>
+
+ <string name="preference_category_mozilla">Mozilla</string>
+ <string name="preference_mozilla_telemetry2">Send usage data</string>
+
+ <!-- A link to SUMO at the end of the summary (preference_mozilla_telemetry_summary2) of the "Send anonymous usage data" setting. -->
+ <string name="preference_mozilla_telemetry_summary">Learn more</string>
+
+ <!-- %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="preference_mozilla_telemetry_summary2">Mozilla strives to collect only what we need to provide and improve %1$s for everyone.</string>
+
+ <!-- In-app link (in settings) to Focus privacy notice. -->
+ <string name="preference_privacy_notice">Privacy Notice</string>
+
+ <!-- In-app link (in settings) to Focus licensing information. -->
+ <string name="preference_licensing_info">Licensing information</string>
+
+ <!-- Link to Focus licensing information from other libraries that we use. -->
+ <string name="preference_libraries_we_use">Libraries that we use</string>
+
+ <!-- Open Source Licenses page title. The first parameter is the app name -->
+ <string name="open_source_licenses_title">%s | OSS Libraries</string>
+
+ <!-- Item in Preferences that shows the about page. Parameter 1 is the app name, i.e. Firefox Focus/Firefox Klar. -->
+ <string name="preference_about">About %1$s</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_search_installed_search_engines">Installed search engines</string>
+
+ <!-- Header for the list of installed search engines -->
+ <string name="preference_choose_search_engine">Choose search engine</string>
+
+ <!-- Action for restoring the default list of search engines -->
+ <string name="preference_search_restore">Restore default search engines</string>
+
+ <!-- Action for adding an additional search engine to the list.
+ The "+" is used to emphasize that this is an "add" action -->
+ <string name="preference_search_add2">+ Add another search engine</string>
+ <string name="preference_search_remove_title">Remove search engines</string>
+ <string name="preference_search_remove">Remove</string>
+ <!-- Action for dding an additional search engine to the list -->
+ <string name="preference_search_add3">Add another search engine</string>
+ <!-- Explanation text above the list of search engines-->
+ <string name="preference_select_preferred_engine">Select your preferred engine:</string>
+
+ <!-- Clickable action text that shows when user long-presses on a search engine search field (this is similar to paste or copy when long-pressing a text field) -->
+ <string name="action_option_add_search_engine">Add search engine</string>
+
+ <string name="search_add_manually_name_hint">Search engine name</string>
+ <string name="search_add_manually_string">Search string to use</string>
+ <string name="search_add_manually_save">Save</string>
+
+ <!-- Example of search engine url -->
+ <string name="search_add_manually_example">Example: example.com/search/?q=%s</string>
+
+ <string name="search_add_confirmation">New search engine added.</string>
+
+ <string name="search_add_error_empty_name">Enter search engine name</string>
+ <string name="search_add_error_duplicate_name">An installed search engine is already using that name.</string>
+
+ <string name="search_add_error_empty_search">Enter search string</string>
+
+ <string name="search_add_error_format">Check that search string matches Example format</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clear text in URL bar -->
+ <string name="content_description_clear_input">Clear input</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Clicking on the website overlay
+ while in typing mode will dismiss and go back to the browser. This text will be read when the
+ overlay if focused. See https://github.com/mozilla-mobile/focus-android/issues/50 -->
+ <string name="content_description_dismiss_input">Dismiss</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Erase button: Erase the browsing
+ history and go back to the home screen. -->
+ <string name="content_description_erase">Erase browsing history</string>
+
+ <!-- If the user has multiple tabs open we will show an addition "floating action button" showing how many tabs are open.
+ This string is not displayed and read only by screenreaders. %1$s will be replaced with the number of open tabs. This
+ button will only be visible when there is more than one tab open (>= 2). -->
+ <string name="content_description_tab_counter">Tabs open: %1$s</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Lock icon showed in the URL bar for
+ https pages.. -->
+ <string name="content_description_lock">Secure connection</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we start
+ loading a website -->
+ <string name="accessibility_announcement_loading">Loading</string>
+
+ <!-- This text is not visible. Instead it will be read by the accessibility service once we
+ finished loading a website -->
+ <string name="accessibility_announcement_loading_finished">Website loaded</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button. -->
+ <string name="content_description_menu">More options</string>
+
+ <!-- Content description (not visible, for screen readers etc.): "Three dot" menu button used
+ on home screen-->
+ <string name="indicator_content_description_menu">More options button</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate forward (browsing history) -->
+ <string name="content_description_forward">Navigate forward</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Reload current website -->
+ <string name="content_description_reload">Reload website</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back (browsing history) -->
+ <string name="content_description_back">Navigate back</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Stop loading the current website. This button will turn into the refresh button once loading has been completed (see content_description_reload) -->
+ <string name="content_description_stop">Stop loading website</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Custom Tab exit button - closes the custom tab and returns to the previous app. -->
+ <string name="content_description_customtab_exit">Return to previous app</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the ImageView in the menu that displays
+ the number of trackers blocked for the current session -->
+ <string name="content_description_trackers_blocked">Number of trackers blocked</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the switch in the menu that temporarily disables/enables
+ content blocking for the current session -->
+ <string name="content_description_blocking_switch">Block trackers</string>
+
+ <string name="your_rights">Your Rights</string>
+
+ <string name="external_app_prompt_title">Open link in another app</string>
+ <!-- This string is shown when the user has clicked a link that needs to be opened in a different app.
+ Argument 2 is the external app name, argument 1 is our name (i.e. Firefox Focus, or Firefox Klar). -->
+ <string name="external_app_prompt">You can leave %1$s to open this link in %2$s.</string>
+ <!-- This text is the title of a dialog shown if no app could be found for a custom link protocol. -->
+ <string name="external_app_prompt_no_app_title">Find an app that can open link</string>
+ <!-- This text is shown in a dialog if no app could be found for a custom link protocol. %1$s is the name of the app (i.e. Firefox Focus) and %2$s is the name of
+ the app store installed on the device (usually that's Google Play). -->
+ <string name="external_app_prompt_no_app">None of the apps on your device are able to open this link. You can leave %1$s to search %2$s for an app that can.</string>
+ <!-- This label is shown above a list of apps that can be used to open a given link -->
+ <string name="external_multiple_apps_matched_exit">Exit Private Browsing?</string>
+
+ <!-- Snackbar that will be displayed after a download has completed. %1$s will be replaced with the file name. -->
+ <string name="download_snackbar_finished">%1$s finished</string>
+
+ <!-- Snackbar action to immediately open the successfully downloaded file. -->
+ <string name="download_snackbar_open">Open</string>
+
+ <!-- Snackbar that will be displayed after a website has been added to shortcuts. -->
+ <string name="snackbar_added_to_shortcuts">Added to shortcuts!</string>
+
+ <string name="error_hostLookup_title">Server not found</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the close button from the new onboarding flow screen one and two -->
+ <string name="onboarding_close_button_content_description">Close</string>
+
+ <!-- New Onboarding flow first screen title -->
+ <!-- %1$s will be replaced by the app name and build variant(e.g. Firefox Focus, Firefox Klar Nightly) -->
+ <string name="onboarding_first_screen_title">Welcome to %1$s</string>
+
+ <!-- New Onboarding flow first screen subtitle the one that appears under title -->
+ <string name="onboarding_first_screen_subtitle">Fast. Private. No distractions.</string>
+
+ <!-- New Onboarding flow first screen button label-->
+ <string name="onboarding_first_screen_button_text">Get started</string>
+
+ <!-- Onboarding second screen: Title -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_title">%1$s isn’t like other browsers</string>
+
+ <!-- New Onboarding flow second screen subtitle the one that appears under title -->
+ <string name="onboarding_second_screen_subtitle_one">We clear your history when you close the app for extra privacy.</string>
+
+ <!-- New Onboarding flow second screen subtitle two the one that appears under subtitle one -->
+ <!-- %1$s will be replaced by the app short name(Focus) -->
+ <string name="onboarding_second_screen_subtitle_two">Make %1$s your default to protect your data with every link you open.</string>
+
+ <!-- New Onboarding flow second screen make Focus default browser button label-->
+ <string name="onboarding_second_screen_default_browser_button_text">Set as default browser</string>
+
+ <!-- New Onboarding flow second screen skip onboarding button label-->
+ <string name="onboarding_second_screen_skip_button_text">Skip</string>
+
+ <!-- First run tour (Default browser): Title -->
+ <string name="firstrun_defaultbrowser_title">Power up your privacy</string>
+ <!-- First run tour (Default browser): Text. -->
+ <string name="firstrun_defaultbrowser_text2">Take private browsing to the next level. Block ads and other content that can track you across sites and bog down page load times.</string>
+
+ <!-- First run tour (Search): Title -->
+ <string name="firstrun_search_title">Your search, your way</string>
+ <!-- First run tour (Search): Text -->
+ <string name="firstrun_search_text">Searching for something different? Choose another default search engine in Settings.</string>
+
+ <!-- First run tour (Shortcut): Title -->
+ <string name="firstrun_shortcut_title">Add shortcuts to your home screen</string>
+ <!-- First run tour (Shortcut): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_shortcut_text">Return to your favorite sites in %1$s quickly. Just select \"Add to Home screen\" from the %1$s menu.</string>
+
+ <!-- First run tour (Privacy): Title -->
+ <string name="firstrun_privacy_title">Make privacy a habit</string>
+ <!-- First run tour (Privacy): Text. %1$s will be replaced with the name of the app (e.g. Firefox Focus) -->
+ <string name="firstrun_privacy_text">Set %1$s as your default browser and get the benefits of private browsing when you open webpages from other apps.</string>
+
+ <string name="firstrun_close_button">OK, got it!</string>
+ <string name="firstrun_skip_button">Skip</string>
+ <string name="firstrun_next_button">Next</string>
+
+ <!-- Indicator that no trackers are being blocked because content blocking is disabled; normally shows the number of blocked trackers -->
+ <string name="content_blocking_disabled">-</string>
+
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_add">Add</string>
+ <!-- Label of the action that will add the current website to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_yes">YES</string>
+
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_cancel">Cancel</string>
+ <!-- Label of the action that will close the dialog and not add anything to the home screen (shown in the confirmation dialog). -->
+ <string name="dialog_addtohomescreen_action_no">NO</string>
+
+ <!-- When enhanced tracking protection is disabled for the current session then we will show this warning in the "Add to home screen" dialog to
+ let the user know that the shortcut will always be opened with enhanced tracking protection disabled. -->
+ <string name="dialog_addtohomescreen_tracking_protection2">Shortcut will open with Enhanced Tracking Protection disabled</string>
+
+ <!-- The user visible name of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 40 characters; the value may be truncated if it is too long.
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_name">Private browsing session</string>
+
+ <!-- The user visible description of the "notification channel" (Android 8+ feature) for the ongoing notification shown while a browsing session is active.
+ The recommended maximum length is 300 characters; the value may be truncated if it is too long. %1$s will be replaced with the name of the app (e.g. Firefox Focus).
+
+ * To understand what notification channels are, see: https://www.androidcentral.com/notification-channels
+ * To see how this string will look like in Android's UI, see: https://github.com/mozilla-mobile/focus-android/issues/863#issuecomment-324105723
+ -->
+ <string name="notification_browsing_session_channel_description">Notifications let you erase your %1$s session with a tap. You don’t need to open the app or see what’s running in your browser.</string>
+
+ <!-- Label for a button in the "tabs tray" to erase the browsing history (closes all tabs and removes associated data). -->
+ <string name="tabs_tray_action_erase">Erase browsing history</string>
+
+ <!-- If the user decides to open the current page in another browser and if Firefox is not installed then we show this
+ item in the list of browsers. Clicking it will open the app store installed on the device (usually that's Google Play). -->
+ <string name="download_firefox">Download Firefox</string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)-->
+ <string name="your_rights_content1"><![CDATA[%1$s is free and open source software made by Mozilla and other contributors.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the MPL (e.g. https://www.mozilla.org/en-US/MPL/) -->
+ <string name="your_rights_content2"><![CDATA[%1$s is made available to you under the terms of the <a href="%2$s">Mozilla Public License</a> and other open source licenses.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the trademark policy (e.g. https://www.mozilla.org/foundation/trademarks/policy/) -->
+ <string name="your_rights_content3"><![CDATA[You are not granted any rights or licenses to the trademarks of the Mozilla Foundation or any party, including the Mozilla, Firefox or %1$s names or logos. Additional information may be found <a href="%2$s">here</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the list of licenses used by the dependencies.-->
+ <string name="your_rights_content4"><![CDATA[Additional source code for %1$s is available under various other free and open source <a href="%2$s">licenses</a>.]]></string>
+
+ <!-- Text shown in the "Your rights" screen.
+ %1$s will be replaced with the name of the app (e.g. Firefox Focus)
+ %2$s will be replaced with a URL linking to the GPL
+ %3$s will be replaced with a URL linking to the tracking protection wiki page (e.g. https://wiki.mozilla.org/Security/Tracking_protection#Lists) -->
+ <string name="your_rights_content5"><![CDATA[%1$s also uses blocklists provided by Disconnect, Inc. as separate and independent works under the <a href="%2$s">GNU General Public License v3</a>, and available <a href="%3$s">here</a>.]]></string>
+
+ <!-- Text shown in prompts for GeckoView -->
+ <string name="gv_prompt_username_hint">Username</string>
+ <string name="gv_prompt_password_hint">Password</string>
+ <string name="gv_prompt_clear">Clear</string>
+
+ <!-- Text shown in Security Information Popup -->
+ <!-- Text to denote secure or insecure connection -->
+ <string name="security_popup_secure_connection">Secure Connection</string>
+ <string name="security_popup_insecure_connection">Insecure Connection</string>
+ <!-- %1$s will be replaced with organization that granted the SSL certificate -->
+ <string name="security_popup_security_verified">Verified by: %1$s</string>
+
+ <!-- Content Description of Security Icon in toolbar -->
+ <string name="site_security_icon_content_description">Site Security</string>
+ <string name="preference_autocomplete_duplicate_url_error">URL already exists</string>
+
+ <!-- Label for the Find in page button -->
+ <string name="find_in_page">Find in Page</string>
+
+ <!-- Watermark/Hint for the find in page input field -->
+ <string name="find_in_page_input">Find in page</string>
+
+ <!-- String to show the number of results found in the page and the
+ position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="find_in_page_result">%1$d/%2$d</string>
+ <!-- String to be read by the accessibility service presenting the number of results found in the page
+ and the position the user is at. The first argument is the position, the second argument is the total -->
+ <string name="accessibility_find_in_page_result">%1$d out of %2$d</string>
+
+ <!-- String to be read by the accessibility service when focusing the next result button -->
+ <string name="accessibility_next_result">Find next result</string>
+ <!-- String to be read by the accessibility service when focusing the previous result button -->
+ <string name="accessibility_previous_result">Find previous result</string>
+ <!-- String to be read by the accessibility service when focusing the dismiss button in the "find in page" UI -->
+ <string name="accessibility_dismiss_find_in_page">Dismiss find in page</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site">Request desktop site</string>
+
+ <!-- Checkbox menu item text to request desktop site -->
+ <string name="preference_performance_request_desktop_site2">Desktop site</string>
+
+ <!-- Displayed after a user long presses on the URL in a custom tab to copy the URL -->
+ <string name="custom_tab_copy_url_action">URL copied</string>
+
+ <!-- Description of what a user may find in the Advanced Setting category, used for debugging -->
+ <string name="preference_advanced_summary">Developer tools</string>
+
+ <!-- Preference for open links in third party apps -->
+ <string name="preferences_open_links_in_apps">Open links in apps</string>
+
+ <!-- Title of Advanced Setting category -->
+ <string name="preference_category_advanced">Advanced</string>
+
+ <!-- Preference for site permissions -->
+ <string name="preference_site_permissions">Site permissions</string>
+
+ <!-- Preference for cookie banner. The name of the item from settings screen and the title of the cookie banner screen. -->
+ <string name="preferences_cookie_banner">Cookie Banner Reduction</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is not disabled. -->
+ <string name="preferences_cookie_banner_summary_on">On</string>
+
+ <!-- Preference summary for the cookie banner. If the cookie banner option is disabled. -->
+ <string name="preferences_cookie_banner_summary_off">Off</string>
+
+ <!-- Title preference inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_title">Cookie Banner Reduction</string>
+
+ <!-- Preference summary inside Cookie banner reduction screen. Here you can set the cookie banner option to disabled or reject_all. -->
+ <string name="cookie_banner_reject_all_option_summary">See fewer banners by automatically rejecting cookie requests, when possible.</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown as part of the protections panel with the tracking protection toggle. -->-->
+ <string name="cookie_banner_exception_item_title">Cookie Banner Reduction</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_on">ON for this site</string>
+
+ <!-- Text for indicating cookie reducer is not supported on the current site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_site_not_supported">Site currently not supported</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown as part of the protections panel with the tracking protection toggle. -->
+ <string name="cookie_banner_exception_item_description_state_off">OFF for this site</string>
+
+ <!-- Preference for removing cookie/consent banners from sites automatically, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_title">Cookie Banner Reduction</string>
+
+ <!-- Text for indicating cookie banner handling is off this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_off">OFF for this site</string>
+
+ <!-- Text for indicating cookie banner handling is on this site, this is shown when the user enters in details after he clicks on the item from protection panel. -->
+ <string name="cookie_banner_exception_panel_switch_state_on">ON for this site</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is on this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_on_for_site">Turn on Cookie Banner Reduction for %1$s?</string>
+
+ <!-- Title text for a detail explanation indicating cookie banner handling is off this site, this is shown as part of the cookie banner panel in the toolbar. The first parameter is a shortened URL of the current site. -->
+ <string name="cookie_banner_exception_panel_title_state_off_for_site">Turn off Cookie Banner Reduction for %1$s?</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is on for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_on_for_site">%1$s will clear this site’s cookies and refresh the page. Clearing all cookies may sign you out or empty shopping carts.</string>
+
+ <!-- Long text for a detail explanation indicating what will happen if cookie banner handling is off for a site, this is shown as part of the cookie banner panel in the toolbar. The placeholder will be updated with the app name. -->
+ <string name="cookie_banner_exception_panel_description_state_off_for_site2">%1$s can try to automatically reject cookie requests.</string>
+
+ <!-- Long text for a detail explanation indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_description_site_is_not_supported">This site is currently not supported by Cookie Banner Reduction. Would you like to request our team review this website and add support in the future?</string>
+
+ <!-- Text for cancel button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_cancel_button">Cancel</string>
+
+ <!-- Text for request support button indicating that cookie banner reduction is not supported for the current site, this is shown as part of the cookie banner panel in the toolbar. -->
+ <string name="cookie_banner_exception_panel_site_is_not_supported_request_support_button">Request support</string>
+
+ <!-- Label for the snackBar, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_report_a_site_snackbar_label">Request to support site submitted.</string>
+
+ <!-- Label for cookie banner item from tracking protection, after the user reports with success a website where cookie banner reducer did not work -->
+ <string name="cookie_banner_the_site_was_reported">Request to support site submitted.</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Cookie Banner (Banner Info Message). %1$s will be replaced by the app name, %2$s will be an active link using the string cfr_cookie_banner_link as text. -->
+ <string name="cfr_cookie_banner">%1$s tries to reject cookie requests to dismiss annoying cookie banners.\n\nManage cookie banner preferences in %2$s.</string>
+ <!-- CFR for Cookie Banner (Banner Info Message). This string is used as text for a link in cfr_cookie_banner and takes the user to the app settings. -->
+ <string name="cfr_cookie_banner_link">settings</string>
+
+ <!-- Preference for autoplay -->
+ <string name="preference_autoplay">Autoplay</string>
+
+ <!-- Heading for the instructions to allow a permission -->
+ <string name="phone_feature_blocked_intro">To allow it:</string>
+
+ <!-- First step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_settings">1. Go to Android Settings</string>
+
+ <!-- Second step for the allowing a permission -->
+ <string name="phone_feature_blocked_step_permissions"><![CDATA[2. Tap <b>Permissions</b>]]></string>
+
+ <!-- Button label that take the user to the Android App setting -->
+ <string name="phone_feature_go_to_settings">Go to Settings</string>
+
+ <!-- Third step for allowing a permission. The placeholder will be updated by, for example, "Camera" -->
+ <string name="phone_feature_blocked_step_feature"><![CDATA[3. Toggle <b>%1$s</b> to ON]]></string>
+
+ <!-- Preference for altering the camera access for all websites -->
+ <string name="preference_phone_feature_camera">Camera</string>
+
+ <!-- Preference for altering the microphone access for all websites -->
+ <string name="preference_phone_feature_microphone">Microphone</string>
+
+ <!-- Preference for altering the location access for all websites -->
+ <string name="preference_phone_feature_location">Location</string>
+
+ <!-- Preference for altering the notification access for all websites -->
+ <string name="preference_phone_feature_notification">Notification</string>
+
+ <!-- Preference for altering the EME access for all websites -->
+ <string name="preference_phone_feature_media_key_system_access">DRM-controlled content</string>
+
+ <!-- Label that indicates that a permission must be asked always -->
+ <string name="preference_option_phone_feature_ask_to_allow">Ask to allow</string>
+
+ <!-- Label that indicates that a permission must be blocked -->
+ <string name="preference_option_phone_feature_blocked">Blocked</string>
+
+ <!-- Label that indicates that a permission must be allowed -->
+ <string name="preference_option_phone_feature_allowed">Allowed</string>
+
+ <!--Label that indicates a permission is by the Android OS-->
+ <string name="phone_feature_blocked_by_android">Blocked by Android</string>
+
+ <!-- Preference for allow autoplay audio and video-->
+ <string name="preference_allow_audio_video_autoplay">Allow audio and video</string>
+
+ <!-- Preference for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only">Block audio only</string>
+
+ <!-- Preference summary for block autoplay audio only-->
+ <string name="preference_block_autoplay_audio_only_summary">Recommended</string>
+
+ <!-- Preference for block autoplay audio and video-->
+ <string name="preference_block_autoplay_audio_video">Block audio and video</string>
+
+ <!-- Preference for studies -->
+ <string name="preference_studies">Studies</string>
+
+ <!-- Preference for studies summary-->
+ <string name="preference_studies_summary">Firefox may install and run studies from time to time.</string>
+
+ <!-- Learn more link for studies, links to an article for more information about studies. -->
+ <string name="studies_learn_more">Learn more</string>
+
+ <!-- Dialog message shown when some changes are made on studies -->
+ <string name="studies_restart_app">The application will quit to apply changes</string>
+
+ <!-- Title of the remove studies button -->
+ <string name="studies_remove">Remove</string>
+
+ <!-- Title of the active section on the studies list -->
+ <string name="studies_active">Active</string>
+
+ <!-- Title of the completed section on the studies list -->
+ <string name="studies_completed">Completed</string>
+
+ <!-- Preference to enable remote debugging of the app via USB or Wi-Fi -->
+ <string name="preference_remote_debugging">Remote debugging via USB/Wi-Fi</string>
+
+ <!-- Text Button for show biometric prompt -->
+ <string name="show_biometric_button_text">Unlock</string>
+
+ <!-- Title text for biometric prompt pop-up -->
+ <string name="biometric_prompt_title">Confirm Using Your Fingerprint</string>
+
+ <!-- Subtitle text for biometric prompt pop-up -->
+ <string name="biometric_prompt_subtitle">You can use your fingerprint to continue your current app session.</string>
+
+ <!-- Button for the fingerprint authentication dialog box that is shown to the user when sharing a link to the app
+ while the user has biometric authentication enabled. When pressed, the user's previous session is cleared, and the shared link is opened. -->
+ <string name="biometric_auth_open_link_new_session">Open Link in New Session</string>
+
+ <!-- Description for the fingerprint authentication image. Used for accessibility purposes. -->
+ <string name="biometric_auth_image_description">Fingerprint icon</string>
+
+ <!-- Error text displayed when the user's fingerprint cannot be recognized upon re-entering the app.
+ This is displayed during the authentication flow as the app launches. -->
+ <string name="biometric_auth_not_recognized_error">Fingerprint not recognized. Try again.</string>
+
+ <!-- Error text displayed when the user's fingerprint moved too quickly upon re-entering the app
+ This is displayed during the authentication flow as the app launches.-->
+ <string name="biometric_auth_moved_too_quickly">Finger moved too fast. Try again.</string>
+
+ <!-- Title for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestion_title2">Show search suggestions?</string>
+
+ <!-- Description for the prompt to enable search suggestions
+ %1$s will be replaced by the app name (e.g. Firefox Focus) -->
+ <string name="enable_search_suggestion_description"> To get suggestions, %1$s needs to send what you type in the address bar to the search engine.</string>
+
+ <!-- Label used for the "NO button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_no">No</string>
+
+ <!-- Label used for the "YES button" for the prompt to enable search suggestions -->
+ <string name="enable_search_suggestions_yes">Yes</string>
+
+ <!-- Message displayed when using a search engine that doesn't provide suggestions -->
+ <string name="no_suggestions_message">Some search engines cannot show suggestions.</string>
+
+ <!-- Button to dismiss the message displayed when using a search engine that doesn't provide suggestions-->
+ <string name="dismiss_no_suggestions_prompt_button">Dismiss</string>
+
+ <!-- Tips displayed on the home view -->
+
+ <!-- Tip displayed on home view explaining how to disable tracking protection
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_disable_tracking_protection">Site behaving unexpectedly?\n
+ Try turning off Tracking Protection</string>
+
+ <!-- Tip displayed on home view explaining how to add sites to homescreen
+ Argument 1 will be replaced with a line break in the application.-->
+ <string name="tip_add_to_homescreen"><![CDATA[Get one-tap access to sites you use most%1$s Menu > Add to Home screen]]></string>
+
+ <!-- Tip displayed on home view explaining how to make Focus the default browser
+ Argument 1 is the app name (Firefox Focus/Firefox Klar/etc).
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_set_default_browser">Open every link in %1$s\n
+ Set %1$s as default browser
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_autocomplete_url">Autocomplete URLs for sites you use most\n
+ Long-press any URL in the address bar
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL
+ The new line here must be kept as the second half of the string is clickable for the user. -->
+ <string name="tip_open_in_new_tab">Open a link in a new tab\n
+ Long-press any link on a page
+ </string>
+
+ <!-- Tip displayed on home view explaining how to add a custom autocomplete URL -->
+ <string name="tip_disable_tips2">Turn off tips on the start screen</string>
+
+ <!-- Label for the snackbar when a user opens a new tab -->
+ <string name="new_tab_opened_snackbar">New tab opened</string>
+
+ <!-- Label for the button in the snackbar that switches to the newly opened tab -->
+ <string name="open_new_tab_snackbar">Switch</string>
+
+ <!-- Text displayed in a notification when the user enters full screen mode -->
+ <string name="full_screen_notification">Entering full screen mode</string>
+
+ <!-- Preference for switching to a new tab immediately after opening -->
+ <string name="preference_open_new_tab">Switch to link in new tab immediately</string>
+
+ <!-- Preference title for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_title">Block potentially dangerous and deceptive sites</string>
+ <!-- Preference summary for safe browsing which when enabled, blocks dangerous or deceptive webpages that may include phishing or malware -->
+ <string name="preference_safe_browsing_summary">Block reported deceptive and attack sites, malware sites, and unwanted software sites.</string>
+ <!-- Title of the preference to enable "HTTPS-Only" mode -->
+ <string name="preference_https_only_title">HTTPS-Only Mode</string>
+ <!-- Description of the preference to enable "HTTPS-Only" mode. -->
+ <string name="preference_https_only_summary3">Automatically attempts to connect to sites using the HTTPS encryption protocol for increased security.</string>
+
+ <!-- Preference for exceptions tracking protection -->
+ <string name="preference_exceptions">Exceptions</string>
+ <!-- Description for the exceptions preference screen-->
+ <string name="preference_exceptions_description">You have disabled content blocking for these websites.</string>
+ <!-- Menu item to remove existing exceptions. -->
+ <string name="preference_exceptions_menu_remove">Remove</string>
+ <!-- Button to remove all websites from the exception list -->
+ <string name="preference_exceptions_remove_all_button_label">Remove all websites</string>
+
+ <!-- Title for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_block_cookies_title">Block Cookies</string>
+
+ <!-- Message for Preference screen for cookie blocking for exceptions tracking protection -->
+ <string name="preference_category_block_cookies">Would you like to block cookies?</string>
+
+ <!-- Title for the tab crash report screen-->
+ <string name="tab_crash_report_title">Tab Crashed</string>
+ <!-- Headline for the tab crash report screen -->
+ <string name="tab_crash_report_headline">Sorry. We’re having a problem with this tab.</string>
+ <!-- Subtitle for the tab crash report screen -->
+ <string name="tab_crash_report_description">As a private browser, we never save and cannot restore this tab.</string>
+ <!-- Label for button to close the tab-->
+ <string name="tab_crash_report_close_tab_button_label">Close Tab</string>
+
+ <!-- Label for the checkbox to send the tab crash report to Mozilla -->
+ <string name="crash_report_send_crash_label">Send crash report to Mozilla</string>
+
+ <!-- Tracking protection bottom sheet -->
+
+ <!-- Label for the total number of trackers blocked. %s represents the app install date -->
+ <string name="trackers_count_note">Trackers blocked since %s</string>
+ <!-- Category of trackers (content) that can be blocked by Enhanced Tracking Protection -->
+ <string name="content">Content</string>
+ <!-- Category of trackers (advertising) that can be blocked by Enhanced Tracking Protection -->
+ <string name="advertising">Advertising</string>
+ <!-- Category of trackers (social media) that can be blocked by Enhanced Tracking Protection -->
+ <string name="social">Social</string>
+ <!-- Category of trackers (analytics) that can be blocked by Enhanced Tracking Protection -->
+ <string name="analytics">Analytics</string>
+ <!-- Preference title for enhanced tracking protection settings -->
+ <string name="enhanced_tracking_protection">Enhanced Tracking Protection</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is disabled for this site-->
+ <string name="enhanced_tracking_protection_state_off">Protections are OFF for this site</string>
+ <!-- Enhanced tracking protection preference description when the tracking protection is enabled for this site-->
+ <string name="enhanced_tracking_protection_state_on">Protections are ON for this site</string>
+ <!-- Label that indicates a site is using a secure connection -->
+ <string name="secure_connection">Connection is secure</string>
+ <!-- Label that indicates a site is using a insecure connection -->
+ <string name="insecure_connection">Connection is not secure</string>
+ <!-- Title for the list of trackers enhanced tracking ptotection can block-->
+ <string name="trackers_and_scripts">Trackers and Scripts to Block</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Navigate back button description -->
+ <string name="go_back">Go back</string>
+
+ <!-- Top Sites -->
+ <!-- Text for the menu button to remove a top site -->
+ <string name="remove_top_site">Remove</string>
+ <!-- Text for the menu item to remove a top site -->
+ <string name="rename_top_site_item">Rename</string>
+ <!-- Text for the dialog title for renaming a top site -->
+ <string name="rename_top_site">Rename</string>
+ <!-- Placeholder text for the input field of rename top site-->
+ <string name="placeholder_rename_top_site">Shortcut name</string>
+
+ <!-- Text for context menu additional note.
+ %1$s is a placeholder for the app name. -->
+ <string name="contextmenu_erased_images_note2">Saved and shared images &lt;b>will not be&lt;/b> deleted when you erase %1$s history</string>
+
+ <!-- Theme Preferences -->
+ <!-- Preference category for changing default theme to dark or light mode -->
+ <string name="preferences_theme">Theme</string>
+ <!-- Preference for using light theme -->
+ <string name="preference_light_theme">Light</string>
+ <!-- Preference for using dark theme -->
+ <string name="preference_dark_theme">Dark</string>
+ <!-- Preference for using using dark or light theme automatically set by battery -->
+ <string name="preference_auto_battery_theme">Set by Battery Saver</string>
+ <!-- Preference for using following device theme -->
+ <string name="preference_follow_device_theme">Follow device theme</string>
+
+ <!-- The title of the error page for websites that do not support HTTPS when HTTPS-Only is turned on -->
+ <string name="errorpage_httpsonly_title2">This site doesn’t support HTTPS</string>
+
+ <!-- The text of the error page for websites that do not support HTTPS when HTTPS-Only is turned on. %1$s will get replaced with the name of the app (e.g. "Firefox Focus").
+ Contains a button that will redirect the user to Privacy & Security Screen-->
+ <string name="errorpage_httpsonly_message2"><![CDATA[%1$s tries to use an HTTPS connection whenever possible for more security.
+ <a href="%2$s">Learn more</a> <br/><br/>
+ Change this setting in Settings > Privacy &amp; Security > Security.]]></string>
+
+ <!-- The document title and heading of the error page shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_title">Connection not secure</string>
+
+ <!-- The error message shown when a website has an invalid or expired SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_message" ><![CDATA[
+ This could be a problem with the server’s configuration, or it could be someone trying to impersonate the server. <br/><br/>
+ If you’ve connected to this server successfully in the past, the error may be temporary.
+ ]]></string>
+
+ <!-- The advanced certificate information shown when a website has an invalid SSL certificate. The %1$s will be replaced by the app name and %2$s will be replaced by website URL. It's only shown when a website has an invalid SSL certificate. -->
+ <string name="mozac_browser_errorpages_security_bad_cert_techInfo"><![CDATA[
+ <label>Someone could be trying to impersonate the site and continuing could be risky.</label>
+ <br><br>
+ <label>%1$s does not trust <b>%2$s</b> because its certificate issuer is unknown, the certificate is self-signed, or the server is not sending the correct intermediate certificates.</label>
+ ]]></string>
+
+ <!-- Sessions List -->
+ <!-- Content description (not visible, for screen readers etc.): Button that closes a tab n the sessions list -->
+ <string name="close_tab">Close tab</string>
+
+ <!-- Contextual Feature Recommendation Popups -->
+ <!-- CFR for Toolbar Shield Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_shield_icon2">Got ‘em! We stopped this site from spying on you. Tap the shield any time to see what we’re blocking.</string>
+
+ <!-- Content description (not visible, for screen readers etc.): Button that closes the CFR popup -->
+ <string name="cfr_close_button_description">Close popup</string>
+
+ <!-- Tool Tip for: Privacy and Security Settings Screen task : https://github.com/mozilla-mobile/focus-android/issues/6211 -->
+ <!-- Tool Tip Title -->
+ <string name="tool_tip_title">You’re protected!</string>
+ <!-- Tool Tip Message -->
+ <string name="tool_tip_message">These default settings offer strong protection. But it’s easy to tweak the settings to meet your specific needs.</string>
+ <!-- Tool Tip "X" button Content description (not visible, for screen readers etc.) :Button that closes the tool tip -->
+ <string name="tool_tip_dismiss_button_content_description">Dismiss</string>
+
+ <!-- CFR for Toolbar Delete Icon (Banner Info Message) -->
+ <string name="cfr_for_toolbar_delete_icon2">Tap here to trash it all — history, cookies, everything — and start fresh on a new tab.</string>
+
+ <!-- Promote SearchWidget Dialog -->
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for the
+ close button from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_content_description">Close</string>
+
+ <!-- Content description (not visible, for screen readers etc.): This is the description for
+ picture of search widget from promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_picture_content_description">Search widget</string>
+
+ <!-- This is the title of promote search widget dialog. -->
+ <string name="promote_search_widget_dialog_title">Browsing history cleared! 🎉</string>
+
+ <!-- Banner Info Message than will appear when user first enters in the app. The location is at the toolbar. -->
+ <string name="cfr_for_start_browsing">Start your private browsing session, and we’ll block trackers and other bad stuff as you go.</string>
+
+ <!-- This is the subtitle of promote search widget dialog. %1$s will get replaced with the name
+ of the app (e.g. "Focus") -->
+ <string name="promote_search_widget_dialog_subtitle">We’ll leave you to your private browsing, but get a quicker start next time with the %1$s widget on your Home screen.</string>
+
+ <!-- This is te text from add search widget to home screen button .The button is located on
+ promote search widget dialog. -->
+ <string name="promote_search_widget_button_text">Add widget to home screen</string>
+
+ <!-- This is te text of the snackbar that appears after the search widget was added successfully
+ to the home screen. -->
+ <string name="promote_search_widget_snackbar_message">Widget added to home screen</string>
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/values/strings_references.xml b/mobile/android/focus-android/app/src/main/res/values/strings_references.xml
new file mode 100644
index 0000000000..e3301986fb
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values/strings_references.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <!-- These strings are used for referencing in the code. -->
+ <string name="yes">yes</string>
+ <string name="third_party_only">third_party_only</string>
+ <string name="third_party_tracker">third_party_tracker</string>
+ <string name="cross_site">cross_site</string>
+ <string name="no">no</string>
+
+ <!-- This array contains the actual value stored in preferences. Not translatable. -->
+ <string-array name="cookies_options_entry_values">
+ <item>@string/yes</item>
+ <item>@string/third_party_only</item>
+ <item>@string/third_party_tracker</item>
+ <!-- Block cross site is the default value. -->
+ <item>@string/cross_site</item>
+ <item>@string/no</item>
+ </string-array>
+
+ <!-- This array contains the cookie value for display purposes. -->
+ <string-array name="cookies_options_entries">
+ <item>@string/preference_privacy_should_block_cookies_yes_option2</item>
+ <item>@string/preference_privacy_should_block_cookies_third_party_only_option</item>
+ <item>@string/preference_privacy_should_block_cookies_third_party_tracker_cookies_option</item>
+ <item>@string/preference_privacy_should_block_cookies_cross_site_option</item>
+ <item>@string/preference_privacy_should_block_cookies_no_option2</item>
+ </string-array>
+
+</resources>
+
+
+
diff --git a/mobile/android/focus-android/app/src/main/res/values/styles.xml b/mobile/android/focus-android/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000000..33b0d1603d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/values/styles.xml
@@ -0,0 +1,326 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar.Bridge">
+ <item name="colorPrimary">@color/colorPrimary</item>
+ <!-- This is the default color for activated controls(buttons) -->
+ <item name="colorAccent">@color/accentBright</item>
+
+ <item name="android:windowAnimationStyle">@style/WindowAnimationTransition</item>
+ <item name="android:windowContentTransitions">true</item>
+ <item name="popupMenuStyle">@style/PopupMenu</item>
+ <item name="bottomSheetDialogTheme">@style/AppBottomSheetDialogTheme</item>
+ <item name="disabled">@color/disabled</item>
+ <item name="destructive">@color/destructive</item>
+
+ <!-- Use the same colors for both themes until light theme it will be implemented -->
+ <item name="primaryText">@color/primaryText</item>
+ <item name="secondaryText">@color/secondaryText</item>
+ <item name="colorControlNormal">@color/primaryText</item>
+ <item name="android:textColorSecondary">@color/secondaryText</item>
+
+ <item name="android:statusBarColor">@android:color/transparent</item>
+ <item name="preferenceTheme">@style/PreferenceTheme</item>
+ <item name="alertDialogStyle">@style/DialogStyle</item>
+ <item name="alertDialogTheme">@style/DialogStyle</item>
+ <item name="android:progressBarStyleHorizontal">@style/progressBarStyleHorizontal</item>
+ <item name="android:itemBackground">@color/menuBackground</item>
+ <item name="android:itemTextAppearance">@style/ItemTextAppearance</item>
+ <item name="tabCounterTintColor">?primaryText</item>
+ </style>
+
+ <style name="Theme.App.Starting" parent="Theme.SplashScreen">
+ <item name="windowSplashScreenBackground">@color/splash_screen_background</item>
+ <item name="windowSplashScreenAnimatedIcon">@drawable/ic_splash_screen</item>
+ <item name="postSplashScreenTheme">@style/AppTheme</item>
+ </style>
+
+ <!-- Fade animation for theme switching -->
+ <style name="WindowAnimationTransition">
+ <item name="android:windowEnterAnimation">@anim/fade_in</item>
+ <item name="android:windowExitAnimation">@anim/fade_out</item>
+ </style>
+
+ <style name="Theme.AppCompat.Translucent" parent="Theme.AppCompat.NoActionBar">
+ <item name="android:background">@android:color/transparent</item>
+ <item name="android:windowNoTitle">true</item>
+ <item name="android:windowBackground">@android:color/transparent</item>
+ <item name="android:colorBackgroundCacheHint">@null</item>
+ <item name="android:windowIsTranslucent">true</item>
+ <item name="android:windowAnimationStyle">@android:style/Animation</item>
+ </style>
+
+ <style name="ItemTextAppearance" parent="TextAppearance.AppCompat.Widget.DropDownItem">
+ <item name="android:textColor">@color/primaryText</item>
+ <item name="android:textSize">@dimen/mozac_browser_menu_item_text_size</item>
+ </style>
+
+ <style name="PreferenceTheme" parent="PreferenceThemeOverlay.v14.Material">
+ <item name="android:layout">@layout/fragment_settings</item>
+ <item name="android:listPreferredItemPaddingLeft">@dimen/activity_horizontal_margin</item>
+ <item name="android:listPreferredItemPaddingRight">@dimen/activity_horizontal_margin</item>
+
+ <!-- Use the same colors for both themes until light theme it will be implemented -->
+ <item name="android:textColor">@color/primaryText</item>
+ <item name="titleTextColor">@color/primaryText</item>
+ </style>
+
+ <style name="DialogTitleStyle" parent="TextAppearance.AppCompat.Title">
+ <item name="android:textColor">@color/primaryText</item>
+ <item name="android:textSize">20sp</item>
+ <item name="android:fontFamily">@string/font_roboto_medium</item>
+ </style>
+
+ <style name="AddToHomeScreenSiteTitle" parent="Widget.AppCompat.EditText">
+ <item name="android:textSize">20sp</item>
+ <item name="android:inputType">text</item>
+ <item name="android:textColor">@color/primaryText</item>
+ <item name="android:textCursorDrawable">@null</item>
+ </style>
+
+ <!-- Setting this via alertDialogStyle in AppTheme results in crashes. You need to
+ explicitly select this via "new AlertDialog.Builder(activity, R.style.DialogStyle)"
+ We need this style because the accent colour for the MainActivity is purple,
+ but we want different accents in the dialog. -->
+ <style name="DialogStyle" parent="Theme.AppCompat.Dialog.Alert">
+ <item name="android:windowTitleStyle">@style/DialogTitleStyle</item>
+ <item name="android:textColorPrimary">@color/primaryText</item>
+ <item name="dialogPreferredPadding">24dp</item>
+ <item name="android:windowBackground">@drawable/dialog_background</item>
+ <item name="android:windowMinWidthMajor">@dimen/dialog_min_width_major</item>
+ <item name="android:windowMinWidthMinor">@dimen/dialog_min_width_minor</item>
+
+ <!-- This is the default color for activated controls(buttons) -->
+ <item name="android:colorAccent">@color/accentBright</item>
+ <item name="textColorAlertDialogListItem">@color/primaryText</item>
+ <item name="colorControlActivated">@color/accentBright</item>
+ <item name="colorControlNormal">@color/accentBright</item>
+ <item name="buttonBarNegativeButtonStyle">@style/DialogButtonStyle</item>
+ <item name="buttonBarPositiveButtonStyle">@style/DialogButtonStyle</item>
+ </style>
+
+ <style name="DialogButtonStyle" parent="Widget.MaterialComponents.Button.TextButton.Dialog">
+ <item name="android:textColor">@color/accentBright</item>
+ </style>
+
+ <style name="ButtonStyle" parent="Base.Widget.AppCompat.ButtonBar.AlertDialog">
+ <item name="android:layout_width">wrap_content</item>
+ <item name="android:layout_height">wrap_content</item>
+ <item name="android:textAllCaps">true</item>
+ <item name="android:textColor">@color/accentBright</item>
+ <item name="android:textSize">14sp</item>
+ <item name="android:fontFamily">@font/metropolis_semibold</item>
+ </style>
+
+ <style name="SettingsTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar.Bridge">
+ <item name="android:textColorSecondary">@color/preference_summary_text</item>
+ <item name="colorAccent">@color/accentBright</item>
+ <item name="android:windowTitleStyle">@style/DialogTitleStyle</item>
+ <item name="dialogPreferredPadding">24dp</item>
+ <item name="actionButtonStyle">@style/SettingsActionButtonStyle</item>
+ <item name="android:dialogTheme">@style/DialogStyle</item>
+ <item name="alertDialogTheme">@style/DialogStyle</item>
+ <item name="android:alertDialogStyle">@style/DialogStyle</item>
+ <item name="android:alertDialogTheme">@style/DialogStyle</item>
+ <item name="android:dialogPreferenceStyle">@style/DialogStyle</item>
+ </style>
+
+ <style name="SettingsActionButtonStyle" parent="@style/Widget.AppCompat.ActionButton">
+ <!-- We want 16dp of padding between (i) and "SAVE" on the "Add search engine" Toolbar.
+ Unfortunately, this Toolbar is shared across all of settings. Solutions:
+ 1) (Current solution) Change the toolbar styles for all of settings
+ 2) Dynamically change the styles for the Toolbar, in code, for this one Settings screen
+ 3) Provide a unique toolbar for this one Settings screen
+
+ I opted for 1) because it's simple (we're pressed for time!) and no other screens have more
+ than one action button and are affected. This isn't very future proof, however.
+
+ We set paddingEnd=12dp to preserve the existing padding of the right-most action menu item to
+ the edge of the device (12dp) and set paddingStart=4dp to complete the 16dp between views.
+ We then set minWidth=0dp to avoid it's calculations affecting visible padding.
+
+ One concern I have is that paddingStart=4dp will cause the title to get too close to the
+ action menu items, but testing with German, that doesn't seem to be the case. -->
+ <item name="android:minWidth">0dp</item>
+ <item name="android:paddingStart">4dp</item>
+ <item name="android:paddingEnd">12dp</item>
+ </style>
+
+ <style name="InfoTheme" parent="SettingsTheme">
+ <item name="android:colorBackground">?attr/colorPrimary</item>
+ </style>
+
+ <style name="PopupMenu" parent="@style/Widget.AppCompat.Light.PopupMenu">
+ <item name="overlapAnchor">true</item>
+ </style>
+
+ <style name="Mozac.Browser.Menu" parent="">
+ <item name="cardBackgroundColor">@color/menuBackground</item>
+ </style>
+
+ <!-- Add new style to be able to use the same menu item style for both themes until light theme it will be implemented -->
+ <style name="Mozac.Browser.Menu.Item.Text" parent="@android:style/TextAppearance.Material.Menu">
+ <item name="android:background">?android:attr/selectableItemBackground</item>
+ <item name="android:textSize">@dimen/mozac_browser_menu_item_text_size</item>
+ <item name="android:ellipsize">end</item>
+ <item name="android:lines">1</item>
+ <item name="android:focusable">true</item>
+ <item name="android:clickable">true</item>
+ <item name="android:textColor">@color/primaryText</item>
+ </style>
+
+ <style name="AppTheme.ContextMenuItem">
+
+ <!-- All these attributes bellow need to be defined in a theme using android:theme
+ otherwise they will have no effect... -->
+ <item name="android:listPreferredItemHeightSmall">48dp</item>
+
+ <!-- Set the padding to the children (menu item) of the NavigationView
+ (instead of the NavigationView itself) allowing the hit targets
+ to span the full width of the view. For more info, see
+ https://github.com/mozilla-mobile/focus-android/pull/1466#discussion_r144679954.
+
+ Note: listPreferredItemPaddingStart and listPreferredItemPaddingEnd
+ don't work in this context because in the design_navigation_item.xml (layout for NavigationMenuItem)
+ only listPreferredItemPaddingLeft and listPreferredItemPaddingRight attribute
+ are used for paddingLeft and paddingRight properties.
+ Check design_navigation_item.xml source here :
+ https://android.googlesource.com/platform/frameworks/support.git/+/master/design/res/layout/design_navigation_item.xml
+ -->
+ <item name="listPreferredItemPaddingLeft">@dimen/dialogHorizontalPadding</item>
+ <item name="listPreferredItemPaddingRight">@dimen/dialogHorizontalPadding</item>
+ </style>
+
+ <style name="ContextMenuTextAppearence">
+ <item name="android:textSize">16sp</item>
+ <item name="android:fontFamily">@string/font_roboto_medium</item>
+ <item name="android:textStyle">normal</item>
+ <item name="android:textColor">@color/primaryText</item>
+ </style>
+
+
+ <style name="DoorHanger">
+ <item name="android:textColor">@color/primaryText</item>
+ <item name="android:textColorLink">@color/doorhanger_link</item>
+ </style>
+
+ <style name="DoorHanger.Medium">
+ <item name="android:textSize">16sp</item>
+ </style>
+
+ <style name="DoorHanger.Medium.Bold">
+ <item name="android:fontFamily">sans-serif-medium</item>
+ </style>
+
+ <style name="DoorHanger.Medium.Light">
+ <item name="android:fontFamily">sans-serif-light</item>
+ </style>
+
+ <style name="HintTextAppearance">
+ <item name="android:textColor">@color/secondaryText</item>
+ <item name="android:textSize">9sp</item>
+ </style>
+
+ <style name="ColorHandleTheme">
+ <item name="android:colorControlActivated">@color/photonBlue50</item>
+ </style>
+
+ <style name="progressBarStyleHorizontal" parent="@style/Widget.AppCompat.ProgressBar.Horizontal">
+ <item name="android:progressDrawable">@drawable/photon_progressbar</item>
+ </style>
+
+ <style name="PanelTitle" parent="Widget.MaterialComponents.TextView">
+ <item name="android:textSize">14sp</item>
+ <item name="android:textColor">@color/primaryText</item>
+ </style>
+
+ <style name="PanelHeading" parent="Widget.MaterialComponents.TextView">
+ <item name="fontFamily">@font/metropolis</item>
+ <item name="android:textSize">16sp</item>
+ <item name="android:textColor">@color/primaryText</item>
+ <item name="android:textStyle">bold</item>
+ <item name="android:letterSpacing">0.03</item>
+ <item name="android:lineSpacingExtra">1sp</item>
+ </style>
+
+ <style name="TrackerSwitchTitle" parent="Widget.MaterialComponents.TextView">
+ <item name="android:textSize">14sp</item>
+ <item name="android:textColor">@color/primaryText</item>
+ </style>
+
+ <style name="TrackersCount" parent="Widget.MaterialComponents.TextView">
+ <item name="fontFamily">@font/metropolis</item>
+ <item name="android:textSize">20sp</item>
+ <item name="android:textStyle">bold</item>
+ <item name="android:textColor">@color/primaryText</item>
+ <item name="android:lineSpacingExtra">1sp</item>
+
+ </style>
+
+ <style name="CaptionText" parent="Widget.MaterialComponents.TextView">
+ <item name="android:textSize">12sp</item>
+ <item name="android:textColor">@color/disabled</item>
+ </style>
+
+ <style name="SwitchTitle" parent="Widget.MaterialComponents.TextView">
+ <item name="android:textSize">14sp</item>
+ <item name="android:textColor">@color/primaryText</item>
+ </style>
+
+ <style name="SwitchDescription" parent="Widget.MaterialComponents.TextView">
+ <item name="android:textSize">12sp</item>
+ <item name="android:textColor">@color/disabled</item>
+ </style>
+
+ <style name="AppBottomSheetDialogTheme" parent="Theme.Design.Light.BottomSheetDialog">
+ <item name="bottomSheetStyle">@style/AppModalStyle</item>
+ </style>
+
+ <style name="AppModalStyle" parent="Widget.Design.BottomSheet.Modal">
+ <item name="android:background">@color/modal_background</item>
+ </style>
+
+ <style name="SwitchTheme" parent="Theme.AppCompat.Light">
+ <item name="colorControlActivated">@color/accentBright</item>
+ </style>
+
+ <style name="Preference.Title" parent="Widget.MaterialComponents.TextView">
+ <item name="android:textColor">@color/preference_title_text</item>
+ <item name="android:textSize">16sp</item>
+ <item name="android:lineSpacingExtra">5sp</item>
+ </style>
+
+ <style name="Preference.Summary" parent="Widget.MaterialComponents.TextView">
+ <item name="android:textColor">@color/preference_summary_text</item>
+ <item name="android:textSize">14sp</item>
+ <item name="android:letterSpacing">0.03</item>
+ </style>
+
+ <style name="PreferenceScreenHeader">
+ <item name="android:textColor">@color/preference_summary_text</item>
+ <item name="android:textSize">16sp</item>
+ <item name="fontFamily">@font/metropolis</item>
+ <item name="android:lineSpacingExtra">1sp</item>
+ <item name="android:letterSpacing">0.03</item>
+ </style>
+
+ <style name="PreferenceSectionHeader">
+ <item name="android:textColor">@color/preference_title_text</item>
+ <item name="android:textSize">14sp</item>
+ <item name="fontFamily">@font/metropolis</item>
+ <item name="android:letterSpacing">0.04</item>
+ <item name="android:textStyle">bold</item>
+ </style>
+
+ <style name="MetropolisButton">
+ <item name="fontFamily">@font/metropolis_semibold</item>
+ <item name="android:textSize">14sp</item>
+ <item name="android:letterSpacing">0.04</item>
+ <item name="android:minHeight">48dp</item>
+ <item name="android:minWidth">48dp</item>
+ <item name="android:background">?android:attr/selectableItemBackgroundBorderless</item>
+ </style>
+
+</resources>
diff --git a/mobile/android/focus-android/app/src/main/res/xml/advanced_settings.xml b/mobile/android/focus-android/app/src/main/res/xml/advanced_settings.xml
new file mode 100644
index 0000000000..0f16fceede
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/advanced_settings.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+ <androidx.preference.PreferenceCategory
+ android:layout="@layout/preference_section_header_layout"
+ android:title="@string/preference_advanced_summary">
+ <androidx.preference.SwitchPreferenceCompat
+ android:defaultValue="false"
+ android:key="@string/pref_key_remote_debugging"
+ android:layout="@layout/focus_preference_no_icon"
+ android:title="@string/preference_remote_debugging" />
+
+ <androidx.preference.SwitchPreferenceCompat
+ android:defaultValue="false"
+ android:key="@string/pref_key_open_links_in_external_app"
+ android:layout="@layout/focus_preference_no_icon"
+ android:title="@string/preferences_open_links_in_apps" />
+
+ <androidx.preference.SwitchPreferenceCompat
+ android:defaultValue="true"
+ android:key="@string/pref_key_leakcanary"
+ android:title="@string/preference_leakcanary"
+ app:iconSpaceReserved="false" />
+
+ <androidx.preference.Preference
+ android:key="@string/pref_key_secret_settings"
+ android:layout="@layout/focus_preference_no_icon"
+ android:title="@string/preference_secret_settings"
+ app:isPreferenceVisible="false" />
+ </androidx.preference.PreferenceCategory>
+</androidx.preference.PreferenceScreen>
diff --git a/mobile/android/focus-android/app/src/main/res/xml/autocomplete.xml b/mobile/android/focus-android/app/src/main/res/xml/autocomplete.xml
new file mode 100644
index 0000000000..fa61ceea17
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/autocomplete.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <androidx.preference.PreferenceCategory>
+
+ <org.mozilla.focus.autocomplete.AutocompleteDefaultDomainsPreference
+ android:defaultValue="true"
+ android:key="@string/pref_key_autocomplete_preinstalled"
+ android:summary="@string/preference_autocomplete_topsite_summary2"
+ android:title="@string/preference_switch_autocomplete_topsites" />
+
+ </androidx.preference.PreferenceCategory>
+
+ <androidx.preference.PreferenceCategory>
+
+ <org.mozilla.focus.autocomplete.AutocompleteCustomDomainsPreference
+ android:defaultValue="true"
+ android:key="@string/pref_key_autocomplete_custom"
+ android:summary="@string/preference_autocomplete_user_list_summary2"
+ android:title="@string/preference_switch_autocomplete_user_list" />
+
+ <androidx.preference.Preference
+ android:layout="@layout/focus_preference_no_icon"
+ android:dependency="@string/pref_key_autocomplete_custom"
+ android:key="@string/pref_key_screen_custom_domains"
+ android:title="@string/preference_autocomplete_subitem_manage_sites" />
+
+ </androidx.preference.PreferenceCategory>
+
+</androidx.preference.PreferenceScreen> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/xml/cookie_banner_settings.xml b/mobile/android/focus-android/app/src/main/res/xml/cookie_banner_settings.xml
new file mode 100644
index 0000000000..72a86488b1
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/cookie_banner_settings.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <org.mozilla.focus.cookiebanner.CookieBannerRejectAllPreference
+ android:defaultValue="false"
+ android:key="@string/pref_key_cookie_banner_reject_all"
+ android:layout="@layout/focus_preference_no_icon"
+ android:summary="@string/cookie_banner_reject_all_option_summary"
+ android:title="@string/cookie_banner_reject_all_option_title" />
+
+</androidx.preference.PreferenceScreen>
diff --git a/mobile/android/focus-android/app/src/main/res/xml/experiments_settings.xml b/mobile/android/focus-android/app/src/main/res/xml/experiments_settings.xml
new file mode 100644
index 0000000000..7df8fa43ec
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/experiments_settings.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+ <androidx.preference.SwitchPreferenceCompat
+ android:key="use_gecko_engine"
+ android:summary="Use the newest GeckoView renderer to take advantage of the latest features"
+ android:title="Use new renderer?" />
+</androidx.preference.PreferenceScreen> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/xml/general_settings.xml b/mobile/android/focus-android/app/src/main/res/xml/general_settings.xml
new file mode 100644
index 0000000000..31f5a2c136
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/general_settings.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <androidx.preference.PreferenceCategory
+ android:layout="@layout/focus_preference_no_icon"
+ android:title="@string/preferences_theme"
+ app:iconSpaceReserved="false">
+ <org.mozilla.focus.settings.RadioButtonPreference
+ android:key="@string/pref_key_light_theme"
+ android:title="@string/preference_light_theme"
+ android:layout="@layout/preference_radio_button" />
+
+ <org.mozilla.focus.settings.RadioButtonPreference
+ android:key="@string/pref_key_dark_theme"
+ android:title="@string/preference_dark_theme"
+ android:layout="@layout/preference_radio_button" />
+
+
+ <org.mozilla.focus.settings.RadioButtonPreference
+ android:defaultValue="true"
+ android:key="@string/pref_key_default_theme"
+ android:title="@string/preference_follow_device_theme"
+ android:layout="@layout/preference_radio_button" />
+ </androidx.preference.PreferenceCategory>
+
+ <!-- Empty default: we use an empty string to indicate "system default" language being selected -->
+ <androidx.preference.Preference
+ android:key="@string/pref_key_locale"
+ android:layout="@layout/focus_preference"
+ android:title="@string/preference_language"
+ app:iconSpaceReserved="false" />
+
+ <org.mozilla.focus.widget.DefaultBrowserPreference
+ android:key="@string/pref_key_default_browser"
+ android:layout="@layout/focus_preference_no_icon"
+ android:title="@string/preference_default_browser2" />
+
+</androidx.preference.PreferenceScreen>
diff --git a/mobile/android/focus-android/app/src/main/res/xml/manual_add_search_engine.xml b/mobile/android/focus-android/app/src/main/res/xml/manual_add_search_engine.xml
new file mode 100644
index 0000000000..0a02fc726c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/manual_add_search_engine.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+ <org.mozilla.focus.search.ManualAddSearchEnginePreference
+ android:key="@string/pref_key_manual_add_search_engine"
+ android:layout="@layout/preference_manual_add_search_engine"/>
+</androidx.preference.PreferenceScreen> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/xml/mozilla_settings.xml b/mobile/android/focus-android/app/src/main/res/xml/mozilla_settings.xml
new file mode 100644
index 0000000000..580f0ee3a4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/mozilla_settings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- AboutPreference performs some string substitutions, so that we can show "About <AppName>".
+ We keep a plain "About" as the title here in xml as a fallback, but AboutPreference
+ will use the substitution regardless of what is set here. -->
+
+ <org.mozilla.focus.widget.AboutPreference
+ android:key="@string/pref_key_about"
+ android:layout="@layout/focus_preference_new_tab"
+ android:title="@string/menu_about" />
+
+ <androidx.preference.Preference
+ android:icon="@drawable/ic_tab_new"
+ android:key="@string/pref_key_help"
+ android:layout="@layout/focus_preference_new_tab"
+ android:title="@string/menu_help" />
+
+ <androidx.preference.Preference
+ android:icon="@drawable/ic_tab_new"
+ android:key="@string/pref_key_privacy_notice"
+ android:layout="@layout/focus_preference_new_tab"
+ android:title="@string/preference_privacy_notice" />
+
+ <androidx.preference.Preference
+ android:icon="@drawable/ic_tab_new"
+ android:key="@string/pref_key_rights"
+ android:layout="@layout/focus_preference_new_tab"
+ android:title="@string/menu_rights" />
+
+ <androidx.preference.Preference
+ android:icon="@drawable/ic_tab_new"
+ android:key="@string/pref_key_licensing_info"
+ android:layout="@layout/focus_preference_new_tab"
+ android:title="@string/preference_licensing_info" />
+
+ <androidx.preference.Preference
+ android:key="@string/pref_key_libraries_we_use"
+ android:layout="@layout/focus_preference_new_tab"
+ android:title="@string/preference_libraries_we_use" />
+
+</androidx.preference.PreferenceScreen>
diff --git a/mobile/android/focus-android/app/src/main/res/xml/privacy_security_settings.xml b/mobile/android/focus-android/app/src/main/res/xml/privacy_security_settings.xml
new file mode 100644
index 0000000000..0163e41e49
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/privacy_security_settings.xml
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+ <!--- <Preference
+ android:layout="@layout/focus_preference"
+ android:summary="@string/preference_privacy_and_security_description"/> -->
+
+ <org.mozilla.focus.settings.privacy.PreferenceToolTipCompose
+ android:key="@string/pref_key_tool_tip"
+ android:layout="@layout/focus_preference_compose_layout"
+ app:allowDividerBelow="false"
+ android:selectable="false"/>
+
+ <androidx.preference.PreferenceCategory
+ android:layout="@layout/preference_section_header_layout"
+ android:title="@string/preference_category_tracking_protection3">
+
+ <androidx.preference.SwitchPreferenceCompat
+ android:defaultValue="true"
+ android:key="@string/pref_key_privacy_block_ads"
+ android:layout="@layout/focus_preference_no_icon"
+ android:summary="@string/preference_privacy_block_ads_summary"
+ android:title="@string/preference_privacy_block_ads" />
+
+ <androidx.preference.SwitchPreferenceCompat
+ android:defaultValue="true"
+ android:key="@string/pref_key_privacy_block_analytics"
+ android:layout="@layout/focus_preference_no_icon"
+ android:summary="@string/preference_privacy_block_analytics_summary"
+ android:title="@string/preference_privacy_block_analytics" />
+
+ <androidx.preference.SwitchPreferenceCompat
+ android:defaultValue="true"
+ android:key="@string/pref_key_privacy_block_social"
+ android:layout="@layout/focus_preference_no_icon"
+ android:summary="@string/preference_privacy_block_social_summary"
+ android:title="@string/preference_privacy_block_social" />
+
+ <androidx.preference.SwitchPreferenceCompat
+ android:defaultValue="false"
+ android:key="@string/pref_key_privacy_block_other3"
+ android:layout="@layout/focus_preference_no_icon"
+ android:summary="@string/preference_privacy_block_content_summary2"
+ android:title="@string/preference_privacy_block_content" />
+
+ </androidx.preference.PreferenceCategory>
+
+ <androidx.preference.PreferenceCategory
+ android:layout="@layout/preference_section_header_layout"
+ android:title="@string/preference_category_web_content">
+
+ <androidx.preference.SwitchPreferenceCompat
+ android:defaultValue="false"
+ android:key="@string/pref_key_performance_block_webfonts"
+ android:layout="@layout/focus_preference_no_icon"
+ android:summary="@string/preference_performance_block_webfonts_summary"
+ android:title="@string/preference_performance_block_webfonts" />
+
+ <androidx.preference.SwitchPreferenceCompat
+ android:defaultValue="false"
+ android:key="@string/pref_key_performance_block_javascript"
+ android:layout="@layout/focus_preference_no_icon"
+ android:summary="@string/preference_performance_block_javascript_summary"
+ android:title="@string/preference_performance_block_javascript" />
+
+ <!-- // Not shipping in v1 (#188)
+ <SwitchPreference
+ android:title="@string/preference_performance_block_images"
+ android:key="@string/pref_key_performance_block_images"
+ android:defaultValue="@string/preference_performance_block_images" />
+ -->
+
+ </androidx.preference.PreferenceCategory>
+
+ <androidx.preference.PreferenceCategory
+ android:layout="@layout/preference_section_header_layout"
+ android:title="@string/preference_category_cookies">
+ <androidx.preference.Preference
+ android:key="@string/pref_key_cookie_banner_settings"
+ android:layout="@layout/focus_preference_no_icon"
+ android:title="@string/preferences_cookie_banner" />
+ <org.mozilla.focus.widget.CookiesPreference
+ android:entries="@array/cookies_options_entries"
+ android:entryValues="@array/cookies_options_entry_values"
+ android:key="@string/pref_key_performance_enable_cookies"
+ android:defaultValue="@string/preference_privacy_should_block_cookies_cross_site_option"
+ android:layout="@layout/cookies_preference"
+ android:title="@string/preference_privacy_category_cookies"
+ android:negativeButtonText="@string/action_cancel"/>
+ <androidx.preference.Preference
+ android:key="@string/pref_key_site_permissions"
+ android:layout="@layout/focus_preference_no_icon"
+ android:title="@string/preference_site_permissions" />
+ </androidx.preference.PreferenceCategory>
+
+ <androidx.preference.PreferenceCategory
+ android:layout="@layout/focus_preference_category_no_title">
+ <androidx.preference.Preference
+ android:key="@string/pref_key_screen_exceptions"
+ android:layout="@layout/focus_preference_no_icon"
+ android:title="@string/preference_exceptions" />
+ </androidx.preference.PreferenceCategory>
+
+ <androidx.preference.PreferenceCategory
+ android:layout="@layout/preference_section_header_layout"
+ android:title="@string/preference_category_switching_apps">
+ <androidx.preference.SwitchPreferenceCompat
+ android:defaultValue="false"
+ android:key="@string/pref_key_biometric"
+ android:layout="@layout/focus_preference_no_icon"
+ android:summary="@string/preference_security_biometric_summary2"
+ android:title="@string/preference_security_biometric" />
+ <androidx.preference.SwitchPreferenceCompat
+ android:defaultValue="false"
+ android:key="@string/pref_key_secure"
+ android:layout="@layout/focus_preference_no_icon"
+ android:summary="@string/preference_privacy_stealth_summary"
+ android:title="@string/preference_privacy_secure_mode" />
+ </androidx.preference.PreferenceCategory>
+
+ <androidx.preference.PreferenceCategory
+ android:key="@string/pref_key_category_security"
+ android:layout="@layout/preference_section_header_layout"
+ android:title="@string/preference_category_security">
+ <org.mozilla.focus.settings.SafeBrowsingSwitchPreference
+ android:defaultValue="true"
+ android:key="@string/pref_key_safe_browsing"
+ android:layout="@layout/focus_preference_no_icon"
+ android:summary="@string/preference_safe_browsing_summary"
+ android:title="@string/preference_safe_browsing_title" />
+ <org.mozilla.focus.settings.HttpsOnlyModePreference
+ android:defaultValue="true"
+ android:key="@string/pref_key_https_only"
+ android:layout="@layout/focus_preference_no_icon"
+ android:summary="@string/preference_https_only_summary3"
+ android:title="@string/preference_https_only_title" />
+ </androidx.preference.PreferenceCategory>
+
+ <androidx.preference.PreferenceCategory
+ android:layout="@layout/preference_section_header_layout"
+ android:title="@string/preference_category_data_choices">
+
+ <org.mozilla.focus.widget.TelemetrySwitchPreference
+ android:layout="@layout/focus_preference"
+ android:key="@string/pref_key_telemetry"
+ android:summary="@string/preference_mozilla_telemetry_summary2"
+ android:title="@string/preference_mozilla_telemetry2" />
+
+ <org.mozilla.focus.settings.StatePreference
+ android:key="@string/pref_key_studies"
+ android:layout="@layout/focus_preference_no_icon"
+ android:summary="@string/preference_state_off"
+ android:title="@string/preference_studies" />
+ </androidx.preference.PreferenceCategory>
+
+</androidx.preference.PreferenceScreen>
diff --git a/mobile/android/focus-android/app/src/main/res/xml/provider_paths.xml b/mobile/android/focus-android/app/src/main/res/xml/provider_paths.xml
new file mode 100644
index 0000000000..dd8645428d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/provider_paths.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<paths>
+ <external-path
+ name="Download"
+ path="." />
+</paths>
diff --git a/mobile/android/focus-android/app/src/main/res/xml/remove_search_engines.xml b/mobile/android/focus-android/app/src/main/res/xml/remove_search_engines.xml
new file mode 100644
index 0000000000..edbfaa4371
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/remove_search_engines.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+ <org.mozilla.focus.search.MultiselectSearchEngineListPreference
+ android:key="@string/pref_key_multiselect_search_engine_list"/>
+</androidx.preference.PreferenceScreen> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/main/res/xml/search_engine_settings.xml b/mobile/android/focus-android/app/src/main/res/xml/search_engine_settings.xml
new file mode 100644
index 0000000000..07d086073b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/search_engine_settings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- This preffed off by feature flag FLAG_MANUAL_SEARCH_ENGINE and corresponds to
+search_engine_settings.xml -->
+<androidx.preference.PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_marginStart="32dp">
+ <androidx.preference.Preference
+ android:layout="@layout/preference_screen_header_layout"
+ android:title="@string/preference_select_preferred_engine"
+ app:allowDividerBelow="false"
+ app:iconSpaceReserved="false" />
+ <org.mozilla.focus.search.RadioSearchEngineListPreference
+ android:key="@string/pref_key_radio_search_engine_list" />
+ <androidx.preference.Preference
+ android:icon="@drawable/mozac_ic_plus_24"
+ android:key="@string/pref_key_manual_add_search_engine"
+ android:title="@string/preference_search_add3" />
+</androidx.preference.PreferenceScreen>
diff --git a/mobile/android/focus-android/app/src/main/res/xml/search_settings.xml b/mobile/android/focus-android/app/src/main/res/xml/search_settings.xml
new file mode 100644
index 0000000000..effbc273d6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/search_settings.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <org.mozilla.focus.search.SearchEnginePreference
+ android:key="@string/pref_key_search_engine"
+ android:layout="@layout/focus_preference_no_icon"
+ android:title="@string/preference_search_engine_label" />
+
+ <org.mozilla.focus.searchsuggestions.ui.SearchSuggestionsPreference
+ android:defaultValue="false"
+ android:key="@string/pref_key_show_search_suggestions"
+ android:title="@string/preference_show_search_suggestions"
+ android:summary="@string/preference_show_search_suggestions_summary"/>
+
+ <org.mozilla.focus.settings.StatePreference
+ android:key="@string/pref_key_screen_autocomplete"
+ android:layout="@layout/focus_preference_no_icon"
+ android:summary="WHAT?"
+ android:title="@string/preference_subitem_autocomplete" />
+
+</androidx.preference.PreferenceScreen>
diff --git a/mobile/android/focus-android/app/src/main/res/xml/search_widget_info.xml b/mobile/android/focus-android/app/src/main/res/xml/search_widget_info.xml
new file mode 100644
index 0000000000..e2d3825407
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/search_widget_info.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
+ android:minWidth="320dp"
+ android:minHeight="40dp"
+ android:resizeMode="horizontal"
+ android:minResizeWidth="30dp"
+ android:previewImage="@drawable/focus_search_widget"
+ android:updatePeriodMillis="3600000"
+ android:initialLayout="@layout/mozac_search_widget_large"
+ android:widgetCategory="home_screen">
+</appwidget-provider>
diff --git a/mobile/android/focus-android/app/src/main/res/xml/secret_settings.xml b/mobile/android/focus-android/app/src/main/res/xml/secret_settings.xml
new file mode 100644
index 0000000000..2d61913bce
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/secret_settings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+ <androidx.preference.SwitchPreferenceCompat
+ android:defaultValue="false"
+ android:key="@string/pref_key_use_nimbus_preview"
+ android:layout="@layout/focus_preference_no_icon"
+ android:title="@string/preference_use_nimbus_preview" />
+
+ <androidx.preference.SwitchPreferenceCompat
+ android:key="@string/pref_key_remote_server_prod"
+ android:layout="@layout/focus_preference_no_icon"
+ android:title="@string/preferences_debug_settings_remote_settings_server"
+ />
+</PreferenceScreen>
diff --git a/mobile/android/focus-android/app/src/main/res/xml/settings.xml b/mobile/android/focus-android/app/src/main/res/xml/settings.xml
new file mode 100644
index 0000000000..2cc5cd9d7e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/settings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<androidx.preference.PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <androidx.preference.Preference
+ app:iconSpaceReserved="false"
+ android:key="@string/pref_key_general_screen"
+ android:layout="@layout/focus_preference"
+ android:summary="@string/preference_general_summary2"
+ android:title="@string/preference_category_general" />
+
+ <androidx.preference.Preference
+ app:iconSpaceReserved="false"
+ android:key="@string/pref_key_privacy_security_screen"
+ android:layout="@layout/focus_preference"
+ android:summary="@string/preference_privacy_and_security_summary"
+ android:title="@string/preference_privacy_and_security_header" />
+
+ <androidx.preference.Preference
+ app:iconSpaceReserved="false"
+ android:key="@string/pref_key_search_screen"
+ android:layout="@layout/focus_preference"
+ android:summary="@string/preference_search_summary"
+ android:title="@string/preference_category_search" />
+
+ <androidx.preference.Preference
+ app:iconSpaceReserved="false"
+ android:key="@string/pref_key_advanced_screen"
+ android:layout="@layout/focus_preference"
+ android:summary="@string/preference_advanced_summary"
+ android:title="@string/preference_category_advanced" />
+
+ <org.mozilla.focus.widget.MozillaPreference
+ app:iconSpaceReserved="false"
+ android:key="@string/pref_key_mozilla_screen"
+ android:layout="@layout/focus_preference"
+ android:summary="@string/preference_mozilla_summary"
+ android:title="@string/preference_category_mozilla"
+ app:allowDividerAbove="false"/>
+
+</androidx.preference.PreferenceScreen>
diff --git a/mobile/android/focus-android/app/src/main/res/xml/site_permissions.xml b/mobile/android/focus-android/app/src/main/res/xml/site_permissions.xml
new file mode 100644
index 0000000000..e6df085614
--- /dev/null
+++ b/mobile/android/focus-android/app/src/main/res/xml/site_permissions.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+ <androidx.preference.Preference
+ android:icon="@drawable/ic_autoplay_enabled"
+ android:key="@string/pref_key_autoplay"
+ android:layout="@layout/focus_preference_new_tab"
+ android:summary="@string/preference_block_autoplay_audio_video"
+ android:title="@string/preference_autoplay" />
+
+ <androidx.preference.Preference
+ android:icon="@drawable/ic_camera_enabled"
+ android:key="@string/pref_key_phone_feature_camera"
+ android:layout="@layout/focus_preference_new_tab"
+ android:summary="@string/preference_option_phone_feature_ask_to_allow"
+ android:title="@string/preference_phone_feature_camera" />
+
+ <androidx.preference.Preference
+ android:icon="@drawable/mozac_ic_location_24"
+ android:layout="@layout/focus_preference_new_tab"
+ android:key="@string/pref_key_phone_feature_location"
+ android:summary="@string/preference_option_phone_feature_ask_to_allow"
+ android:title="@string/preference_phone_feature_location" />
+
+ <androidx.preference.Preference
+ android:icon="@drawable/mozac_ic_microphone_24"
+ android:key="@string/pref_key_phone_feature_microphone"
+ android:layout="@layout/focus_preference_new_tab"
+ android:summary="@string/preference_option_phone_feature_ask_to_allow"
+ android:title="@string/preference_phone_feature_microphone" />
+
+ <androidx.preference.Preference
+ android:icon="@drawable/mozac_ic_notification_24"
+ android:key="@string/pref_key_phone_feature_notification"
+ android:layout="@layout/focus_preference_new_tab"
+ android:summary="@string/preference_option_phone_feature_ask_to_allow"
+ android:title="@string/preference_phone_feature_notification"
+ app:allowDividerBelow="true" />
+
+ <androidx.preference.Preference
+ android:icon="@drawable/ic_link"
+ android:layout="@layout/focus_preference_new_tab"
+ android:key="@string/pref_key_browser_feature_media_key_system_access"
+ android:summary="@string/preference_option_phone_feature_ask_to_allow"
+ android:title="@string/preference_phone_feature_media_key_system_access"
+ app:allowDividerBelow="true" />
+
+</androidx.preference.PreferenceScreen>
diff --git a/mobile/android/focus-android/app/src/nightly/ic_launcher-playstore.png b/mobile/android/focus-android/app/src/nightly/ic_launcher-playstore.png
new file mode 100644
index 0000000000..7093bcc33a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/ic_launcher-playstore.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/nightly/java/org/mozilla/focus/utils/AdjustHelper.java b/mobile/android/focus-android/app/src/nightly/java/org/mozilla/focus/utils/AdjustHelper.java
new file mode 100644
index 0000000000..b0aa2e1835
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/java/org/mozilla/focus/utils/AdjustHelper.java
@@ -0,0 +1,14 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils;
+
+import android.content.Context;
+
+public class AdjustHelper {
+ public static void setupAdjustIfNeeded(Context context) {
+ // DEBUG: No Adjust - This class has different implementations for all build types.
+ }
+}
diff --git a/mobile/android/focus-android/app/src/nightly/java/org/mozilla/focus/web/Config.kt b/mobile/android/focus-android/app/src/nightly/java/org/mozilla/focus/web/Config.kt
new file mode 100644
index 0000000000..415d487a8e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/java/org/mozilla/focus/web/Config.kt
@@ -0,0 +1,10 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.web
+
+object Config {
+ const val EXPERIMENT_DESCRIPTOR_GECKOVIEW_ENGINE = "use-gecko-nightly"
+ const val EXPERIMENT_DESCRIPTOR_HOME_SCREEN_TIPS = "use-homescreen-tips-nightly"
+}
diff --git a/mobile/android/focus-android/app/src/nightly/res/drawable-land/dark_background.xml b/mobile/android/focus-android/app/src/nightly/res/drawable-land/dark_background.xml
new file mode 100644
index 0000000000..a9f901ac74
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/drawable-land/dark_background.xml
@@ -0,0 +1,28 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="640dp"
+ android:height="360dp"
+ android:viewportWidth="640"
+ android:viewportHeight="360">
+ <path
+ android:pathData="M640,-0L-0,0L0,360L640,360L640,-0Z"
+ android:fillType="evenOdd">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="30"
+ android:startX="-1.8358E-5"
+ android:endY="300"
+ android:endX="640"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF1F1336"/>
+ <item android:offset="0.356451" android:color="#FF8755F1"/>
+ <item android:offset="0.56273" android:color="#FF9C75EF"/>
+ <item android:offset="0.723955" android:color="#FF593EA5"/>
+ <item android:offset="1" android:color="#FF1E1335"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+</vector>
diff --git a/mobile/android/focus-android/app/src/nightly/res/drawable-v24/ic_splash_screen.xml b/mobile/android/focus-android/app/src/nightly/res/drawable-v24/ic_splash_screen.xml
new file mode 100644
index 0000000000..4be0323b4c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/drawable-v24/ic_splash_screen.xml
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <group android:scaleX="0.14238578"
+ android:scaleY="0.14238578"
+ android:translateX="26.875507"
+ android:translateY="25.95">
+ <path
+ android:pathData="M366.142,132.455C357.875,112.557 341.144,91.031 328.004,84.229C338.698,105.249 344.889,126.332 347.253,142.06C347.253,142.06 347.253,142.168 347.253,142.376C325.757,88.679 289.317,67.018 259.546,19.869C258.039,17.49 256.54,15.102 255.033,12.579C254.194,11.141 253.526,9.865 252.94,8.635C251.708,6.242 250.757,3.714 250.106,1.101C250.11,0.977 250.067,0.856 249.987,0.761C249.908,0.666 249.796,0.603 249.673,0.586C249.558,0.554 249.436,0.554 249.321,0.586L249.222,0.64L249.086,0.712L249.159,0.613C201.411,28.651 185.212,80.494 183.723,106.434C164.645,107.74 146.404,114.782 131.381,126.639C129.807,125.309 128.162,124.065 126.454,122.913C122.123,107.72 121.939,91.64 125.922,76.352C106.393,85.26 91.205,99.352 80.168,111.788H80.078C72.542,102.228 73.075,70.663 73.499,64.078C73.409,63.671 67.886,66.954 67.182,67.452C60.534,72.208 54.319,77.544 48.61,83.397C42.108,90.003 36.171,97.143 30.859,104.742C18.632,122.108 9.961,141.729 5.347,162.473C5.257,162.88 5.185,163.314 5.094,163.731C4.733,165.404 3.443,173.797 3.217,175.624C3.217,175.76 3.217,175.895 3.217,176.04C1.55,184.714 0.519,193.499 0.131,202.323C0.131,202.649 0.131,202.975 0.131,203.3C0.131,308.515 85.24,393.814 190.22,393.814C284.236,393.814 362.306,325.401 377.584,235.535C377.909,233.102 378.171,230.651 378.487,228.191C382.25,195.513 378.054,161.171 366.142,132.455ZM147.048,281.562C147.95,281.987 148.771,282.467 149.683,282.865L149.809,282.946C148.889,282.518 147.968,282.057 147.048,281.562ZM347.308,142.44V142.259C347.308,142.322 347.308,142.395 347.308,142.467V142.44Z"
+ android:fillColor="#9658F9"/>
+ <path
+ android:pathData="M366.142,132.455C357.876,112.557 341.145,91.031 328.005,84.229C338.699,105.249 344.89,126.331 347.254,142.06C347.254,142.06 347.254,142.06 347.254,142.241C347.254,142.422 347.254,142.376 347.254,142.449C365.185,191.18 355.376,240.735 341.334,271.025C319.549,317.876 266.82,365.902 184.31,363.56C95.122,361.027 16.556,294.695 1.891,207.822C-0.816,194.12 1.891,187.165 3.236,176.04C1.593,184.614 0.971,187.092 0.149,202.323C0.149,202.649 0.149,202.975 0.149,203.3C0.149,308.515 85.258,393.814 190.239,393.814C284.255,393.814 362.325,325.401 377.603,235.535C377.928,233.102 378.19,230.651 378.505,228.191C382.251,195.513 378.054,161.171 366.142,132.455Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="396.278"
+ android:centerX="326.399"
+ android:centerY="44.2073"
+ android:type="radial">
+ <item android:offset="0.13" android:color="#FF291D4F"/>
+ <item android:offset="0.56" android:color="#FF21153C"/>
+ <item android:offset="0.89" android:color="#FF1D1133"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M367.044,132.455C358.778,112.557 342.047,91.031 328.907,84.229C339.601,105.249 345.792,126.331 348.156,142.06C348.156,142.06 348.156,142.06 348.156,142.241C348.156,142.422 348.156,142.376 348.156,142.449C366.088,191.18 356.278,240.735 342.236,271.025C320.452,317.876 267.722,365.902 185.212,363.56C96.024,361.027 17.458,294.695 2.794,207.822C0.086,194.12 2.793,187.165 4.138,176.04C2.496,184.614 1.873,187.092 1.052,202.323C1.052,202.649 1.052,202.975 1.052,203.3C1.052,308.515 86.161,393.814 191.141,393.814C285.157,393.814 363.227,325.401 378.505,235.535C378.83,233.102 379.092,230.651 379.408,228.191C383.153,195.513 378.957,161.171 367.044,132.455Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="396.279"
+ android:centerX="186.16"
+ android:centerY="203.192"
+ android:type="radial">
+ <item android:offset="0.15" android:color="#FF20123A"/>
+ <item android:offset="0.22" android:color="#EF22143E"/>
+ <item android:offset="0.28" android:color="#BC271C4A"/>
+ <item android:offset="0.34" android:color="#6B30285F"/>
+ <item android:offset="0.38" android:color="#19393473"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M273.75,154.849C274.156,155.138 274.544,155.428 274.923,155.753C270.154,147.266 264.215,139.496 257.28,132.672C198.189,73.457 241.786,4.24 249.159,0.748L249.231,0.649C201.483,28.687 185.284,80.53 183.795,106.47C186.015,106.316 188.217,106.126 190.473,106.126C226.11,106.099 257.145,125.743 273.75,154.849Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="287.093"
+ android:centerX="229.368"
+ android:centerY="-45.9212"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF291D4F"/>
+ <item android:offset="0.08" android:color="#FF2B1E53"/>
+ <item android:offset="0.16" android:color="#FF33225E"/>
+ <item android:offset="0.23" android:color="#FF3F2971"/>
+ <item android:offset="0.31" android:color="#FF50328C"/>
+ <item android:offset="0.38" android:color="#FF673EAF"/>
+ <item android:offset="0.46" android:color="#FF824DD9"/>
+ <item android:offset="0.5" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.59,166.697C190.283,171.436 173.579,187.78 167.731,187.78C113.675,187.78 104.903,220.548 104.903,220.548C107.304,248.152 126.472,270.872 149.682,282.901C150.738,283.452 151.812,283.941 152.886,284.438C154.745,285.261 156.613,286.03 158.472,286.727C166.434,289.546 174.771,291.156 183.208,291.502C277.964,295.961 296.301,177.975 227.933,143.715C245.44,140.658 263.615,147.722 273.767,154.867C257.145,125.762 226.11,106.117 190.472,106.117C188.216,106.117 186.014,106.307 183.794,106.461C164.717,107.767 146.476,114.809 131.453,126.666C134.35,129.126 137.626,132.409 144.511,139.22C157.434,151.936 190.527,165.123 190.59,166.697Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="35307.8"
+ android:centerX="245037"
+ android:centerY="-213605"
+ android:type="radial">
+ <item android:offset="0.07" android:color="#FF9358FC"/>
+ <item android:offset="0.13" android:color="#FF9857F8"/>
+ <item android:offset="0.21" android:color="#FFA755EB"/>
+ <item android:offset="0.3" android:color="#FFBF52D7"/>
+ <item android:offset="0.39" android:color="#FFE14EBA"/>
+ <item android:offset="0.42" android:color="#FFEF4CAF"/>
+ <item android:offset="0.74" android:color="#FFFF7583"/>
+ <item android:offset="0.97" android:color="#FFFFB753"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.59,166.697C190.283,171.436 173.579,187.78 167.731,187.78C113.675,187.78 104.903,220.548 104.903,220.548C107.304,248.152 126.472,270.872 149.682,282.901C150.738,283.452 151.812,283.941 152.886,284.438C154.745,285.261 156.613,286.03 158.472,286.727C166.434,289.546 174.771,291.156 183.208,291.502C277.964,295.961 296.301,177.975 227.933,143.715C245.44,140.658 263.615,147.722 273.767,154.867C257.145,125.762 226.11,106.117 190.472,106.117C188.216,106.117 186.014,106.307 183.794,106.461C164.717,107.767 146.476,114.809 131.453,126.666C134.35,129.126 137.626,132.409 144.511,139.22C157.434,151.936 190.527,165.123 190.59,166.697Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="18707"
+ android:centerX="179826"
+ android:centerY="-335486"
+ android:type="radial">
+ <item android:offset="0.22" android:color="#4CFFB653"/>
+ <item android:offset="0.34" android:color="#7FFF807A"/>
+ <item android:offset="0.44" android:color="#7AFF7781"/>
+ <item android:offset="0.57" android:color="#6DFF5C94"/>
+ <item android:offset="0.64" android:color="#66FF4AA2"/>
+ <item android:offset="0.86" android:color="#4C9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M122.62,120.308C124.154,121.312 125.427,122.117 126.555,122.922C122.224,107.729 122.04,91.649 126.022,76.361C106.493,85.27 91.305,99.361 80.269,111.797C81.18,111.779 108.75,111.282 122.62,120.308Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="135.745"
+ android:centerX="176.586"
+ android:centerY="27.9547"
+ android:type="radial">
+ <item android:offset="0.43" android:color="#99291D4F"/>
+ <item android:offset="1" android:color="#99291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M1.908,207.822C16.573,294.65 95.139,361.027 184.327,363.56C266.882,365.902 319.612,317.876 341.351,271.025C355.429,240.735 365.203,191.18 347.271,142.449V142.268C347.271,142.123 347.271,142.042 347.271,142.087C347.271,142.132 347.271,142.195 347.271,142.403C354.013,186.532 331.623,229.285 296.608,258.173L296.509,258.426C228.285,314.095 163.012,292.018 149.791,282.973C148.87,282.533 147.95,282.072 147.029,281.589C107.259,262.542 90.826,226.219 94.345,195.079C60.765,195.079 49.313,166.679 49.313,166.679C49.313,166.679 79.464,145.135 119.207,163.875C156.009,181.231 190.572,166.688 190.572,166.688C190.509,165.132 157.417,151.945 144.548,139.211C137.662,132.4 134.386,129.117 131.489,126.657C129.915,125.327 128.271,124.083 126.562,122.931C125.434,122.162 124.162,121.321 122.628,120.317C108.757,111.272 81.188,111.788 80.276,111.806H80.186C72.651,102.246 73.183,70.68 73.607,64.096C73.517,63.689 67.994,66.972 67.29,67.47C60.642,72.226 54.428,77.562 48.718,83.415C42.216,90.021 36.279,97.161 30.967,104.76C18.741,122.126 10.07,141.747 5.455,162.491C5.329,162.88 -1.422,192.474 1.908,207.822Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="579.148"
+ android:centerX="283.289"
+ android:centerY="-58.3303"
+ android:type="radial">
+ <item android:offset="0.41" android:color="#FF20123A"/>
+ <item android:offset="0.59" android:color="#FC23143E"/>
+ <item android:offset="0.69" android:color="#F72B194C"/>
+ <item android:offset="0.77" android:color="#EF392163"/>
+ <item android:offset="0.85" android:color="#E04E2D84"/>
+ <item android:offset="0.92" android:color="#D1693DAF"/>
+ <item android:offset="0.98" android:color="#BA8950E3"/>
+ <item android:offset="1" android:color="#B29658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M257.299,132.635C264.233,139.46 270.172,147.23 274.942,155.717C275.988,156.513 276.972,157.291 277.802,158.06C320.894,197.855 298.315,254.157 296.627,258.164C331.642,229.222 354.031,186.505 347.29,142.395C325.794,88.697 289.354,67.036 259.582,19.887C258.075,17.508 256.577,15.12 255.07,12.597C254.231,11.159 253.563,9.884 252.976,8.653C251.744,6.26 250.793,3.732 250.143,1.119C250.146,0.995 250.104,0.874 250.024,0.779C249.944,0.684 249.832,0.622 249.709,0.604C249.594,0.572 249.473,0.572 249.358,0.604L249.258,0.658L249.123,0.73C241.804,4.231 198.207,73.421 257.299,132.635Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="447.145"
+ android:centerX="218.453"
+ android:centerY="-1.90324"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF20123A"/>
+ <item android:offset="0.23" android:color="#FF21133C"/>
+ <item android:offset="0.33" android:color="#FF261543"/>
+ <item android:offset="0.41" android:color="#FF2E1A50"/>
+ <item android:offset="0.47" android:color="#FF392162"/>
+ <item android:offset="0.53" android:color="#FF472979"/>
+ <item android:offset="0.58" android:color="#FF593496"/>
+ <item android:offset="0.63" android:color="#FF6E40B8"/>
+ <item android:offset="0.67" android:color="#FF854EDE"/>
+ <item android:offset="0.69" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M257.299,132.635C264.233,139.46 270.172,147.23 274.942,155.717C275.988,156.513 276.972,157.291 277.802,158.06C320.894,197.855 298.315,254.157 296.627,258.164C331.642,229.222 354.031,186.505 347.29,142.395C325.794,88.697 289.354,67.036 259.582,19.887C258.075,17.508 256.577,15.12 255.07,12.597C254.231,11.159 253.563,9.884 252.976,8.653C251.744,6.26 250.793,3.732 250.143,1.119C250.146,0.995 250.104,0.874 250.024,0.779C249.944,0.684 249.832,0.622 249.709,0.604C249.594,0.572 249.473,0.572 249.358,0.604L249.258,0.658L249.123,0.73C241.804,4.231 198.207,73.421 257.299,132.635Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="263.609"
+ android:startX="348.526"
+ android:endY="218.29"
+ android:endX="329.44"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF2451F0"/>
+ <item android:offset="0.1" android:color="#DD2349D8"/>
+ <item android:offset="0.35" android:color="#8E2236A1"/>
+ <item android:offset="0.57" android:color="#51212675"/>
+ <item android:offset="0.76" android:color="#26211B55"/>
+ <item android:offset="0.91" android:color="#0A201541"/>
+ <item android:offset="1" android:color="#0020123A"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M277.803,158.06C276.972,157.291 275.998,156.513 274.942,155.717C274.563,155.428 274.175,155.138 273.769,154.813C263.616,147.668 245.441,140.604 227.934,143.661C296.303,177.922 277.947,295.907 183.209,291.448C174.772,291.102 166.435,289.492 158.473,286.673C156.614,285.976 154.746,285.207 152.887,284.384C151.813,283.887 150.739,283.399 149.684,282.847L149.81,282.928C163.031,291.973 228.322,314.05 296.528,258.381L296.628,258.128C298.315,254.158 320.894,197.865 277.803,158.06Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="465.784"
+ android:centerX="173.391"
+ android:centerY="78.3506"
+ android:type="radial">
+ <item android:offset="0.36" android:color="#FF291D4F"/>
+ <item android:offset="0.83" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M104.904,220.53C104.904,220.53 113.675,187.762 167.731,187.762C173.579,187.762 190.292,171.418 190.59,166.679C190.59,166.679 156.027,181.223 119.225,163.866C79.518,145.126 49.332,166.67 49.332,166.67C49.332,166.67 60.784,195.07 94.363,195.07C90.844,226.21 107.277,262.533 147.048,281.58C147.95,282.006 148.771,282.485 149.683,282.883C126.472,270.854 107.304,248.098 104.904,220.53Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="395.737"
+ android:centerX="258.138"
+ android:centerY="107.908"
+ android:type="radial">
+ <item android:offset="0.09" android:color="#FF291D4F"/>
+ <item android:offset="0.44" android:color="#C1291D4F"/>
+ <item android:offset="0.63" android:color="#99291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M366.144,132.455C357.877,112.557 341.146,91.031 328.007,84.229C338.7,105.249 344.891,126.332 347.256,142.06C347.256,142.06 347.256,142.168 347.256,142.376C325.759,88.679 289.319,67.018 259.548,19.869C258.041,17.49 256.543,15.102 255.035,12.579C254.196,11.141 253.528,9.865 252.942,8.635C251.71,6.242 250.759,3.714 250.108,1.101C250.112,0.977 250.069,0.856 249.99,0.761C249.91,0.666 249.798,0.603 249.675,0.586C249.56,0.554 249.438,0.554 249.323,0.586L249.224,0.64L249.088,0.712L249.161,0.613C201.413,28.651 185.214,80.494 183.725,106.434C185.945,106.28 188.147,106.09 190.403,106.09C226.04,106.09 257.075,125.735 273.698,154.84C263.545,147.695 245.37,140.631 227.863,143.688C296.232,177.949 277.876,295.934 183.138,291.475C174.701,291.128 166.364,289.519 158.402,286.7C156.543,286.003 154.675,285.234 152.816,284.411C151.742,283.914 150.668,283.425 149.613,282.874L149.739,282.955C148.818,282.515 147.898,282.054 146.978,281.571C147.88,281.996 148.701,282.476 149.613,282.874C126.402,270.845 107.198,248.125 104.834,220.521C104.834,220.521 113.605,187.753 167.661,187.753C173.509,187.753 190.222,171.409 190.52,166.67C190.457,165.114 157.365,151.927 144.496,139.193C137.61,132.382 134.334,129.099 131.438,126.639C129.863,125.309 128.219,124.065 126.51,122.913C122.179,107.72 121.995,91.64 125.978,76.352C106.449,85.26 91.261,99.352 80.224,111.788H80.134C72.599,102.228 73.131,70.663 73.555,64.078C73.465,63.671 67.942,66.954 67.238,67.452C60.591,72.208 54.376,77.544 48.666,83.397C42.165,90.003 36.227,97.143 30.915,104.742C18.689,122.108 10.018,141.729 5.403,162.473C5.313,162.88 5.241,163.314 5.15,163.731C4.789,165.404 3.183,173.915 2.958,175.742C1.489,184.538 0.552,193.414 0.151,202.323C0.151,202.649 0.151,202.975 0.151,203.3C0.151,308.515 85.26,393.814 190.24,393.814C284.256,393.814 362.326,325.401 377.604,235.535C377.929,233.102 378.191,230.651 378.507,228.191C382.252,195.513 378.056,161.171 366.144,132.455ZM347.283,142.241C347.283,142.304 347.283,142.376 347.283,142.449V142.241Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="59.8454"
+ android:startX="337.184"
+ android:endY="328.356"
+ android:endX="68.0838"
+ android:type="linear">
+ <item android:offset="0.3" android:color="#CC291D4F"/>
+ <item android:offset="0.55" android:color="#44291D4F"/>
+ <item android:offset="0.66" android:color="#00291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.483,166.489C190.176,171.228 173.472,187.572 167.624,187.572C113.568,187.572 104.796,220.34 104.796,220.34C107.197,247.935 126.365,270.654 149.575,282.684C150.631,283.226 151.705,283.724 152.779,284.212C154.638,285.035 156.506,285.804 158.365,286.5C166.325,289.327 174.663,290.94 183.101,291.285C277.857,295.735 296.194,177.767 227.826,143.516C245.333,140.459 263.508,147.514 273.661,154.668C257.038,125.563 226.003,105.927 190.365,105.927C188.109,105.927 185.907,106.108 183.687,106.262C164.61,107.568 146.369,114.61 131.346,126.467C134.243,128.927 137.519,132.21 144.404,139.012C157.336,151.755 190.42,164.942 190.483,166.489Z"
+ android:strokeAlpha="0.95"
+ android:fillAlpha="0.95">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="188.512"
+ android:centerX="177.806"
+ android:centerY="348.029"
+ android:type="radial">
+ <item android:offset="0.29" android:color="#FF0060DF"/>
+ <item android:offset="0.42" android:color="#FF2357E1"/>
+ <item android:offset="0.6" android:color="#FF4F4CE3"/>
+ <item android:offset="0.75" android:color="#FF6B45E4"/>
+ <item android:offset="0.83" android:color="#FF7542E5"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.483,166.489C190.176,171.228 173.472,187.572 167.624,187.572C113.568,187.572 104.796,220.34 104.796,220.34C107.197,247.935 126.365,270.654 149.575,282.684C150.631,283.226 151.705,283.724 152.779,284.212C154.638,285.035 156.506,285.804 158.365,286.5C166.325,289.327 174.663,290.94 183.101,291.285C277.857,295.735 296.194,177.767 227.826,143.516C245.333,140.459 263.508,147.514 273.661,154.668C257.038,125.563 226.003,105.927 190.365,105.927C188.109,105.927 185.907,106.108 183.687,106.262C164.61,107.568 146.369,114.61 131.346,126.467C134.243,128.927 137.519,132.21 144.404,139.012C157.336,151.755 190.42,164.942 190.483,166.489Z"
+ android:strokeAlpha="0.95"
+ android:fillAlpha="0.95">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="100.031"
+ android:centerX="179.629"
+ android:centerY="147.104"
+ android:type="radial">
+ <item android:offset="0.21" android:color="#0045278D"/>
+ <item android:offset="0.25" android:color="#0F44268A"/>
+ <item android:offset="0.73" android:color="#96371F6F"/>
+ <item android:offset="0.96" android:color="#CC321C64"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ </group>
+</vector>
diff --git a/mobile/android/focus-android/app/src/nightly/res/drawable/dark_background.xml b/mobile/android/focus-android/app/src/nightly/res/drawable/dark_background.xml
new file mode 100644
index 0000000000..90f50cf3ff
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/drawable/dark_background.xml
@@ -0,0 +1,28 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="360dp"
+ android:height="640dp"
+ android:viewportWidth="360"
+ android:viewportHeight="640">
+ <path
+ android:pathData="M360,640V0H0V640H360Z"
+ android:fillType="evenOdd">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="-3.93329E-6"
+ android:startX="330"
+ android:endY="640"
+ android:endX="60"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF1F1336"/>
+ <item android:offset="0.356451" android:color="#FF8755F1"/>
+ <item android:offset="0.56273" android:color="#FF9C75EF"/>
+ <item android:offset="0.723955" android:color="#FF593EA5"/>
+ <item android:offset="1" android:color="#FF1E1335"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+</vector>
diff --git a/mobile/android/focus-android/app/src/nightly/res/drawable/ic_launcher_background.xml b/mobile/android/focus-android/app/src/nightly/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000000..d2c843b554
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <group android:scaleX="0.23203126"
+ android:scaleY="0.23203126"
+ android:translateX="-5.4"
+ android:translateY="-5.4">
+ <path
+ android:pathData="M471.579,0H40.421C18.097,0 0,18.097 0,40.421V471.579C0,493.903 18.097,512 40.421,512H471.579C493.903,512 512,493.903 512,471.579V40.421C512,18.097 493.903,0 471.579,0Z"
+ android:fillColor="#F0F0F4"/>
+ </group>
+</vector>
diff --git a/mobile/android/focus-android/app/src/nightly/res/drawable/ic_launcher_foreground.xml b/mobile/android/focus-android/app/src/nightly/res/drawable/ic_launcher_foreground.xml
new file mode 100644
index 0000000000..4be0323b4c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/drawable/ic_launcher_foreground.xml
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <group android:scaleX="0.14238578"
+ android:scaleY="0.14238578"
+ android:translateX="26.875507"
+ android:translateY="25.95">
+ <path
+ android:pathData="M366.142,132.455C357.875,112.557 341.144,91.031 328.004,84.229C338.698,105.249 344.889,126.332 347.253,142.06C347.253,142.06 347.253,142.168 347.253,142.376C325.757,88.679 289.317,67.018 259.546,19.869C258.039,17.49 256.54,15.102 255.033,12.579C254.194,11.141 253.526,9.865 252.94,8.635C251.708,6.242 250.757,3.714 250.106,1.101C250.11,0.977 250.067,0.856 249.987,0.761C249.908,0.666 249.796,0.603 249.673,0.586C249.558,0.554 249.436,0.554 249.321,0.586L249.222,0.64L249.086,0.712L249.159,0.613C201.411,28.651 185.212,80.494 183.723,106.434C164.645,107.74 146.404,114.782 131.381,126.639C129.807,125.309 128.162,124.065 126.454,122.913C122.123,107.72 121.939,91.64 125.922,76.352C106.393,85.26 91.205,99.352 80.168,111.788H80.078C72.542,102.228 73.075,70.663 73.499,64.078C73.409,63.671 67.886,66.954 67.182,67.452C60.534,72.208 54.319,77.544 48.61,83.397C42.108,90.003 36.171,97.143 30.859,104.742C18.632,122.108 9.961,141.729 5.347,162.473C5.257,162.88 5.185,163.314 5.094,163.731C4.733,165.404 3.443,173.797 3.217,175.624C3.217,175.76 3.217,175.895 3.217,176.04C1.55,184.714 0.519,193.499 0.131,202.323C0.131,202.649 0.131,202.975 0.131,203.3C0.131,308.515 85.24,393.814 190.22,393.814C284.236,393.814 362.306,325.401 377.584,235.535C377.909,233.102 378.171,230.651 378.487,228.191C382.25,195.513 378.054,161.171 366.142,132.455ZM147.048,281.562C147.95,281.987 148.771,282.467 149.683,282.865L149.809,282.946C148.889,282.518 147.968,282.057 147.048,281.562ZM347.308,142.44V142.259C347.308,142.322 347.308,142.395 347.308,142.467V142.44Z"
+ android:fillColor="#9658F9"/>
+ <path
+ android:pathData="M366.142,132.455C357.876,112.557 341.145,91.031 328.005,84.229C338.699,105.249 344.89,126.331 347.254,142.06C347.254,142.06 347.254,142.06 347.254,142.241C347.254,142.422 347.254,142.376 347.254,142.449C365.185,191.18 355.376,240.735 341.334,271.025C319.549,317.876 266.82,365.902 184.31,363.56C95.122,361.027 16.556,294.695 1.891,207.822C-0.816,194.12 1.891,187.165 3.236,176.04C1.593,184.614 0.971,187.092 0.149,202.323C0.149,202.649 0.149,202.975 0.149,203.3C0.149,308.515 85.258,393.814 190.239,393.814C284.255,393.814 362.325,325.401 377.603,235.535C377.928,233.102 378.19,230.651 378.505,228.191C382.251,195.513 378.054,161.171 366.142,132.455Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="396.278"
+ android:centerX="326.399"
+ android:centerY="44.2073"
+ android:type="radial">
+ <item android:offset="0.13" android:color="#FF291D4F"/>
+ <item android:offset="0.56" android:color="#FF21153C"/>
+ <item android:offset="0.89" android:color="#FF1D1133"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M367.044,132.455C358.778,112.557 342.047,91.031 328.907,84.229C339.601,105.249 345.792,126.331 348.156,142.06C348.156,142.06 348.156,142.06 348.156,142.241C348.156,142.422 348.156,142.376 348.156,142.449C366.088,191.18 356.278,240.735 342.236,271.025C320.452,317.876 267.722,365.902 185.212,363.56C96.024,361.027 17.458,294.695 2.794,207.822C0.086,194.12 2.793,187.165 4.138,176.04C2.496,184.614 1.873,187.092 1.052,202.323C1.052,202.649 1.052,202.975 1.052,203.3C1.052,308.515 86.161,393.814 191.141,393.814C285.157,393.814 363.227,325.401 378.505,235.535C378.83,233.102 379.092,230.651 379.408,228.191C383.153,195.513 378.957,161.171 367.044,132.455Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="396.279"
+ android:centerX="186.16"
+ android:centerY="203.192"
+ android:type="radial">
+ <item android:offset="0.15" android:color="#FF20123A"/>
+ <item android:offset="0.22" android:color="#EF22143E"/>
+ <item android:offset="0.28" android:color="#BC271C4A"/>
+ <item android:offset="0.34" android:color="#6B30285F"/>
+ <item android:offset="0.38" android:color="#19393473"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M273.75,154.849C274.156,155.138 274.544,155.428 274.923,155.753C270.154,147.266 264.215,139.496 257.28,132.672C198.189,73.457 241.786,4.24 249.159,0.748L249.231,0.649C201.483,28.687 185.284,80.53 183.795,106.47C186.015,106.316 188.217,106.126 190.473,106.126C226.11,106.099 257.145,125.743 273.75,154.849Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="287.093"
+ android:centerX="229.368"
+ android:centerY="-45.9212"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF291D4F"/>
+ <item android:offset="0.08" android:color="#FF2B1E53"/>
+ <item android:offset="0.16" android:color="#FF33225E"/>
+ <item android:offset="0.23" android:color="#FF3F2971"/>
+ <item android:offset="0.31" android:color="#FF50328C"/>
+ <item android:offset="0.38" android:color="#FF673EAF"/>
+ <item android:offset="0.46" android:color="#FF824DD9"/>
+ <item android:offset="0.5" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.59,166.697C190.283,171.436 173.579,187.78 167.731,187.78C113.675,187.78 104.903,220.548 104.903,220.548C107.304,248.152 126.472,270.872 149.682,282.901C150.738,283.452 151.812,283.941 152.886,284.438C154.745,285.261 156.613,286.03 158.472,286.727C166.434,289.546 174.771,291.156 183.208,291.502C277.964,295.961 296.301,177.975 227.933,143.715C245.44,140.658 263.615,147.722 273.767,154.867C257.145,125.762 226.11,106.117 190.472,106.117C188.216,106.117 186.014,106.307 183.794,106.461C164.717,107.767 146.476,114.809 131.453,126.666C134.35,129.126 137.626,132.409 144.511,139.22C157.434,151.936 190.527,165.123 190.59,166.697Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="35307.8"
+ android:centerX="245037"
+ android:centerY="-213605"
+ android:type="radial">
+ <item android:offset="0.07" android:color="#FF9358FC"/>
+ <item android:offset="0.13" android:color="#FF9857F8"/>
+ <item android:offset="0.21" android:color="#FFA755EB"/>
+ <item android:offset="0.3" android:color="#FFBF52D7"/>
+ <item android:offset="0.39" android:color="#FFE14EBA"/>
+ <item android:offset="0.42" android:color="#FFEF4CAF"/>
+ <item android:offset="0.74" android:color="#FFFF7583"/>
+ <item android:offset="0.97" android:color="#FFFFB753"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.59,166.697C190.283,171.436 173.579,187.78 167.731,187.78C113.675,187.78 104.903,220.548 104.903,220.548C107.304,248.152 126.472,270.872 149.682,282.901C150.738,283.452 151.812,283.941 152.886,284.438C154.745,285.261 156.613,286.03 158.472,286.727C166.434,289.546 174.771,291.156 183.208,291.502C277.964,295.961 296.301,177.975 227.933,143.715C245.44,140.658 263.615,147.722 273.767,154.867C257.145,125.762 226.11,106.117 190.472,106.117C188.216,106.117 186.014,106.307 183.794,106.461C164.717,107.767 146.476,114.809 131.453,126.666C134.35,129.126 137.626,132.409 144.511,139.22C157.434,151.936 190.527,165.123 190.59,166.697Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="18707"
+ android:centerX="179826"
+ android:centerY="-335486"
+ android:type="radial">
+ <item android:offset="0.22" android:color="#4CFFB653"/>
+ <item android:offset="0.34" android:color="#7FFF807A"/>
+ <item android:offset="0.44" android:color="#7AFF7781"/>
+ <item android:offset="0.57" android:color="#6DFF5C94"/>
+ <item android:offset="0.64" android:color="#66FF4AA2"/>
+ <item android:offset="0.86" android:color="#4C9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M122.62,120.308C124.154,121.312 125.427,122.117 126.555,122.922C122.224,107.729 122.04,91.649 126.022,76.361C106.493,85.27 91.305,99.361 80.269,111.797C81.18,111.779 108.75,111.282 122.62,120.308Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="135.745"
+ android:centerX="176.586"
+ android:centerY="27.9547"
+ android:type="radial">
+ <item android:offset="0.43" android:color="#99291D4F"/>
+ <item android:offset="1" android:color="#99291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M1.908,207.822C16.573,294.65 95.139,361.027 184.327,363.56C266.882,365.902 319.612,317.876 341.351,271.025C355.429,240.735 365.203,191.18 347.271,142.449V142.268C347.271,142.123 347.271,142.042 347.271,142.087C347.271,142.132 347.271,142.195 347.271,142.403C354.013,186.532 331.623,229.285 296.608,258.173L296.509,258.426C228.285,314.095 163.012,292.018 149.791,282.973C148.87,282.533 147.95,282.072 147.029,281.589C107.259,262.542 90.826,226.219 94.345,195.079C60.765,195.079 49.313,166.679 49.313,166.679C49.313,166.679 79.464,145.135 119.207,163.875C156.009,181.231 190.572,166.688 190.572,166.688C190.509,165.132 157.417,151.945 144.548,139.211C137.662,132.4 134.386,129.117 131.489,126.657C129.915,125.327 128.271,124.083 126.562,122.931C125.434,122.162 124.162,121.321 122.628,120.317C108.757,111.272 81.188,111.788 80.276,111.806H80.186C72.651,102.246 73.183,70.68 73.607,64.096C73.517,63.689 67.994,66.972 67.29,67.47C60.642,72.226 54.428,77.562 48.718,83.415C42.216,90.021 36.279,97.161 30.967,104.76C18.741,122.126 10.07,141.747 5.455,162.491C5.329,162.88 -1.422,192.474 1.908,207.822Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="579.148"
+ android:centerX="283.289"
+ android:centerY="-58.3303"
+ android:type="radial">
+ <item android:offset="0.41" android:color="#FF20123A"/>
+ <item android:offset="0.59" android:color="#FC23143E"/>
+ <item android:offset="0.69" android:color="#F72B194C"/>
+ <item android:offset="0.77" android:color="#EF392163"/>
+ <item android:offset="0.85" android:color="#E04E2D84"/>
+ <item android:offset="0.92" android:color="#D1693DAF"/>
+ <item android:offset="0.98" android:color="#BA8950E3"/>
+ <item android:offset="1" android:color="#B29658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M257.299,132.635C264.233,139.46 270.172,147.23 274.942,155.717C275.988,156.513 276.972,157.291 277.802,158.06C320.894,197.855 298.315,254.157 296.627,258.164C331.642,229.222 354.031,186.505 347.29,142.395C325.794,88.697 289.354,67.036 259.582,19.887C258.075,17.508 256.577,15.12 255.07,12.597C254.231,11.159 253.563,9.884 252.976,8.653C251.744,6.26 250.793,3.732 250.143,1.119C250.146,0.995 250.104,0.874 250.024,0.779C249.944,0.684 249.832,0.622 249.709,0.604C249.594,0.572 249.473,0.572 249.358,0.604L249.258,0.658L249.123,0.73C241.804,4.231 198.207,73.421 257.299,132.635Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="447.145"
+ android:centerX="218.453"
+ android:centerY="-1.90324"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF20123A"/>
+ <item android:offset="0.23" android:color="#FF21133C"/>
+ <item android:offset="0.33" android:color="#FF261543"/>
+ <item android:offset="0.41" android:color="#FF2E1A50"/>
+ <item android:offset="0.47" android:color="#FF392162"/>
+ <item android:offset="0.53" android:color="#FF472979"/>
+ <item android:offset="0.58" android:color="#FF593496"/>
+ <item android:offset="0.63" android:color="#FF6E40B8"/>
+ <item android:offset="0.67" android:color="#FF854EDE"/>
+ <item android:offset="0.69" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M257.299,132.635C264.233,139.46 270.172,147.23 274.942,155.717C275.988,156.513 276.972,157.291 277.802,158.06C320.894,197.855 298.315,254.157 296.627,258.164C331.642,229.222 354.031,186.505 347.29,142.395C325.794,88.697 289.354,67.036 259.582,19.887C258.075,17.508 256.577,15.12 255.07,12.597C254.231,11.159 253.563,9.884 252.976,8.653C251.744,6.26 250.793,3.732 250.143,1.119C250.146,0.995 250.104,0.874 250.024,0.779C249.944,0.684 249.832,0.622 249.709,0.604C249.594,0.572 249.473,0.572 249.358,0.604L249.258,0.658L249.123,0.73C241.804,4.231 198.207,73.421 257.299,132.635Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="263.609"
+ android:startX="348.526"
+ android:endY="218.29"
+ android:endX="329.44"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF2451F0"/>
+ <item android:offset="0.1" android:color="#DD2349D8"/>
+ <item android:offset="0.35" android:color="#8E2236A1"/>
+ <item android:offset="0.57" android:color="#51212675"/>
+ <item android:offset="0.76" android:color="#26211B55"/>
+ <item android:offset="0.91" android:color="#0A201541"/>
+ <item android:offset="1" android:color="#0020123A"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M277.803,158.06C276.972,157.291 275.998,156.513 274.942,155.717C274.563,155.428 274.175,155.138 273.769,154.813C263.616,147.668 245.441,140.604 227.934,143.661C296.303,177.922 277.947,295.907 183.209,291.448C174.772,291.102 166.435,289.492 158.473,286.673C156.614,285.976 154.746,285.207 152.887,284.384C151.813,283.887 150.739,283.399 149.684,282.847L149.81,282.928C163.031,291.973 228.322,314.05 296.528,258.381L296.628,258.128C298.315,254.158 320.894,197.865 277.803,158.06Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="465.784"
+ android:centerX="173.391"
+ android:centerY="78.3506"
+ android:type="radial">
+ <item android:offset="0.36" android:color="#FF291D4F"/>
+ <item android:offset="0.83" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M104.904,220.53C104.904,220.53 113.675,187.762 167.731,187.762C173.579,187.762 190.292,171.418 190.59,166.679C190.59,166.679 156.027,181.223 119.225,163.866C79.518,145.126 49.332,166.67 49.332,166.67C49.332,166.67 60.784,195.07 94.363,195.07C90.844,226.21 107.277,262.533 147.048,281.58C147.95,282.006 148.771,282.485 149.683,282.883C126.472,270.854 107.304,248.098 104.904,220.53Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="395.737"
+ android:centerX="258.138"
+ android:centerY="107.908"
+ android:type="radial">
+ <item android:offset="0.09" android:color="#FF291D4F"/>
+ <item android:offset="0.44" android:color="#C1291D4F"/>
+ <item android:offset="0.63" android:color="#99291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M366.144,132.455C357.877,112.557 341.146,91.031 328.007,84.229C338.7,105.249 344.891,126.332 347.256,142.06C347.256,142.06 347.256,142.168 347.256,142.376C325.759,88.679 289.319,67.018 259.548,19.869C258.041,17.49 256.543,15.102 255.035,12.579C254.196,11.141 253.528,9.865 252.942,8.635C251.71,6.242 250.759,3.714 250.108,1.101C250.112,0.977 250.069,0.856 249.99,0.761C249.91,0.666 249.798,0.603 249.675,0.586C249.56,0.554 249.438,0.554 249.323,0.586L249.224,0.64L249.088,0.712L249.161,0.613C201.413,28.651 185.214,80.494 183.725,106.434C185.945,106.28 188.147,106.09 190.403,106.09C226.04,106.09 257.075,125.735 273.698,154.84C263.545,147.695 245.37,140.631 227.863,143.688C296.232,177.949 277.876,295.934 183.138,291.475C174.701,291.128 166.364,289.519 158.402,286.7C156.543,286.003 154.675,285.234 152.816,284.411C151.742,283.914 150.668,283.425 149.613,282.874L149.739,282.955C148.818,282.515 147.898,282.054 146.978,281.571C147.88,281.996 148.701,282.476 149.613,282.874C126.402,270.845 107.198,248.125 104.834,220.521C104.834,220.521 113.605,187.753 167.661,187.753C173.509,187.753 190.222,171.409 190.52,166.67C190.457,165.114 157.365,151.927 144.496,139.193C137.61,132.382 134.334,129.099 131.438,126.639C129.863,125.309 128.219,124.065 126.51,122.913C122.179,107.72 121.995,91.64 125.978,76.352C106.449,85.26 91.261,99.352 80.224,111.788H80.134C72.599,102.228 73.131,70.663 73.555,64.078C73.465,63.671 67.942,66.954 67.238,67.452C60.591,72.208 54.376,77.544 48.666,83.397C42.165,90.003 36.227,97.143 30.915,104.742C18.689,122.108 10.018,141.729 5.403,162.473C5.313,162.88 5.241,163.314 5.15,163.731C4.789,165.404 3.183,173.915 2.958,175.742C1.489,184.538 0.552,193.414 0.151,202.323C0.151,202.649 0.151,202.975 0.151,203.3C0.151,308.515 85.26,393.814 190.24,393.814C284.256,393.814 362.326,325.401 377.604,235.535C377.929,233.102 378.191,230.651 378.507,228.191C382.252,195.513 378.056,161.171 366.144,132.455ZM347.283,142.241C347.283,142.304 347.283,142.376 347.283,142.449V142.241Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="59.8454"
+ android:startX="337.184"
+ android:endY="328.356"
+ android:endX="68.0838"
+ android:type="linear">
+ <item android:offset="0.3" android:color="#CC291D4F"/>
+ <item android:offset="0.55" android:color="#44291D4F"/>
+ <item android:offset="0.66" android:color="#00291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.483,166.489C190.176,171.228 173.472,187.572 167.624,187.572C113.568,187.572 104.796,220.34 104.796,220.34C107.197,247.935 126.365,270.654 149.575,282.684C150.631,283.226 151.705,283.724 152.779,284.212C154.638,285.035 156.506,285.804 158.365,286.5C166.325,289.327 174.663,290.94 183.101,291.285C277.857,295.735 296.194,177.767 227.826,143.516C245.333,140.459 263.508,147.514 273.661,154.668C257.038,125.563 226.003,105.927 190.365,105.927C188.109,105.927 185.907,106.108 183.687,106.262C164.61,107.568 146.369,114.61 131.346,126.467C134.243,128.927 137.519,132.21 144.404,139.012C157.336,151.755 190.42,164.942 190.483,166.489Z"
+ android:strokeAlpha="0.95"
+ android:fillAlpha="0.95">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="188.512"
+ android:centerX="177.806"
+ android:centerY="348.029"
+ android:type="radial">
+ <item android:offset="0.29" android:color="#FF0060DF"/>
+ <item android:offset="0.42" android:color="#FF2357E1"/>
+ <item android:offset="0.6" android:color="#FF4F4CE3"/>
+ <item android:offset="0.75" android:color="#FF6B45E4"/>
+ <item android:offset="0.83" android:color="#FF7542E5"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M190.483,166.489C190.176,171.228 173.472,187.572 167.624,187.572C113.568,187.572 104.796,220.34 104.796,220.34C107.197,247.935 126.365,270.654 149.575,282.684C150.631,283.226 151.705,283.724 152.779,284.212C154.638,285.035 156.506,285.804 158.365,286.5C166.325,289.327 174.663,290.94 183.101,291.285C277.857,295.735 296.194,177.767 227.826,143.516C245.333,140.459 263.508,147.514 273.661,154.668C257.038,125.563 226.003,105.927 190.365,105.927C188.109,105.927 185.907,106.108 183.687,106.262C164.61,107.568 146.369,114.61 131.346,126.467C134.243,128.927 137.519,132.21 144.404,139.012C157.336,151.755 190.42,164.942 190.483,166.489Z"
+ android:strokeAlpha="0.95"
+ android:fillAlpha="0.95">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="100.031"
+ android:centerX="179.629"
+ android:centerY="147.104"
+ android:type="radial">
+ <item android:offset="0.21" android:color="#0045278D"/>
+ <item android:offset="0.25" android:color="#0F44268A"/>
+ <item android:offset="0.73" android:color="#96371F6F"/>
+ <item android:offset="0.96" android:color="#CC321C64"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ </group>
+</vector>
diff --git a/mobile/android/focus-android/app/src/nightly/res/drawable/ic_splash_screen.png b/mobile/android/focus-android/app/src/nightly/res/drawable/ic_splash_screen.png
new file mode 100644
index 0000000000..b8be2b7181
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/drawable/ic_splash_screen.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/nightly/res/drawable/onboarding_logo.xml b/mobile/android/focus-android/app/src/nightly/res/drawable/onboarding_logo.xml
new file mode 100644
index 0000000000..5c1ddc7761
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/drawable/onboarding_logo.xml
@@ -0,0 +1,248 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="75.3dp"
+ android:height="78dp"
+ android:viewportWidth="75.3"
+ android:viewportHeight="78">
+ <path
+ android:pathData="M72.6,26.2c-1.6,-3.9 -5,-8.2 -7.6,-9.6c1.9,3.6 3.1,7.5 3.8,11.5v0.1C64.6,17.5 57.4,13.2 51.4,3.8c-0.3,-0.5 -0.6,-0.9 -0.9,-1.4c-0.2,-0.3 -0.3,-0.5 -0.4,-0.8c-0.2,-0.5 -0.4,-1 -0.6,-1.5c0,-0.1 0,-0.1 -0.1,-0.1c0,0 0,0 -0.1,0l0,0l0,0l0,0c-9.5,5.6 -12.7,15.8 -13,21c-3.8,0.3 -7.4,1.7 -10.4,4c-0.3,-0.3 -0.6,-0.5 -1,-0.7c-0.9,-3 -0.9,-6.2 -0.1,-9.2c-3.5,1.7 -6.6,4.1 -9.1,7h0c-1.5,-1.9 -1.4,-8.2 -1.3,-9.5c-0.4,0.2 -0.9,0.4 -1.3,0.7c-1.3,0.9 -2.6,2 -3.7,3.2c-1.3,1.3 -2.5,2.7 -3.5,4.2C3.7,24.1 1.9,28 1,32.1c0,0.1 0,0.2 -0.1,0.2c-0.1,0.3 -0.3,2 -0.4,2.4v0.1C0.3,36.5 0.1,38.3 0,40v0.2C0,61 16.8,77.9 37.6,78C56,78 71.8,64.8 74.9,46.6c0.1,-0.5 0.1,-1 0.2,-1.5C75.8,38.7 75,32.2 72.6,26.2zM29.1,55.7c0.2,0.1 0.3,0.2 0.5,0.3l0,0C29.5,55.9 29.3,55.8 29.1,55.7zM68.9,28.1L68.9,28.1z"
+ android:fillColor="#9658F9"/>
+ <path
+ android:pathData="M72.6,26.2c-1.6,-3.9 -5,-8.2 -7.6,-9.6c1.9,3.6 3.1,7.5 3.8,11.5v0.1c2.9,8.3 2.5,17.5 -1.2,25.5C63.3,62.9 52.9,72.5 36.5,72C18.8,71.5 3.3,58.3 0.3,41.1c-0.5,-2.7 0,-4.1 0.3,-6.3C0.2,36.5 0,38.3 0,40v0.2C0,61 16.8,77.9 37.6,78C56,78 71.8,64.8 74.9,46.6c0.1,-0.5 0.1,-1 0.2,-1.5C75.8,38.7 75,32.2 72.6,26.2z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="78.58193"
+ android:centerX="64.68007"
+ android:centerY="8.658037"
+ android:type="radial">
+ <item android:offset="0.13" android:color="#FF291D4F"/>
+ <item android:offset="0.56" android:color="#FF21153C"/>
+ <item android:offset="0.89" android:color="#FF1D1133"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M72.6,26.2c-1.6,-3.9 -5,-8.2 -7.6,-9.6c1.9,3.6 3.1,7.5 3.8,11.5v0.1c2.9,8.3 2.5,17.5 -1.2,25.5C63.3,62.9 52.9,72.5 36.5,72C18.8,71.5 3.3,58.3 0.3,41.1c-0.5,-2.7 0,-4.1 0.3,-6.3C0.2,36.5 0,38.3 0,40v0.2C0,61 16.8,77.9 37.6,78C56,78 71.8,64.8 74.9,46.6c0.1,-0.5 0.1,-1 0.2,-1.5C75.8,38.7 75,32.2 72.6,26.2z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="78.58212"
+ android:centerX="36.677498"
+ android:centerY="40.177505"
+ android:type="radial">
+ <item android:offset="0.15" android:color="#FF20123A"/>
+ <item android:offset="0.22" android:color="#EF22143E"/>
+ <item android:offset="0.28" android:color="#BC271C4A"/>
+ <item android:offset="0.34" android:color="#6B30285F"/>
+ <item android:offset="0.38" android:color="#19393473"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M54.3,30.6c0.1,0.1 0.2,0.1 0.2,0.2c-0.9,-1.7 -2.1,-3.2 -3.5,-4.6C39.3,14.5 47.9,0.7 49.4,0l0,0c-9.5,5.6 -12.7,15.8 -13,21c0.4,0 0.9,-0.1 1.3,-0.1C44.6,20.9 50.9,24.6 54.3,30.6z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="56.93054"
+ android:centerX="45.476223"
+ android:centerY="-9.221396"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF291D4F"/>
+ <item android:offset="0.08" android:color="#FF2B1E53"/>
+ <item android:offset="0.16" android:color="#FF33225E"/>
+ <item android:offset="0.23" android:color="#FF3F2971"/>
+ <item android:offset="0.31" android:color="#FF50328C"/>
+ <item android:offset="0.38" android:color="#FF673EAF"/>
+ <item android:offset="0.46" android:color="#FF824DD9"/>
+ <item android:offset="0.5" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M37.8,32.9c-0.1,0.9 -3.4,4.2 -4.5,4.2c-10.7,0 -12.5,6.5 -12.5,6.5c0.5,5.5 4.3,10 8.9,12.4c0.2,0.1 0.4,0.2 0.6,0.3c0.4,0.2 0.7,0.3 1.1,0.5c1.6,0.6 3.2,0.9 4.9,0.9c18.8,0.9 22.4,-22.5 8.9,-29.3c3.2,-0.4 6.4,0.4 9.1,2.2c-3.4,-6 -9.7,-9.7 -16.5,-9.7c-0.4,0 -0.9,0 -1.3,0.1c-3.8,0.3 -7.4,1.7 -10.4,4c0.6,0.5 1.2,1.1 2.6,2.5C31.2,30 37.8,32.6 37.8,32.9z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="7001.537"
+ android:centerX="48591.727"
+ android:centerY="-42357.273"
+ android:type="radial">
+ <item android:offset="0.07" android:color="#FF9358FC"/>
+ <item android:offset="0.13" android:color="#FF9857F8"/>
+ <item android:offset="0.21" android:color="#FFA755EB"/>
+ <item android:offset="0.3" android:color="#FFBF52D7"/>
+ <item android:offset="0.39" android:color="#FFE14EBA"/>
+ <item android:offset="0.42" android:color="#FFEF4CAF"/>
+ <item android:offset="0.74" android:color="#FFFF7583"/>
+ <item android:offset="0.97" android:color="#FFFFB753"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M37.8,32.9c-0.1,0.9 -3.4,4.2 -4.5,4.2c-10.7,0 -12.5,6.5 -12.5,6.5c0.5,5.5 4.3,10 8.9,12.4c0.2,0.1 0.4,0.2 0.6,0.3c0.4,0.2 0.7,0.3 1.1,0.5c1.6,0.6 3.2,0.9 4.9,0.9c18.8,0.9 22.4,-22.5 8.9,-29.3c3.2,-0.4 6.4,0.4 9.1,2.2c-3.4,-6 -9.7,-9.7 -16.5,-9.7c-0.4,0 -0.9,0 -1.3,0.1c-3.8,0.3 -7.4,1.7 -10.4,4c0.6,0.5 1.2,1.1 2.6,2.5C31.2,30 37.8,32.6 37.8,32.9z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="3709.5586"
+ android:centerX="35664.355"
+ android:centerY="-66523.125"
+ android:type="radial">
+ <item android:offset="0.22" android:color="#4CFFB653"/>
+ <item android:offset="0.34" android:color="#7FFF807A"/>
+ <item android:offset="0.44" android:color="#7AFF7781"/>
+ <item android:offset="0.57" android:color="#6DFF5C94"/>
+ <item android:offset="0.64" android:color="#66FF4AA2"/>
+ <item android:offset="0.86" android:color="#4C9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M24.3,23.7c0.3,0.2 0.6,0.4 0.8,0.5c-0.9,-3 -0.9,-6.2 -0.1,-9.2c-3.5,1.7 -6.6,4.1 -9.1,7C16.1,22.1 21.5,22 24.3,23.7z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="26.918232"
+ android:centerX="35.00132"
+ android:centerY="5.440992"
+ android:type="radial">
+ <item android:offset="0.43" android:color="#99291D4F"/>
+ <item android:offset="1" android:color="#99291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M0.4,41.1C3.3,58.3 18.8,71.5 36.5,72c16.4,0.5 26.8,-9.1 31.1,-18.4c3.7,-8 4.1,-17.2 1.2,-25.5v0c1.3,8.8 -3.1,17.2 -10,23l0,0.1c-13.5,11 -26.5,6.7 -29.1,4.9c-0.2,-0.1 -0.4,-0.2 -0.5,-0.3C21.2,52 18,44.8 18.7,38.6c-3.8,0.1 -7.3,-2.2 -8.9,-5.6c4.2,-2.6 9.5,-2.8 13.9,-0.6c4.5,2 9.5,2.2 14.2,0.6c0,-0.3 -6.6,-2.9 -9.1,-5.4c-1.4,-1.4 -2,-2 -2.6,-2.5c-0.3,-0.3 -0.6,-0.5 -1,-0.7c-0.2,-0.2 -0.5,-0.3 -0.8,-0.5c-2.8,-1.8 -8.2,-1.7 -8.4,-1.7h0c-1.5,-1.9 -1.4,-8.2 -1.3,-9.5c-0.4,0.2 -0.9,0.4 -1.3,0.7c-1.3,0.9 -2.6,2 -3.7,3.2c-1.3,1.3 -2.5,2.7 -3.5,4.2C3.7,24.1 2,28 1.1,32.1C1,32.2 -0.3,38.1 0.4,41.1z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="114.84505"
+ android:centerX="56.18952"
+ android:centerY="-11.632805"
+ android:type="radial">
+ <item android:offset="0.41" android:color="#FF20123A"/>
+ <item android:offset="0.59" android:color="#FC23143E"/>
+ <item android:offset="0.69" android:color="#F72B194C"/>
+ <item android:offset="0.77" android:color="#EF392163"/>
+ <item android:offset="0.85" android:color="#E04E2D84"/>
+ <item android:offset="0.92" android:color="#D1693DAF"/>
+ <item android:offset="0.98" android:color="#BA8950E3"/>
+ <item android:offset="1" android:color="#B29658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M51,26.2c1.4,1.4 2.6,2.9 3.5,4.6c0.2,0.2 0.4,0.3 0.6,0.5c8.5,7.9 4.1,19.1 3.7,19.9c6.9,-5.7 11.4,-14.2 10,-23C64.6,17.5 57.4,13.2 51.5,3.8c-0.3,-0.5 -0.6,-0.9 -0.9,-1.4c-0.2,-0.3 -0.3,-0.5 -0.4,-0.8c-0.2,-0.5 -0.4,-1 -0.6,-1.5c0,-0.1 0,-0.1 -0.1,-0.1c0,0 0,0 -0.1,0l0,0l0,0C47.9,0.7 39.3,14.4 51,26.2z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="88.66885"
+ android:centerX="43.281612"
+ android:centerY="-0.46737376"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF20123A"/>
+ <item android:offset="0.23" android:color="#FF21133C"/>
+ <item android:offset="0.33" android:color="#FF261543"/>
+ <item android:offset="0.41" android:color="#FF2E1A50"/>
+ <item android:offset="0.47" android:color="#FF392162"/>
+ <item android:offset="0.53" android:color="#FF472979"/>
+ <item android:offset="0.58" android:color="#FF593496"/>
+ <item android:offset="0.63" android:color="#FF6E40B8"/>
+ <item android:offset="0.67" android:color="#FF854EDE"/>
+ <item android:offset="0.69" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M51,26.2c1.4,1.4 2.6,2.9 3.5,4.6c0.2,0.2 0.4,0.3 0.6,0.5c8.5,7.9 4.1,19.1 3.7,19.9c6.9,-5.7 11.4,-14.2 10,-23C64.6,17.5 57.4,13.2 51.5,3.8c-0.3,-0.5 -0.6,-0.9 -0.9,-1.4c-0.2,-0.3 -0.3,-0.5 -0.4,-0.8c-0.2,-0.5 -0.4,-1 -0.6,-1.5c0,-0.1 0,-0.1 -0.1,-0.1c0,0 0,0 -0.1,0l0,0l0,0C47.9,0.7 39.3,14.4 51,26.2z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="52.1597"
+ android:startX="69.115"
+ android:endY="43.1719"
+ android:endX="65.3299"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF2451F0"/>
+ <item android:offset="0.1" android:color="#DD2349D8"/>
+ <item android:offset="0.35" android:color="#8E2236A1"/>
+ <item android:offset="0.57" android:color="#51212675"/>
+ <item android:offset="0.76" android:color="#26211B55"/>
+ <item android:offset="0.91" android:color="#0A201541"/>
+ <item android:offset="1" android:color="#0020123A"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M55.1,31.2c-0.2,-0.2 -0.4,-0.3 -0.6,-0.5c-0.1,-0.1 -0.2,-0.1 -0.2,-0.2c-2.7,-1.8 -5.9,-2.6 -9.1,-2.2c13.6,6.8 9.9,30.2 -8.9,29.3c-1.7,-0.1 -3.3,-0.4 -4.9,-0.9c-0.4,-0.1 -0.7,-0.3 -1.1,-0.5c-0.2,-0.1 -0.4,-0.2 -0.6,-0.3l0,0c2.6,1.8 15.6,6.2 29.1,-4.9l0,-0.1C59.1,50.3 63.6,39.1 55.1,31.2z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="92.36497"
+ android:centerX="34.3407"
+ android:centerY="15.422501"
+ android:type="radial">
+ <item android:offset="0.36" android:color="#FF291D4F"/>
+ <item android:offset="0.83" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M20.8,43.6c0,0 1.7,-6.5 12.5,-6.5c1.2,0 4.5,-3.2 4.5,-4.2c-4.6,1.7 -9.7,1.5 -14.2,-0.6c-4.4,-2.2 -9.7,-2 -13.9,0.6c1.6,3.5 5.1,5.7 8.9,5.6C18,44.8 21.2,52 29.1,55.7c0.2,0.1 0.3,0.2 0.5,0.3C25.1,53.6 21.3,49.1 20.8,43.6z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="78.47465"
+ android:centerX="51.122955"
+ android:centerY="21.305746"
+ android:type="radial">
+ <item android:offset="0.09" android:color="#FF291D4F"/>
+ <item android:offset="0.44" android:color="#C1291D4F"/>
+ <item android:offset="0.63" android:color="#99291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M72.6,26.2c-1.6,-3.9 -5,-8.2 -7.6,-9.6c1.9,3.6 3.1,7.5 3.8,11.5v0.1C64.6,17.5 57.4,13.2 51.4,3.8c-0.3,-0.5 -0.6,-0.9 -0.9,-1.4c-0.2,-0.3 -0.3,-0.5 -0.4,-0.8c-0.2,-0.5 -0.4,-1 -0.6,-1.5c0,-0.1 0,-0.1 -0.1,-0.1c0,0 0,0 -0.1,0l0,0l0,0l0,0c-9.5,5.6 -12.7,15.8 -13,21c0.4,0 0.9,-0.1 1.3,-0.1c6.8,0 13.2,3.7 16.5,9.7c-2.7,-1.8 -5.9,-2.6 -9.1,-2.2c13.6,6.8 9.9,30.2 -8.9,29.3c-1.7,-0.1 -3.3,-0.4 -4.9,-0.9c-0.4,-0.1 -0.7,-0.3 -1.1,-0.5c-0.2,-0.1 -0.4,-0.2 -0.6,-0.3l0,0c-0.2,-0.1 -0.4,-0.2 -0.5,-0.3c0.2,0.1 0.3,0.2 0.5,0.3c-4.6,-2.4 -8.4,-6.9 -8.9,-12.4c0,0 1.7,-6.5 12.5,-6.5c1.2,0 4.5,-3.2 4.5,-4.2c0,-0.3 -6.6,-2.9 -9.1,-5.4c-1.4,-1.4 -2,-2 -2.6,-2.5c-0.3,-0.3 -0.6,-0.5 -1,-0.7c-0.9,-3 -0.9,-6.2 -0.1,-9.2c-3.5,1.7 -6.6,4.1 -9.1,7h0c-1.5,-1.9 -1.4,-8.2 -1.3,-9.5c-0.4,0.2 -0.9,0.4 -1.3,0.7c-1.3,0.9 -2.6,2 -3.7,3.2c-1.3,1.3 -2.5,2.7 -3.5,4.2l0,0C3.7,24.1 2,28 1,32.1c0,0.1 0,0.2 -0.1,0.2c-0.1,0.3 -0.4,2 -0.4,2.4C0.3,36.5 0.1,38.2 0,40v0.2C0,61 16.8,77.9 37.6,78C56,78 71.8,64.8 74.9,46.6c0.1,-0.5 0.1,-1 0.2,-1.5C75.8,38.7 75,32.2 72.6,26.2zM68.8,28.1L68.8,28.1z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="11.8271"
+ android:startX="66.9152"
+ android:endY="65.0791"
+ android:endX="13.5465"
+ android:type="linear">
+ <item android:offset="0.3" android:color="#CC291D4F"/>
+ <item android:offset="0.55" android:color="#44291D4F"/>
+ <item android:offset="0.66" android:color="#00291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M37.8,32.9c-0.1,0.9 -3.4,4.2 -4.5,4.2c-10.7,0 -12.5,6.5 -12.5,6.5c0.5,5.5 4.3,10 8.9,12.4c0.2,0.1 0.4,0.2 0.6,0.3c0.4,0.2 0.7,0.3 1.1,0.5c1.6,0.6 3.2,0.9 4.9,0.9c18.8,0.9 22.4,-22.5 8.9,-29.3c3.2,-0.4 6.4,0.4 9.1,2.2c-3.4,-6 -9.7,-9.7 -16.5,-9.7c-0.4,0 -0.9,0 -1.3,0.1c-3.8,0.3 -7.4,1.7 -10.4,4c0.6,0.5 1.2,1.1 2.6,2.5C31.2,30 37.7,32.6 37.8,32.9z"
+ android:strokeAlpha="0.95"
+ android:fillAlpha="0.95">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="37.381927"
+ android:centerX="35.228424"
+ android:centerY="68.89644"
+ android:type="radial">
+ <item android:offset="0.29" android:color="#FF0060DF"/>
+ <item android:offset="0.42" android:color="#FF2357E1"/>
+ <item android:offset="0.6" android:color="#FF4F4CE3"/>
+ <item android:offset="0.75" android:color="#FF6B45E4"/>
+ <item android:offset="0.83" android:color="#FF7542E5"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M37.8,32.9c-0.1,0.9 -3.4,4.2 -4.5,4.2c-10.7,0 -12.5,6.5 -12.5,6.5c0.5,5.5 4.3,10 8.9,12.4c0.2,0.1 0.4,0.2 0.6,0.3c0.4,0.2 0.7,0.3 1.1,0.5c1.6,0.6 3.2,0.9 4.9,0.9c18.8,0.9 22.4,-22.5 8.9,-29.3c3.2,-0.4 6.4,0.4 9.1,2.2c-3.4,-6 -9.7,-9.7 -16.5,-9.7c-0.4,0 -0.9,0 -1.3,0.1c-3.8,0.3 -7.4,1.7 -10.4,4c0.6,0.5 1.2,1.1 2.6,2.5C31.2,30 37.7,32.6 37.8,32.9z"
+ android:strokeAlpha="0.95"
+ android:fillAlpha="0.95">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="19.836147"
+ android:centerX="35.574802"
+ android:centerY="29.11398"
+ android:type="radial">
+ <item android:offset="0.21" android:color="#0045278D"/>
+ <item android:offset="0.25" android:color="#0F44268A"/>
+ <item android:offset="0.73" android:color="#96371F6F"/>
+ <item android:offset="0.96" android:color="#CC321C64"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+</vector>
diff --git a/mobile/android/focus-android/app/src/nightly/res/drawable/wordmark2.xml b/mobile/android/focus-android/app/src/nightly/res/drawable/wordmark2.xml
new file mode 100644
index 0000000000..ce348bd3ae
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/drawable/wordmark2.xml
@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="293dp"
+ android:height="66dp"
+ android:viewportWidth="293"
+ android:viewportHeight="66">
+ <path
+ android:pathData="M60.753,21.844C59.381,18.548 56.604,14.983 54.423,13.857C56.198,17.338 57.226,20.83 57.618,23.435C57.618,23.435 57.618,23.453 57.618,23.487C54.05,14.594 48.001,11.006 43.06,3.198C42.81,2.804 42.561,2.408 42.311,1.99C42.171,1.752 42.061,1.541 41.963,1.337C41.759,0.941 41.601,0.522 41.493,0.089C41.493,0.069 41.486,0.049 41.473,0.033C41.46,0.017 41.441,0.007 41.421,0.004C41.402,-0.001 41.382,-0.001 41.362,0.004L41.346,0.013L41.324,0.025L41.336,0.008C33.41,4.652 30.721,13.238 30.474,17.534C27.307,17.751 24.28,18.917 21.786,20.881C21.525,20.66 21.252,20.454 20.968,20.264C20.249,17.747 20.219,15.084 20.88,12.552C17.638,14.028 15.117,16.361 13.285,18.421H13.27C12.019,16.838 12.108,11.61 12.178,10.519C12.163,10.452 11.247,10.996 11.13,11.078C10.026,11.866 8.995,12.75 8.047,13.719C6.968,14.813 5.982,15.996 5.1,17.254C3.071,20.13 1.632,23.38 0.866,26.816C0.851,26.883 0.839,26.955 0.824,27.024C0.764,27.301 0.55,28.691 0.512,28.993C0.512,29.016 0.512,29.038 0.512,29.062C0.236,30.499 0.064,31.954 0,33.416C0,33.469 0,33.523 0,33.577C0,51.003 14.127,65.13 31.552,65.13C47.158,65.13 60.117,53.799 62.653,38.916C62.707,38.513 62.75,38.107 62.803,37.7C63.427,32.287 62.731,26.6 60.753,21.844ZM24.386,46.539C24.536,46.609 24.673,46.689 24.824,46.755L24.845,46.768C24.692,46.697 24.539,46.621 24.386,46.539ZM57.627,23.498V23.468C57.627,23.478 57.627,23.49 57.627,23.502V23.498Z"
+ android:fillColor="#9658F9"/>
+ <path
+ android:pathData="M60.753,21.844C59.381,18.549 56.604,14.983 54.423,13.857C56.198,17.338 57.226,20.83 57.618,23.435C57.618,23.435 57.618,23.435 57.618,23.465C57.618,23.495 57.618,23.487 57.618,23.499C60.595,31.57 58.966,39.777 56.635,44.794C53.019,52.553 44.267,60.507 30.571,60.119C15.767,59.7 2.726,48.714 0.292,34.326C-0.157,32.057 0.292,30.905 0.515,29.063C0.243,30.483 0.139,30.893 0.003,33.416C0.003,33.469 0.003,33.523 0.003,33.577C0.003,51.003 14.13,65.13 31.556,65.13C47.161,65.13 60.12,53.799 62.656,38.916C62.71,38.513 62.753,38.107 62.805,37.7C63.427,32.288 62.73,26.6 60.753,21.844Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="65.7774"
+ android:centerX="54.1563"
+ android:centerY="7.22856"
+ android:type="radial">
+ <item android:offset="0.13" android:color="#FF291D4F"/>
+ <item android:offset="0.56" android:color="#FF21153C"/>
+ <item android:offset="0.89" android:color="#FF1D1133"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M60.903,21.844C59.531,18.549 56.754,14.983 54.573,13.857C56.348,17.338 57.375,20.83 57.768,23.435C57.768,23.435 57.768,23.435 57.768,23.465C57.768,23.495 57.768,23.487 57.768,23.499C60.744,31.57 59.116,39.777 56.785,44.794C53.169,52.553 44.417,60.507 30.721,60.119C15.917,59.7 2.876,48.714 0.442,34.326C-0.007,32.057 0.442,30.905 0.665,29.063C0.393,30.483 0.289,30.893 0.153,33.416C0.153,33.469 0.153,33.523 0.153,33.577C0.153,51.003 14.28,65.13 31.705,65.13C47.311,65.13 60.27,53.799 62.806,38.916C62.86,38.513 62.903,38.107 62.955,37.7C63.577,32.288 62.88,26.6 60.903,21.844Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="65.7774"
+ android:centerX="30.8785"
+ android:centerY="33.5593"
+ android:type="radial">
+ <item android:offset="0.15" android:color="#FF20123A"/>
+ <item android:offset="0.22" android:color="#EF22143E"/>
+ <item android:offset="0.28" android:color="#BC271C4A"/>
+ <item android:offset="0.34" android:color="#6B30285F"/>
+ <item android:offset="0.38" android:color="#19393473"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M45.417,25.553C45.485,25.601 45.549,25.649 45.612,25.702C44.82,24.297 43.834,23.01 42.683,21.88C32.875,12.073 40.112,0.609 41.335,0.031L41.347,0.014C33.422,4.658 30.733,13.244 30.486,17.54C30.854,17.515 31.22,17.483 31.594,17.483C37.51,17.479 42.661,20.732 45.417,25.553Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="47.6539"
+ android:centerX="38.0504"
+ android:centerY="-7.69847"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF291D4F"/>
+ <item android:offset="0.08" android:color="#FF2B1E53"/>
+ <item android:offset="0.16" android:color="#FF33225E"/>
+ <item android:offset="0.23" android:color="#FF3F2971"/>
+ <item android:offset="0.31" android:color="#FF50328C"/>
+ <item android:offset="0.38" android:color="#FF673EAF"/>
+ <item android:offset="0.46" android:color="#FF824DD9"/>
+ <item android:offset="0.5" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M31.614,27.515C31.563,28.3 28.79,31.007 27.819,31.007C18.847,31.007 17.391,36.434 17.391,36.434C17.789,41.006 20.971,44.768 24.823,46.761C24.999,46.852 25.177,46.933 25.355,47.015C25.664,47.152 25.974,47.279 26.282,47.394C27.604,47.861 28.988,48.128 30.388,48.185C46.117,48.924 49.16,29.383 37.812,23.709C40.718,23.202 43.735,24.372 45.42,25.556C42.661,20.736 37.509,17.482 31.594,17.482C31.22,17.482 30.854,17.513 30.486,17.539C27.319,17.755 24.291,18.921 21.798,20.885C22.278,21.293 22.822,21.836 23.965,22.964C26.11,25.07 31.603,27.254 31.614,27.515Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="5860.67"
+ android:centerX="40673.2"
+ android:centerY="-35377"
+ android:type="radial">
+ <item android:offset="0.07" android:color="#FF9358FC"/>
+ <item android:offset="0.13" android:color="#FF9857F8"/>
+ <item android:offset="0.21" android:color="#FFA755EB"/>
+ <item android:offset="0.3" android:color="#FFBF52D7"/>
+ <item android:offset="0.39" android:color="#FFE14EBA"/>
+ <item android:offset="0.42" android:color="#FFEF4CAF"/>
+ <item android:offset="0.74" android:color="#FFFF7583"/>
+ <item android:offset="0.97" android:color="#FFFFB753"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M31.614,27.515C31.563,28.3 28.79,31.007 27.819,31.007C18.847,31.007 17.391,36.434 17.391,36.434C17.789,41.006 20.971,44.768 24.823,46.761C24.999,46.852 25.177,46.933 25.355,47.015C25.664,47.152 25.974,47.279 26.282,47.394C27.604,47.861 28.988,48.128 30.388,48.185C46.117,48.924 49.16,29.383 37.812,23.709C40.718,23.202 43.735,24.372 45.42,25.556C42.661,20.736 37.509,17.482 31.594,17.482C31.22,17.482 30.854,17.513 30.486,17.539C27.319,17.755 24.291,18.921 21.798,20.885C22.278,21.293 22.822,21.836 23.965,22.964C26.11,25.07 31.603,27.254 31.614,27.515Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="3104.73"
+ android:centerX="29848.9"
+ android:centerY="-55562.8"
+ android:type="radial">
+ <item android:offset="0.22" android:color="#4CFFB653"/>
+ <item android:offset="0.34" android:color="#7FFF807A"/>
+ <item android:offset="0.44" android:color="#7AFF7781"/>
+ <item android:offset="0.57" android:color="#6DFF5C94"/>
+ <item android:offset="0.64" android:color="#66FF4AA2"/>
+ <item android:offset="0.86" android:color="#4C9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M20.332,19.832C20.586,19.999 20.797,20.132 20.985,20.265C20.266,17.749 20.235,15.086 20.896,12.554C17.655,14.029 15.134,16.363 13.302,18.423C13.453,18.42 18.029,18.337 20.332,19.832Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="22.532"
+ android:centerX="29.2893"
+ android:centerY="4.53676"
+ android:type="radial">
+ <item android:offset="0.43" android:color="#99291D4F"/>
+ <item android:offset="1" android:color="#99291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M0.295,34.326C2.729,48.707 15.77,59.7 30.574,60.119C44.278,60.507 53.03,52.553 56.639,44.794C58.975,39.777 60.598,31.57 57.621,23.499V23.469C57.621,23.445 57.621,23.432 57.621,23.439C57.621,23.447 57.621,23.457 57.621,23.492C58.74,30.8 55.024,37.881 49.212,42.665L49.195,42.707C37.871,51.927 27.036,48.271 24.842,46.773C24.689,46.7 24.536,46.623 24.383,46.543C17.782,43.389 15.054,37.373 15.639,32.216C10.065,32.216 8.164,27.512 8.164,27.512C8.164,27.512 13.168,23.944 19.765,27.048C25.874,29.922 31.611,27.514 31.611,27.514C31.601,27.256 26.108,25.072 23.972,22.963C22.829,21.835 22.285,21.291 21.804,20.884C21.543,20.663 21.27,20.458 20.986,20.267C20.799,20.139 20.588,20 20.333,19.834C18.031,18.336 13.455,18.421 13.303,18.424H13.288C12.038,16.841 12.126,11.613 12.196,10.523C12.181,10.455 11.264,10.999 11.148,11.081C10.044,11.869 9.013,12.753 8.065,13.722C6.986,14.816 6,15.999 5.119,17.257C3.089,20.133 1.65,23.383 0.884,26.819C0.863,26.883 -0.258,31.784 0.295,34.326Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="96.1316"
+ android:centerX="47.0008"
+ android:centerY="-9.75345"
+ android:type="radial">
+ <item android:offset="0.41" android:color="#FF20123A"/>
+ <item android:offset="0.59" android:color="#FC23143E"/>
+ <item android:offset="0.69" android:color="#F72B194C"/>
+ <item android:offset="0.77" android:color="#EF392163"/>
+ <item android:offset="0.85" android:color="#E04E2D84"/>
+ <item android:offset="0.92" android:color="#D1693DAF"/>
+ <item android:offset="0.98" android:color="#BA8950E3"/>
+ <item android:offset="1" android:color="#B29658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M42.687,21.874C43.838,23.004 44.824,24.291 45.615,25.697C45.789,25.828 45.952,25.957 46.09,26.084C53.243,32.675 49.495,42 49.215,42.664C55.027,37.87 58.743,30.795 57.624,23.49C54.056,14.597 48.007,11.009 43.066,3.201C42.816,2.807 42.567,2.411 42.317,1.993C42.178,1.755 42.067,1.544 41.969,1.34C41.765,0.944 41.607,0.525 41.499,0.092C41.5,0.072 41.493,0.052 41.479,0.036C41.466,0.02 41.447,0.01 41.427,0.007C41.408,0.002 41.388,0.002 41.369,0.007L41.352,0.016L41.33,0.028C40.115,0.608 32.878,12.067 42.687,21.874Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="74.0572"
+ android:centerX="36.2388"
+ android:centerY="-0.408313"
+ android:type="radial">
+ <item android:offset="0" android:color="#FF20123A"/>
+ <item android:offset="0.23" android:color="#FF21133C"/>
+ <item android:offset="0.33" android:color="#FF261543"/>
+ <item android:offset="0.41" android:color="#FF2E1A50"/>
+ <item android:offset="0.47" android:color="#FF392162"/>
+ <item android:offset="0.53" android:color="#FF472979"/>
+ <item android:offset="0.58" android:color="#FF593496"/>
+ <item android:offset="0.63" android:color="#FF6E40B8"/>
+ <item android:offset="0.67" android:color="#FF854EDE"/>
+ <item android:offset="0.69" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M42.687,21.874C43.838,23.004 44.824,24.291 45.615,25.697C45.789,25.828 45.952,25.957 46.09,26.084C53.243,32.675 49.495,42 49.215,42.664C55.027,37.87 58.743,30.795 57.624,23.49C54.056,14.597 48.007,11.009 43.066,3.201C42.816,2.807 42.567,2.411 42.317,1.993C42.178,1.755 42.067,1.544 41.969,1.34C41.765,0.944 41.607,0.525 41.499,0.092C41.5,0.072 41.493,0.052 41.479,0.036C41.466,0.02 41.447,0.01 41.427,0.007C41.408,0.002 41.388,0.002 41.369,0.007L41.352,0.016L41.33,0.028C40.115,0.608 32.878,12.067 42.687,21.874Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="43.5654"
+ android:startX="57.8294"
+ android:endY="36.0548"
+ android:endX="54.6732"
+ android:type="linear">
+ <item android:offset="0" android:color="#FF2451F0"/>
+ <item android:offset="0.1" android:color="#DD2349D8"/>
+ <item android:offset="0.35" android:color="#8E2236A1"/>
+ <item android:offset="0.57" android:color="#51212675"/>
+ <item android:offset="0.76" android:color="#26211B55"/>
+ <item android:offset="0.91" android:color="#0A201541"/>
+ <item android:offset="1" android:color="#0020123A"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M46.09,26.085C45.952,25.957 45.79,25.829 45.615,25.697C45.552,25.649 45.488,25.601 45.42,25.547C43.735,24.364 40.718,23.194 37.812,23.7C49.161,29.374 46.114,48.915 30.389,48.176C28.988,48.119 27.604,47.852 26.283,47.385C25.974,47.27 25.664,47.143 25.355,47.006C25.177,46.924 24.999,46.843 24.824,46.752L24.845,46.765C27.039,48.263 37.877,51.92 49.198,42.7L49.215,42.658C49.495,42 53.243,32.677 46.09,26.085Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="77.3145"
+ android:centerX="28.7588"
+ android:centerY="12.8834"
+ android:type="radial">
+ <item android:offset="0.36" android:color="#FF291D4F"/>
+ <item android:offset="0.83" android:color="#FF9658F9"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M17.391,36.431C17.391,36.431 18.847,31.004 27.819,31.004C28.79,31.004 31.564,28.297 31.614,27.512C31.614,27.512 25.877,29.921 19.768,27.046C13.177,23.942 8.167,27.51 8.167,27.51C8.167,27.51 10.067,32.214 15.641,32.214C15.057,37.371 17.785,43.387 24.386,46.542C24.536,46.612 24.672,46.692 24.824,46.757C20.971,44.765 17.789,40.996 17.391,36.431Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="65.6875"
+ android:centerX="42.8258"
+ android:centerY="17.7784"
+ android:type="radial">
+ <item android:offset="0.09" android:color="#FF291D4F"/>
+ <item android:offset="0.44" android:color="#C1291D4F"/>
+ <item android:offset="0.63" android:color="#99291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M60.753,21.844C59.381,18.548 56.604,14.983 54.423,13.857C56.198,17.338 57.226,20.83 57.618,23.435C57.618,23.435 57.618,23.453 57.618,23.487C54.05,14.594 48.001,11.006 43.06,3.198C42.81,2.804 42.561,2.408 42.311,1.99C42.171,1.752 42.061,1.541 41.963,1.337C41.759,0.941 41.601,0.522 41.493,0.089C41.493,0.069 41.486,0.049 41.473,0.033C41.46,0.017 41.441,0.007 41.421,0.004C41.402,-0.001 41.382,-0.001 41.362,0.004L41.346,0.013L41.324,0.025L41.335,0.008C33.41,4.652 30.721,13.238 30.474,17.534C30.843,17.509 31.208,17.477 31.582,17.477C37.498,17.477 42.649,20.731 45.408,25.551C43.723,24.368 40.706,23.198 37.8,23.704C49.149,29.378 46.102,48.919 30.377,48.181C28.976,48.123 27.592,47.857 26.271,47.39C25.962,47.274 25.652,47.147 25.344,47.011C25.165,46.928 24.987,46.847 24.812,46.756L24.833,46.77C24.68,46.697 24.527,46.62 24.374,46.54C24.524,46.611 24.66,46.69 24.812,46.756C20.959,44.764 17.771,41.001 17.379,36.429C17.379,36.429 18.835,31.002 27.808,31.002C28.778,31.002 31.552,28.295 31.602,27.511C31.591,27.253 26.098,25.069 23.962,22.96C22.819,21.832 22.276,21.288 21.795,20.881C21.534,20.66 21.261,20.454 20.977,20.264C20.258,17.747 20.228,15.084 20.889,12.552C17.647,14.028 15.126,16.361 13.294,18.421H13.279C12.028,16.838 12.117,11.61 12.187,10.519C12.172,10.452 11.255,10.996 11.139,11.078C10.035,11.866 9.004,12.75 8.056,13.719C6.977,14.813 5.991,15.996 5.109,17.254C3.08,20.13 1.641,23.38 0.875,26.816C0.86,26.883 0.848,26.955 0.833,27.024C0.773,27.301 0.506,28.71 0.469,29.013C0.225,30.47 0.069,31.94 0.003,33.416C0.003,33.469 0.003,33.523 0.003,33.577C0.003,51.003 14.13,65.13 31.556,65.13C47.161,65.13 60.12,53.799 62.656,38.916C62.71,38.513 62.753,38.107 62.805,37.7C63.427,32.287 62.73,26.6 60.753,21.844ZM57.623,23.465C57.623,23.475 57.623,23.487 57.623,23.499V23.465Z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:startY="9.81846"
+ android:startX="55.9464"
+ android:endY="54.3881"
+ android:endX="11.3783"
+ android:type="linear">
+ <item android:offset="0.3" android:color="#CC291D4F"/>
+ <item android:offset="0.55" android:color="#44291D4F"/>
+ <item android:offset="0.66" android:color="#00291D4F"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M31.596,27.481C31.545,28.265 28.773,30.972 27.802,30.972C18.829,30.972 17.373,36.399 17.373,36.399C17.772,40.97 20.953,44.732 24.806,46.725C24.981,46.814 25.16,46.897 25.338,46.978C25.646,47.114 25.956,47.241 26.265,47.357C27.586,47.825 28.97,48.092 30.371,48.149C46.099,48.886 49.143,29.348 37.795,23.676C40.701,23.17 43.717,24.338 45.403,25.523C42.644,20.702 37.492,17.45 31.577,17.45C31.202,17.45 30.837,17.48 30.468,17.506C27.302,17.722 24.274,18.888 21.78,20.852C22.261,21.26 22.805,21.803 23.948,22.93C26.094,25.041 31.586,27.225 31.596,27.481Z"
+ android:strokeAlpha="0.95"
+ android:fillAlpha="0.95">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="31.2907"
+ android:centerX="29.4921"
+ android:centerY="57.5471"
+ android:type="radial">
+ <item android:offset="0.29" android:color="#FF0060DF"/>
+ <item android:offset="0.42" android:color="#FF2357E1"/>
+ <item android:offset="0.6" android:color="#FF4F4CE3"/>
+ <item android:offset="0.75" android:color="#FF6B45E4"/>
+ <item android:offset="0.83" android:color="#FF7542E5"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M31.596,27.481C31.545,28.265 28.773,30.972 27.802,30.972C18.829,30.972 17.373,36.399 17.373,36.399C17.772,40.97 20.953,44.732 24.806,46.725C24.981,46.814 25.16,46.897 25.338,46.978C25.646,47.114 25.956,47.241 26.265,47.357C27.586,47.825 28.97,48.092 30.371,48.149C46.099,48.886 49.143,29.348 37.795,23.676C40.701,23.17 43.717,24.338 45.403,25.523C42.644,20.702 37.492,17.45 31.577,17.45C31.202,17.45 30.837,17.48 30.468,17.506C27.302,17.722 24.274,18.888 21.78,20.852C22.261,21.26 22.805,21.803 23.948,22.93C26.094,25.041 31.586,27.225 31.596,27.481Z"
+ android:strokeAlpha="0.95"
+ android:fillAlpha="0.95">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="16.6019"
+ android:centerX="29.7947"
+ android:centerY="24.2702"
+ android:type="radial">
+ <item android:offset="0.21" android:color="#0045278D"/>
+ <item android:offset="0.25" android:color="#0F44268A"/>
+ <item android:offset="0.73" android:color="#96371F6F"/>
+ <item android:offset="0.96" android:color="#CC321C64"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:pathData="M79.175,8.188H95.202V12.518H83.767V18.396H95.202V22.696H83.767V32.149H79.175V8.188ZM100.632,6.512C100.987,6.5 101.342,6.561 101.672,6.692C102.003,6.823 102.303,7.021 102.553,7.274C102.804,7.527 102.999,7.83 103.126,8.162C103.254,8.494 103.311,8.849 103.294,9.205C103.302,9.915 103.027,10.599 102.531,11.107C102.034,11.614 101.357,11.904 100.646,11.912C100.295,11.916 99.946,11.851 99.62,11.72C99.293,11.589 98.996,11.395 98.745,11.149C98.237,10.652 97.947,9.975 97.939,9.265C97.926,8.905 97.986,8.546 98.116,8.21C98.246,7.874 98.443,7.568 98.695,7.31C98.946,7.053 99.248,6.85 99.581,6.712C99.914,6.575 100.271,6.507 100.632,6.512ZM98.388,14.425H102.92V32.149H98.388V14.425ZM116.06,19.346C115.414,18.857 114.626,18.594 113.816,18.598C111.984,18.598 110.93,19.779 110.93,22.337V32.149H106.442V14.425H110.743V16.982C111.062,16.134 111.646,15.411 112.409,14.921C113.171,14.431 114.071,14.199 114.975,14.26C116.042,14.263 117.083,14.583 117.967,15.18L116.06,19.346ZM117.929,23.384C117.895,22.167 118.107,20.955 118.551,19.82C118.995,18.686 119.663,17.653 120.516,16.783C121.368,15.913 122.386,15.223 123.511,14.755C124.635,14.287 125.843,14.05 127.061,14.058C132.378,14.058 136.155,17.798 136.155,23.092V24.962H122.357C122.85,27.206 124.6,28.701 127.248,28.701C128.155,28.73 129.051,28.498 129.831,28.032C130.61,27.567 131.24,26.888 131.645,26.076L135.422,28.32C133.552,31.072 130.89,32.523 127.113,32.523C121.37,32.515 117.922,28.671 117.922,23.384H117.929ZM122.417,21.38H131.742C131.256,19.136 129.417,17.872 127.016,17.872C125.962,17.833 124.928,18.161 124.09,18.801C123.252,19.441 122.663,20.353 122.424,21.38H122.417ZM137.276,14.425H140.462V13.535C140.462,8.711 142.497,6.707 146.961,6.707H148.494V10.611H147.215C145.114,10.611 144.65,11.358 144.65,13.535V14.425H148.494V18.493H144.755V32.149H140.417V18.493H137.276V14.425ZM149.392,23.287C149.372,22.066 149.599,20.855 150.058,19.724C150.518,18.593 151.2,17.566 152.065,16.705C152.93,15.844 153.959,15.165 155.092,14.711C156.225,14.256 157.437,14.034 158.658,14.058C159.87,14.058 161.07,14.297 162.189,14.761C163.309,15.224 164.326,15.904 165.183,16.761C166.04,17.618 166.72,18.636 167.184,19.755C167.648,20.875 167.886,22.075 167.886,23.287C167.886,24.499 167.648,25.699 167.184,26.818C166.72,27.938 166.04,28.955 165.183,29.812C164.326,30.669 163.309,31.349 162.189,31.813C161.07,32.277 159.87,32.515 158.658,32.515C157.432,32.558 156.21,32.348 155.069,31.9C153.927,31.452 152.889,30.775 152.02,29.91C151.15,29.045 150.467,28.011 150.012,26.872C149.557,25.733 149.341,24.513 149.377,23.287H149.392ZM163.511,23.287C163.511,21.998 162.999,20.761 162.087,19.85C161.176,18.938 159.939,18.426 158.65,18.426C157.361,18.426 156.125,18.938 155.213,19.85C154.301,20.761 153.789,21.998 153.789,23.287C153.789,24.576 154.301,25.813 155.213,26.724C156.125,27.636 157.361,28.148 158.65,28.148C159.939,28.148 161.176,27.636 162.087,26.724C162.999,25.813 163.511,24.576 163.511,23.287ZM174.019,23.092L167.617,14.425H172.942L176.703,19.847L180.577,14.402H185.812L179.306,23.032L186.141,32.126H180.854L176.614,26.353L172.515,32.126H167.191L174.019,23.092Z"
+ android:strokeAlpha="0.8"
+ android:fillColor="@color/contrastColor"/>
+ android:fillAlpha="0.8"/>
+ <path
+ android:pathData="M211.815,9.263V6.511H196.141V31.96H199.013V20.944H211.815V18.153H199.013V9.263H211.815Z"
+ android:strokeAlpha="0.8"
+ android:fillColor="@color/contrastColor"/>
+ android:fillAlpha="0.8"/>
+ <path
+ android:pathData="M224.189,12.744C222.924,12.731 221.67,12.976 220.499,13.465C219.329,13.953 218.266,14.675 217.373,15.589C216.481,16.502 215.776,17.588 215.302,18.783C214.827,19.978 214.591,21.257 214.609,22.546C214.573,23.854 214.794,25.156 215.26,26.376C215.726,27.595 216.427,28.707 217.322,29.645C218.217,30.584 219.288,31.33 220.471,31.839C221.653,32.348 222.925,32.611 224.209,32.611C225.493,32.611 226.764,32.348 227.947,31.839C229.13,31.33 230.2,30.584 231.095,29.645C231.99,28.707 232.692,27.595 233.158,26.376C233.624,25.156 233.845,23.854 233.808,22.546C233.825,21.254 233.588,19.972 233.11,18.775C232.633,17.578 231.925,16.49 231.028,15.577C230.132,14.663 229.065,13.942 227.89,13.455C226.715,12.969 225.457,12.727 224.189,12.744ZM224.189,29.62C223.285,29.627 222.389,29.447 221.555,29.092C220.721,28.736 219.966,28.212 219.336,27.551C218.706,26.89 218.214,26.105 217.89,25.245C217.566,24.385 217.416,23.467 217.45,22.546C217.419,21.622 217.571,20.701 217.897,19.838C218.223,18.975 218.716,18.187 219.346,17.522C219.977,16.858 220.732,16.329 221.568,15.968C222.403,15.607 223.301,15.42 224.209,15.42C225.116,15.42 226.014,15.607 226.85,15.968C227.685,16.329 228.441,16.858 229.071,17.522C229.702,18.187 230.195,18.975 230.521,19.838C230.846,20.701 230.999,21.622 230.968,22.546C230.997,23.469 230.843,24.389 230.515,25.249C230.187,26.11 229.691,26.895 229.058,27.555C228.425,28.216 227.667,28.74 226.831,29.094C225.994,29.449 225.095,29.628 224.189,29.62Z"
+ android:strokeAlpha="0.8"
+ android:fillColor="@color/contrastColor"/>
+ android:fillAlpha="0.8"/>
+ <path
+ android:pathData="M252.307,25.298C251.834,26.576 250.991,27.677 249.891,28.456C248.79,29.235 247.483,29.655 246.143,29.66C245.228,29.66 244.321,29.475 243.477,29.115C242.632,28.755 241.866,28.228 241.223,27.564C240.58,26.9 240.073,26.112 239.731,25.247C239.39,24.381 239.22,23.455 239.232,22.522C239.208,21.595 239.367,20.673 239.698,19.809C240.029,18.945 240.527,18.157 241.162,17.492C241.796,16.827 242.555,16.298 243.393,15.936C244.231,15.574 245.132,15.387 246.042,15.385C247.374,15.371 248.678,15.772 249.78,16.534C250.881,17.297 251.728,18.385 252.206,19.652L254.766,18.502C254.037,16.771 252.817,15.301 251.262,14.281C249.708,13.261 247.89,12.737 246.042,12.776C244.73,12.696 243.415,12.891 242.18,13.348C240.944,13.806 239.814,14.517 238.859,15.437C237.903,16.358 237.143,17.468 236.625,18.699C236.107,19.93 235.843,21.257 235.847,22.596C235.852,23.936 236.126,25.26 236.653,26.488C237.18,27.715 237.948,28.819 238.91,29.733C239.872,30.646 241.007,31.348 242.246,31.797C243.484,32.245 244.8,32.43 246.112,32.34C247.996,32.385 249.848,31.841 251.42,30.782C252.992,29.723 254.208,28.2 254.906,26.416L252.307,25.298Z"
+ android:strokeAlpha="0.8"
+ android:fillColor="@color/contrastColor"/>
+ android:fillAlpha="0.8"/>
+ <path
+ android:pathData="M271.437,13.133V23.553C271.437,27.185 269.009,29.731 265.756,29.731C262.191,29.731 260.308,27.352 260.308,23.696V13.133H257.468V23.839C257.468,29.136 260.207,32.34 265.25,32.34C266.497,32.372 267.73,32.067 268.824,31.456C269.918,30.844 270.833,29.948 271.476,28.859V31.96H274.207V13.133H271.437Z"
+ android:strokeAlpha="0.8"
+ android:fillColor="@color/contrastColor"/>
+ android:fillAlpha="0.8"/>
+ <path
+ android:pathData="M285.576,21.079C282.696,20.492 280.478,20.104 280.478,18.153C280.478,16.408 281.638,15.155 284.478,15.155C285.462,15.113 286.442,15.32 287.328,15.757C288.215,16.194 288.982,16.848 289.56,17.661L291.895,16.075C291.007,14.964 289.875,14.082 288.591,13.501C287.306,12.919 285.905,12.655 284.502,12.728C280.12,12.728 277.622,15.274 277.622,18.2C277.622,21.967 281.015,22.84 284.198,23.466C286.899,24.029 289.428,24.441 289.428,26.535C289.428,28.423 287.926,29.81 285.046,29.81C283.88,29.861 282.72,29.606 281.678,29.07C280.636,28.534 279.746,27.735 279.093,26.749L276.641,28.375C278.283,30.754 280.922,32.34 284.961,32.34C289.786,32.34 292.245,29.454 292.245,26.488C292.245,22.618 288.782,21.705 285.576,21.079Z"
+ android:strokeAlpha="0.8"
+ android:fillColor="@color/contrastColor"/>
+ android:fillAlpha="0.8"/>
+ <path
+ android:pathData="M89.516,53.405L82.516,42.805H79.175V58.375H82.175V47.425L89.415,58.375H92.485V42.795H89.485L89.516,53.405ZM96.035,58.405H99.175V42.795H96.035V58.405ZM110.036,52.345H115.136C114.898,53.358 114.308,54.254 113.471,54.871C112.633,55.489 111.603,55.788 110.566,55.715C109.908,55.745 109.251,55.644 108.632,55.419C108.014,55.194 107.446,54.849 106.961,54.404C106.476,53.959 106.083,53.423 105.806,52.826C105.529,52.229 105.373,51.583 105.346,50.925C105.346,50.825 105.346,50.715 105.346,50.615C105.33,49.271 105.847,47.976 106.784,47.013C107.721,46.049 109.002,45.496 110.346,45.475H110.506C111.336,45.442 112.16,45.623 112.901,45.999C113.641,46.375 114.273,46.935 114.736,47.625L117.356,45.855C116.553,44.81 115.514,43.97 114.322,43.407C113.131,42.843 111.823,42.572 110.506,42.615C109.455,42.581 108.408,42.753 107.424,43.123C106.44,43.493 105.539,44.053 104.771,44.771C104.004,45.489 103.385,46.352 102.951,47.309C102.517,48.266 102.275,49.3 102.241,50.35C102.206,51.401 102.378,52.448 102.748,53.432C103.118,54.416 103.678,55.317 104.396,56.085C105.115,56.852 105.977,57.471 106.934,57.905C107.892,58.339 108.925,58.581 109.976,58.615H110.586C111.586,58.647 112.584,58.482 113.52,58.128C114.457,57.775 115.315,57.24 116.045,56.554C116.775,55.869 117.363,55.046 117.775,54.134C118.187,53.221 118.415,52.236 118.446,51.235C118.456,51.099 118.456,50.962 118.446,50.825V49.525H110.016L110.036,52.345ZM131.036,49.105H124.556V42.795H121.436V58.375H124.556V52.025H131.036V58.385H134.126V42.795H131.036V49.105ZM137.036,45.605H141.496V58.405H144.546V45.575H148.966V42.795H137.036V45.605ZM155.036,42.825H151.866V58.375H162.376V55.445H154.976L155.036,42.825ZM171.816,42.825L168.176,49.025L164.546,42.835H161.146L166.596,51.835V58.405H169.716V51.905L175.176,42.835L171.816,42.825Z"
+ android:fillColor="@color/contrastColor"/>
+</vector>
diff --git a/mobile/android/focus-android/app/src/nightly/res/mipmap-anydpi-v26/ic_launcher.xml b/mobile/android/focus-android/app/src/nightly/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000000..1b3296f41d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@drawable/ic_launcher_background"/>
+ <foreground android:drawable="@drawable/ic_launcher_foreground"/>
+</adaptive-icon> \ No newline at end of file
diff --git a/mobile/android/focus-android/app/src/nightly/res/mipmap-hdpi/ic_launcher.png b/mobile/android/focus-android/app/src/nightly/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000000..57266ce663
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/nightly/res/mipmap-hdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/nightly/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..200d210606
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/mipmap-hdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/nightly/res/mipmap-mdpi/ic_launcher.png b/mobile/android/focus-android/app/src/nightly/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000000..6035524f91
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/nightly/res/mipmap-mdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/nightly/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..92290c2ddd
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/mipmap-mdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/nightly/res/mipmap-xhdpi/ic_launcher.png b/mobile/android/focus-android/app/src/nightly/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000000..e62f9490c2
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/nightly/res/mipmap-xhdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/nightly/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..c8a9087966
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/mipmap-xhdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/nightly/res/mipmap-xxhdpi/ic_launcher.png b/mobile/android/focus-android/app/src/nightly/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000..efbf73d970
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/nightly/res/mipmap-xxhdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/nightly/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..a241232589
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/mipmap-xxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher.png b/mobile/android/focus-android/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000..40f1e0d060
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher_round.png b/mobile/android/focus-android/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..00c87c538d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/mobile/android/focus-android/app/src/nightly/res/values-night/colors.xml b/mobile/android/focus-android/app/src/nightly/res/values-night/colors.xml
new file mode 100644
index 0000000000..38c1ed8f3e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/nightly/res/values-night/colors.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <color name="splash_screen_background">#f0f0f4</color>
+</resources>
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/BrowserFragmentTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/BrowserFragmentTest.kt
new file mode 100644
index 0000000000..dd89505a94
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/BrowserFragmentTest.kt
@@ -0,0 +1,108 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus
+
+import android.content.Context
+import android.graphics.Bitmap
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import android.view.View
+import mozilla.components.concept.engine.EngineSession
+import mozilla.components.concept.engine.EngineView
+import mozilla.components.concept.engine.selection.SelectionActionDelegate
+import mozilla.components.support.test.robolectric.testContext
+import org.junit.Assert.assertNotNull
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mockito.spy
+import org.mockito.Mockito.verify
+import org.mockito.Mockito.verifyNoMoreInteractions
+import org.mozilla.focus.databinding.FragmentBrowserBinding
+import org.mozilla.focus.widget.ResizableKeyboardCoordinatorLayout
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class BrowserFragmentTest {
+ @Test
+ fun testEngineViewInflationAndParentInteraction() {
+ val layoutInflater = LayoutInflater.from(testContext)
+
+ // Intercept the inflation process
+ layoutInflater.factory2 = object : LayoutInflater.Factory2 {
+ override fun onCreateView(
+ parent: View?,
+ name: String,
+ context: Context,
+ attrs: AttributeSet,
+ ): View? {
+ // Inflate a DummyEngineView when trying to inflate an EngineView
+ if (name == EngineView::class.java.name) {
+ return DummyEngineView(testContext)
+ }
+
+ // For other types of views, let the system handle it
+ return null
+ }
+
+ override fun onCreateView(name: String, context: Context, attrs: AttributeSet): View? {
+ return onCreateView(null, name, context, attrs)
+ }
+ }
+
+ val binding = FragmentBrowserBinding.inflate(LayoutInflater.from(testContext))
+ val engineView: EngineView = binding.engineView
+
+ assertNotNull(engineView)
+
+ // Get the layout parent of the EngineView
+ val engineViewParent = spy(
+ (engineView as View).parent as ResizableKeyboardCoordinatorLayout,
+ )
+
+ assertNotNull(engineViewParent)
+
+ engineViewParent.requestDisallowInterceptTouchEvent(true)
+
+ // Verify that the EngineView's parent does not propagate requestDisallowInterceptTouchEvent
+ verify(engineViewParent).requestDisallowInterceptTouchEvent(true)
+ // If propagated, an additional ViewGroup.requestDisallowInterceptTouchEvent would have been registered.
+ verifyNoMoreInteractions(engineViewParent)
+ }
+}
+
+/**
+ * Dummy implementation of the EngineView interface.
+ */
+class DummyEngineView(context: Context) : View(context), EngineView {
+ init {
+ id = R.id.engineView
+ }
+
+ override fun render(session: EngineSession) {
+ // no-op
+ }
+
+ override fun release() {
+ // no-op
+ }
+
+ override fun captureThumbnail(onFinish: (Bitmap?) -> Unit) {
+ // no-op
+ }
+
+ override fun setVerticalClipping(clippingHeight: Int) {
+ // no-op
+ }
+
+ override fun setDynamicToolbarMaxHeight(height: Int) {
+ // no-op
+ }
+
+ override fun setActivityContext(context: Context?) {
+ // no-op
+ }
+
+ override var selectionActionDelegate: SelectionActionDelegate? = null
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/TestFocusApplication.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/TestFocusApplication.kt
new file mode 100644
index 0000000000..7892c347b6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/TestFocusApplication.kt
@@ -0,0 +1,95 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus
+
+import android.content.Context
+import android.util.AttributeSet
+import android.util.JsonReader
+import android.util.JsonWriter
+import mozilla.components.browser.engine.gecko.profiler.Profiler
+import mozilla.components.concept.engine.DefaultSettings
+import mozilla.components.concept.engine.Engine
+import mozilla.components.concept.engine.EngineSession
+import mozilla.components.concept.engine.EngineSessionState
+import mozilla.components.concept.engine.EngineView
+import mozilla.components.concept.engine.Settings
+import mozilla.components.concept.engine.utils.EngineVersion
+import mozilla.components.concept.engine.webextension.WebExtensionDelegate
+import mozilla.components.concept.fetch.Client
+import mozilla.components.concept.fetch.Request
+import mozilla.components.concept.fetch.Response
+import org.json.JSONObject
+
+/**
+ * [FocusApplication] override for unit tests. This allows us to override some parameters and inputs
+ * since an application object gets created without much control otherwise.
+ */
+class TestFocusApplication : FocusApplication() {
+ override val components: Components by lazy {
+ Components(this, engineOverride = FakeEngine(), clientOverride = FakeClient())
+ }
+
+ override fun initializeNimbus() = Unit
+}
+
+/**
+ * Empty [FocusApplication] override for unit tests.
+ */
+class EmptyFocusApplication : FocusApplication() {
+ override fun onCreate() {
+ //
+ }
+}
+
+// Borrowed this from AC unit tests. This is something we should consider moving to support-test, so
+// that everyone who needs an Engine in unit tests can use it. It also allows us to enhance this mock
+// and maybe do some actual things that help in tests. :)
+class FakeEngine : Engine {
+ override val version: EngineVersion
+ get() = throw NotImplementedError("Not needed for test")
+
+ override fun createView(context: Context, attrs: AttributeSet?): EngineView =
+ throw UnsupportedOperationException()
+
+ override fun createSession(private: Boolean, contextId: String?): EngineSession =
+ throw UnsupportedOperationException()
+
+ override fun createSessionState(json: JSONObject) = FakeEngineSessionState()
+
+ override fun createSessionStateFrom(reader: JsonReader): EngineSessionState {
+ reader.beginObject()
+ reader.endObject()
+ return FakeEngineSessionState()
+ }
+
+ override fun name(): String =
+ throw UnsupportedOperationException()
+
+ override fun speculativeConnect(url: String) =
+ throw UnsupportedOperationException()
+
+ override val profiler: Profiler
+ get() = throw NotImplementedError("Not needed for test")
+
+ override val settings: Settings = DefaultSettings()
+
+ override fun registerWebExtensionDelegate(webExtensionDelegate: WebExtensionDelegate) {
+ // Intentionally empty to avoid "UnsupportedOperationException: Web extension support
+ // is not available in this engine" error in unit tests
+ }
+}
+
+class FakeEngineSessionState : EngineSessionState {
+ override fun writeTo(writer: JsonWriter) {
+ writer.beginObject()
+ writer.endObject()
+ }
+}
+
+class FakeClient : Client() {
+ override fun fetch(request: Request): Response {
+ throw UnsupportedOperationException()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/animation/TransitionDrawableGroupTest.java b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/animation/TransitionDrawableGroupTest.java
new file mode 100644
index 0000000000..d21307eb4b
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/animation/TransitionDrawableGroupTest.java
@@ -0,0 +1,42 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, you can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.animation;
+
+import android.graphics.drawable.TransitionDrawable;
+
+import org.junit.Test;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+public class TransitionDrawableGroupTest {
+ @Test
+ public void testStartIsCalledOnAllItems() {
+ final TransitionDrawable transitionDrawable1 = mock(TransitionDrawable.class);
+ final TransitionDrawable transitionDrawable2 = mock(TransitionDrawable.class);
+
+ final TransitionDrawableGroup group = new TransitionDrawableGroup(
+ transitionDrawable1, transitionDrawable2);
+
+ group.startTransition(2500);
+
+ verify(transitionDrawable1).startTransition(2500);
+ verify(transitionDrawable2).startTransition(2500);
+ }
+
+ @Test
+ public void testResetIsCalledOnAllItems() {
+ final TransitionDrawable transitionDrawable1 = mock(TransitionDrawable.class);
+ final TransitionDrawable transitionDrawable2 = mock(TransitionDrawable.class);
+
+ final TransitionDrawableGroup group = new TransitionDrawableGroup(
+ transitionDrawable1, transitionDrawable2);
+
+ group.resetTransition();
+
+ verify(transitionDrawable1).resetTransition();
+ verify(transitionDrawable2).resetTransition();
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/biometrics/BiometricAuthenticationFragmentTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/biometrics/BiometricAuthenticationFragmentTest.kt
new file mode 100644
index 0000000000..7c19fcdb91
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/biometrics/BiometricAuthenticationFragmentTest.kt
@@ -0,0 +1,70 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.biometrics
+
+import android.content.Context
+import android.os.Build
+import androidx.fragment.app.FragmentActivity
+import androidx.fragment.app.FragmentManager
+import androidx.fragment.app.FragmentTransaction
+import mozilla.components.lib.auth.AuthenticationDelegate
+import mozilla.components.lib.auth.BiometricPromptAuth
+import mozilla.components.support.test.mock
+import org.junit.Assert.assertEquals
+import org.junit.Before
+import org.junit.Test
+import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.never
+import org.mockito.Mockito.spy
+import org.mockito.Mockito.verify
+import org.robolectric.annotation.Config
+
+class BiometricAuthenticationFragmentTest {
+ private lateinit var biometricPromptAuth: BiometricPromptAuth
+ private lateinit var fragment: BiometricAuthenticationFragment
+ private val activity: FragmentActivity = mock()
+ private val testContext: Context = mock()
+
+ private val fragmentManger: FragmentManager = mock()
+ private val fragmentTransaction: FragmentTransaction = mock()
+
+ @Before
+ fun setup() {
+ fragment = spy(BiometricAuthenticationFragment())
+ doReturn(testContext).`when`(fragment).context
+ doReturn(activity).`when`(fragment).requireActivity()
+ doReturn(fragmentManger).`when`(activity).supportFragmentManager
+ doReturn(fragmentTransaction).`when`(fragmentManger).beginTransaction()
+ biometricPromptAuth = spy(
+ BiometricPromptAuth(
+ testContext,
+ fragment,
+ object : AuthenticationDelegate {
+ override fun onAuthError(errorText: String) {
+ }
+ override fun onAuthFailure() {
+ }
+ override fun onAuthSuccess() {
+ }
+ },
+ ),
+ )
+ }
+
+ @Config(sdk = [Build.VERSION_CODES.LOLLIPOP])
+ @Test
+ fun `GIVEN biometric authentication fragment WHEN show biometric prompt is called and can use feature returns false THEN request authentication is not called`() {
+ fragment.showBiometricPrompt(biometricPromptAuth, "title", "subtitle")
+
+ verify(biometricPromptAuth, never()).requestAuthentication("title", "subtitle")
+ }
+
+ @Test
+ fun `GIVEN biometric authentication fragment WHEN on Auth Error is called THEN biometricErrorText should be updated`() {
+ fragment.onAuthError("Fingerprint operation canceled by user.")
+
+ assertEquals(fragment.biometricErrorText.value, "Fingerprint operation canceled by user.")
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/BrowserToolbarIntegrationTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/BrowserToolbarIntegrationTest.kt
new file mode 100644
index 0000000000..179fafeb2c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/BrowserToolbarIntegrationTest.kt
@@ -0,0 +1,234 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.browser.integration
+
+import android.view.View
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.test.UnconfinedTestDispatcher
+import kotlinx.coroutines.test.resetMain
+import kotlinx.coroutines.test.setMain
+import mozilla.components.browser.state.action.ContentAction
+import mozilla.components.browser.state.state.BrowserState
+import mozilla.components.browser.state.state.SecurityInfoState
+import mozilla.components.browser.state.state.TabSessionState
+import mozilla.components.browser.state.state.createTab
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.browser.toolbar.BrowserToolbar
+import mozilla.components.browser.toolbar.display.DisplayToolbar.Indicators
+import mozilla.components.support.test.ext.joinBlocking
+import mozilla.components.support.test.mock
+import mozilla.components.support.test.robolectric.testContext
+import mozilla.components.support.test.whenever
+import org.junit.After
+import org.junit.Assert.assertEquals
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Mockito.doNothing
+import org.mockito.Mockito.spy
+import org.mockito.Mockito.times
+import org.mockito.Mockito.verify
+import org.mockito.MockitoAnnotations
+import org.mozilla.focus.fragment.BrowserFragment
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class BrowserToolbarIntegrationTest {
+ private val testDispatcher = UnconfinedTestDispatcher()
+ private val selectedTab = createSecureTab()
+
+ private lateinit var toolbar: BrowserToolbar
+
+ @Mock
+ private lateinit var fragment: BrowserFragment
+
+ private lateinit var browserToolbarIntegration: BrowserToolbarIntegration
+
+ @Mock
+ private lateinit var fragmentView: View
+
+ private lateinit var store: BrowserStore
+
+ @Before
+ @ExperimentalCoroutinesApi
+ fun setUp() {
+ MockitoAnnotations.openMocks(this)
+ Dispatchers.setMain(testDispatcher)
+ store = spy(
+ BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(selectedTab),
+ selectedTabId = selectedTab.id,
+ ),
+ ),
+ )
+
+ toolbar = BrowserToolbar(testContext)
+
+ whenever(fragment.resources).thenReturn(testContext.resources)
+ whenever(fragment.context).thenReturn(testContext)
+ whenever(fragment.view).thenReturn(fragmentView)
+ whenever(fragment.requireContext()).thenReturn(testContext)
+
+ browserToolbarIntegration = spy(
+ BrowserToolbarIntegration(
+ store = store,
+ toolbar = toolbar,
+ fragment = fragment,
+ controller = mock(),
+ sessionUseCases = mock(),
+ customTabsUseCases = mock(),
+ onUrlLongClicked = { false },
+ eraseActionListener = {},
+ tabCounterListener = {},
+ inTesting = true,
+ ),
+ )
+ }
+
+ @After
+ @ExperimentalCoroutinesApi
+ fun tearDown() {
+ Dispatchers.resetMain()
+ }
+
+ @Test
+ fun `WHEN starting THEN observe security changes`() {
+ doNothing().`when`(browserToolbarIntegration).observerSecurityIndicatorChanges()
+
+ browserToolbarIntegration.start()
+
+ verify(browserToolbarIntegration).observerSecurityIndicatorChanges()
+ }
+
+ @Test
+ fun `WHEN start method is called THEN observe erase tabs CFR changes`() {
+ doNothing().`when`(browserToolbarIntegration).observeEraseCfr()
+
+ browserToolbarIntegration.start()
+
+ verify(browserToolbarIntegration).observeEraseCfr()
+ }
+
+ @Test
+ fun `WHEN start method is called THEN observe tracking protection CFR changes`() {
+ doNothing().`when`(browserToolbarIntegration).observeTrackingProtectionCfr()
+
+ browserToolbarIntegration.start()
+
+ verify(browserToolbarIntegration).observeTrackingProtectionCfr()
+ }
+
+ @Test
+ fun `WHEN stopping THEN stop tracking protection CFR changes`() {
+ doNothing().`when`(browserToolbarIntegration).stopObserverTrackingProtectionCfrChanges()
+
+ browserToolbarIntegration.stop()
+
+ verify(browserToolbarIntegration).stopObserverTrackingProtectionCfrChanges()
+ }
+
+ @Test
+ fun `WHEN stopping THEN stop erase tabs CFR changes`() {
+ doNothing().`when`(browserToolbarIntegration).stopObserverEraseTabsCfrChanges()
+
+ browserToolbarIntegration.stop()
+
+ verify(browserToolbarIntegration).stopObserverEraseTabsCfrChanges()
+ }
+
+ @Test
+ fun `WHEN stopping THEN stop observe security changes`() {
+ doNothing().`when`(browserToolbarIntegration).stopObserverSecurityIndicatorChanges()
+
+ browserToolbarIntegration.stop()
+
+ verify(browserToolbarIntegration).stopObserverSecurityIndicatorChanges()
+ }
+
+ @Test
+ fun `GIVEN an insecure site WHEN observing security changes THEN add the security icon`() {
+ browserToolbarIntegration.start()
+
+ updateSecurityStatus(secure = false)
+
+ verify(browserToolbarIntegration).addSecurityIndicator()
+ assertEquals(listOf(Indicators.SECURITY), toolbar.display.indicators)
+ }
+
+ @Test
+ fun `GIVEN an about site WHEN observing security changes THEN DO NOT add the security icon`() {
+ browserToolbarIntegration.start()
+
+ updateTabUrl("about:")
+
+ verify(browserToolbarIntegration, times(0)).addSecurityIndicator()
+ assertEquals(listOf(Indicators.TRACKING_PROTECTION), toolbar.display.indicators)
+ }
+
+ @Test
+ fun `GIVEN a secure site after a previous insecure site WHEN observing security changes THEN add the tracking protection icon`() {
+ browserToolbarIntegration.start()
+
+ updateSecurityStatus(secure = false)
+
+ verify(browserToolbarIntegration).addSecurityIndicator()
+
+ updateSecurityStatus(secure = true)
+
+ verify(browserToolbarIntegration).addTrackingProtectionIndicator()
+ assertEquals(listOf(Indicators.TRACKING_PROTECTION), toolbar.display.indicators)
+ }
+
+ @Test
+ fun `WHEN the integration starts THEN start the toolbarController`() {
+ browserToolbarIntegration.toolbarController = mock()
+
+ browserToolbarIntegration.start()
+
+ verify(browserToolbarIntegration.toolbarController).start()
+ }
+
+ @Test
+ fun `WHEN the integration stops THEN stop the toolbarController`() {
+ browserToolbarIntegration.toolbarController = mock()
+
+ browserToolbarIntegration.stop()
+
+ verify(browserToolbarIntegration.toolbarController).stop()
+ }
+
+ private fun updateSecurityStatus(secure: Boolean) {
+ store.dispatch(
+ ContentAction.UpdateSecurityInfoAction(
+ selectedTab.id,
+ SecurityInfoState(
+ secure = secure,
+ host = "mozilla.org",
+ issuer = "Mozilla",
+ ),
+ ),
+ ).joinBlocking()
+
+ testDispatcher.scheduler.advanceUntilIdle()
+ }
+
+ private fun updateTabUrl(url: String) {
+ store.dispatch(
+ ContentAction.UpdateUrlAction(selectedTab.id, url),
+ ).joinBlocking()
+
+ testDispatcher.scheduler.advanceUntilIdle()
+ }
+
+ private fun createSecureTab(): TabSessionState {
+ val tab = createTab("https://www.mozilla.org", id = "1")
+ return tab.copy(
+ content = tab.content.copy(securityInfo = SecurityInfoState(secure = true)),
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/FindInPageIntegrationTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/FindInPageIntegrationTest.kt
new file mode 100644
index 0000000000..21222e9e8c
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/FindInPageIntegrationTest.kt
@@ -0,0 +1,46 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.browser.integration
+
+import androidx.core.view.isVisible
+import mozilla.components.browser.state.state.ContentState
+import mozilla.components.browser.state.state.EngineState
+import mozilla.components.browser.state.state.SessionState
+import mozilla.components.browser.toolbar.BrowserToolbar
+import mozilla.components.feature.findinpage.view.FindInPageBar
+import mozilla.components.support.test.mock
+import mozilla.components.support.test.whenever
+import org.junit.Test
+import org.mockito.Mockito
+import org.mockito.Mockito.spy
+
+internal class FindInPageIntegrationTest {
+ // For ease of tests naming "find in page bar" is referred to as FIPB.
+ val toolbar: BrowserToolbar = mock()
+ val findInPageBar: FindInPageBar = mock()
+
+ @Test
+ fun `GIVEN FIPB not shown WHEN show is called THEN FIPB is shown`() {
+ val feature = spy(FindInPageIntegration(mock(), findInPageBar, toolbar, mock()))
+ val sessionState: SessionState = mock()
+ val contentState: ContentState = mock()
+ val engineState: EngineState = mock()
+ whenever(sessionState.content).thenReturn(contentState)
+ whenever(sessionState.engineState).thenReturn(engineState)
+
+ feature.show(sessionState)
+
+ Mockito.verify(findInPageBar).isVisible = true
+ }
+
+ @Test
+ fun `GIVEN FIPB is shown WHEN hide is called THEN FIPB is hidden`() {
+ val feature = spy(FindInPageIntegration(mock(), findInPageBar, toolbar, mock()))
+
+ feature.hide()
+
+ Mockito.verify(findInPageBar).isVisible = false
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/FullScreenIntegrationTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/FullScreenIntegrationTest.kt
new file mode 100644
index 0000000000..3f9d9270c4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/FullScreenIntegrationTest.kt
@@ -0,0 +1,374 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.browser.integration
+
+import android.app.Activity
+import android.content.res.Resources
+import android.view.View
+import android.view.Window
+import android.view.WindowManager
+import androidx.core.view.isVisible
+import mozilla.components.browser.engine.gecko.GeckoEngineView
+import mozilla.components.browser.toolbar.BrowserToolbar
+import mozilla.components.feature.prompts.dialog.FullScreenNotification
+import mozilla.components.feature.session.FullScreenFeature
+import mozilla.components.support.test.any
+import mozilla.components.support.test.mock
+import mozilla.components.support.test.robolectric.testContext
+import org.junit.Test
+import org.junit.jupiter.api.Assertions.assertEquals
+import org.junit.runner.RunWith
+import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.inOrder
+import org.mockito.Mockito.never
+import org.mockito.Mockito.spy
+import org.mockito.Mockito.times
+import org.mockito.Mockito.verify
+import org.mozilla.focus.ext.disableDynamicBehavior
+import org.mozilla.focus.ext.enableDynamicBehavior
+import org.mozilla.focus.ext.hide
+import org.mozilla.focus.ext.showAsFixed
+import org.mozilla.focus.utils.Settings
+import org.robolectric.Robolectric
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+internal class FullScreenIntegrationTest {
+ @Test
+ fun `WHEN the integration is started THEN start FullScreenFeature`() {
+ val feature: FullScreenFeature = mock()
+ val integration = FullScreenIntegration(
+ mock(),
+ mock(),
+ null,
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ ).apply {
+ this.feature = feature
+ }
+
+ integration.start()
+
+ verify(feature).start()
+ }
+
+ @Test
+ fun `WHEN the integration is stopped THEN stop FullScreenFeature`() {
+ val feature: FullScreenFeature = mock()
+ val integration = FullScreenIntegration(
+ mock(),
+ mock(),
+ null,
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ ).apply {
+ this.feature = feature
+ }
+
+ integration.stop()
+
+ verify(feature).stop()
+ }
+
+ @Test
+ fun `WHEN back is pressed THEN send this to the feature`() {
+ val feature: FullScreenFeature = mock()
+ val integration = FullScreenIntegration(
+ mock(),
+ mock(),
+ null,
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ ).apply {
+ this.feature = feature
+ }
+
+ integration.onBackPressed()
+
+ verify(feature).onBackPressed()
+ }
+
+ @Test
+ fun `WHEN the viewport changes THEN update layoutInDisplayCutoutMode`() {
+ val windowAttributes = WindowManager.LayoutParams()
+ val activityWindow: Window = mock()
+ val activity: Activity = mock()
+ doReturn(activityWindow).`when`(activity).window
+ doReturn(windowAttributes).`when`(activityWindow).attributes
+ val integration = FullScreenIntegration(
+ activity,
+ mock(),
+ null,
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ )
+
+ integration.viewportFitChanged(33)
+
+ assertEquals(33, windowAttributes.layoutInDisplayCutoutMode)
+ }
+
+ @Test
+ @Suppress("DEPRECATION")
+ fun `WHEN entering immersive mode THEN hide all system bars`() {
+ val decorView: View = mock()
+ val activityWindow: Window = mock()
+ val activity: Activity = mock()
+ val layoutParams: WindowManager.LayoutParams = mock()
+ doReturn(activityWindow).`when`(activity).window
+ doReturn(decorView).`when`(activityWindow).decorView
+ doReturn(layoutParams).`when`(activityWindow).attributes
+
+ val integration = FullScreenIntegration(
+ activity,
+ mock(),
+ null,
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ )
+
+ integration.switchToImmersiveMode()
+
+ // verify entering immersive mode
+ verify(decorView).systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN
+ verify(decorView).systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+ // verify that the immersive mode restoration is set as expected
+ verify(decorView).setOnApplyWindowInsetsListener(any())
+ }
+
+ @Test
+ @Suppress("DEPRECATION")
+ fun `GIVEN immersive mode WHEN exitImmersiveModeIfNeeded is called THEN show the system bars`() {
+ val decorView: View = mock()
+ val activityWindow: Window = mock()
+ val activity: Activity = mock()
+ val layoutParams: WindowManager.LayoutParams = mock()
+ doReturn(activityWindow).`when`(activity).window
+ doReturn(decorView).`when`(activityWindow).decorView
+ doReturn(layoutParams).`when`(activityWindow).attributes
+ val integration = FullScreenIntegration(
+ activity,
+ mock(),
+ null,
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ )
+
+ integration.exitImmersiveMode()
+ // Hiding the system bar hides the status and navigation bars.
+ // setSystemUiVisibility will be called twice by WindowInsetsControllerCompat
+ // once for setting the status bar and another for setting the navigation bar
+ verify(decorView, times(2)).systemUiVisibility
+ verify(decorView).setOnApplyWindowInsetsListener(null)
+ }
+
+ @Test
+ fun `GIVEN a11y is enabled WHEN enterBrowserFullscreen THEN hide the toolbar`() {
+ val toolbar: BrowserToolbar = mock()
+ val engineView: GeckoEngineView = mock()
+ doReturn(mock<View>()).`when`(engineView).asView()
+ val settings: Settings = mock()
+ doReturn(true).`when`(settings).isAccessibilityEnabled()
+ val integration = FullScreenIntegration(
+ mock(),
+ mock(),
+ null,
+ mock(),
+ settings,
+ toolbar,
+ mock(),
+ engineView,
+ mock(),
+ )
+
+ integration.enterBrowserFullscreen()
+
+ verify(toolbar).hide(engineView)
+ verify(toolbar, never()).collapse()
+ verify(toolbar, never()).disableDynamicBehavior(engineView)
+ }
+
+ @Test
+ fun `GIVEN a11y is disabled WHEN enterBrowserFullscreen THEN collapse and disable the dynamic toolbar`() {
+ val toolbar: BrowserToolbar = mock()
+ val engineView: GeckoEngineView = mock()
+ doReturn(mock<View>()).`when`(engineView).asView()
+ val settings: Settings = mock()
+ doReturn(false).`when`(settings).isAccessibilityEnabled()
+ val integration = FullScreenIntegration(
+ mock(),
+ mock(),
+ null,
+ mock(),
+ settings,
+ toolbar,
+ mock(),
+ engineView,
+ mock(),
+ )
+
+ integration.enterBrowserFullscreen()
+
+ verify(toolbar, never()).hide(engineView)
+ with(inOrder(toolbar)) {
+ verify(toolbar).collapse()
+ verify(toolbar).disableDynamicBehavior(engineView)
+ }
+ }
+
+ @Test
+ fun `GIVEN a11y is enabled WHEN exitBrowserFullscreen THEN show the toolbar`() {
+ val toolbar: BrowserToolbar = mock()
+ val engineView: GeckoEngineView = mock()
+ doReturn(mock<View>()).`when`(engineView).asView()
+ val settings: Settings = mock()
+ doReturn(true).`when`(settings).isAccessibilityEnabled()
+ val resources: Resources = mock()
+ val activity: Activity = mock()
+ doReturn(resources).`when`(activity).resources
+ val integration = FullScreenIntegration(
+ activity,
+ mock(),
+ null,
+ mock(),
+ settings,
+ toolbar,
+ mock(),
+ engineView,
+ mock(),
+ )
+
+ integration.exitBrowserFullscreen()
+
+ verify(toolbar).showAsFixed(activity, engineView)
+ verify(toolbar, never()).expand()
+ verify(toolbar, never()).enableDynamicBehavior(activity, engineView)
+ }
+
+ @Test
+ fun `GIVEN a11y is disabled WHEN exitBrowserFullscreen THEN enable the dynamic toolbar and expand it`() {
+ val toolbar: BrowserToolbar = mock()
+ val engineView: GeckoEngineView = mock()
+ doReturn(mock<View>()).`when`(engineView).asView()
+ val settings: Settings = mock()
+ doReturn(false).`when`(settings).isAccessibilityEnabled()
+ val resources: Resources = mock()
+ val activity: Activity = mock()
+ doReturn(resources).`when`(activity).resources
+ val integration = FullScreenIntegration(
+ activity,
+ mock(),
+ null,
+ mock(),
+ settings,
+ toolbar,
+ mock(),
+ engineView,
+ mock(),
+ )
+
+ integration.exitBrowserFullscreen()
+
+ verify(toolbar, never()).showAsFixed(activity, engineView)
+ with(inOrder(toolbar)) {
+ verify(toolbar).enableDynamicBehavior(activity, engineView)
+ verify(toolbar).expand()
+ }
+ }
+
+ @Test
+ fun `WHEN entering fullscreen THEN put browser in fullscreen, hide system bars and enter immersive mode`() {
+ val toolbar = BrowserToolbar(testContext)
+ val engineView: GeckoEngineView = mock()
+ doReturn(mock<View>()).`when`(engineView).asView()
+ val settings: Settings = mock()
+ doReturn(false).`when`(settings).isAccessibilityEnabled()
+ val activity = Robolectric.buildActivity(Activity::class.java).get()
+ val statusBar: View = mock()
+ val integration = spy(
+ FullScreenIntegration(
+ activity,
+ mock(),
+ null,
+ mock(),
+ settings,
+ toolbar,
+ statusBar,
+ engineView,
+ mock(),
+ ),
+ )
+
+ val fullScreenNotification = mock<FullScreenNotification>()
+ integration.fullScreenChanged(true, fullScreenNotification)
+
+ verify(integration).enterBrowserFullscreen()
+ verify(statusBar).isVisible = false
+ verify(fullScreenNotification).show(any())
+ verify(integration).switchToImmersiveMode()
+ }
+
+ @Test
+ fun `WHEN exiting fullscreen THEN put browser in fullscreen, hide system bars and enter immersive mode`() {
+ val toolbar: BrowserToolbar = mock()
+ val engineView: GeckoEngineView = mock()
+ doReturn(mock<View>()).`when`(engineView).asView()
+ val settings: Settings = mock()
+ doReturn(false).`when`(settings).isAccessibilityEnabled()
+ val resources: Resources = mock()
+ val activityWindow: Window = mock()
+ val decorView: View = mock()
+ val windowAttributes = WindowManager.LayoutParams()
+ val activity: Activity = mock()
+ doReturn(activityWindow).`when`(activity).window
+ doReturn(decorView).`when`(activityWindow).decorView
+ doReturn(windowAttributes).`when`(activityWindow).attributes
+ doReturn(resources).`when`(activity).resources
+ val statusBar: View = mock()
+ val integration = spy(
+ FullScreenIntegration(
+ activity,
+ mock(),
+ null,
+ mock(),
+ settings,
+ toolbar,
+ statusBar,
+ engineView,
+ mock(),
+ ),
+ )
+
+ integration.fullScreenChanged(false)
+
+ verify(integration).exitBrowserFullscreen()
+ verify(integration).exitImmersiveMode()
+ verify(statusBar).isVisible = true
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/InputToolbarIntegrationTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/InputToolbarIntegrationTest.kt
new file mode 100644
index 0000000000..c2ac323e70
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/browser/integration/InputToolbarIntegrationTest.kt
@@ -0,0 +1,82 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.browser.integration
+
+import android.view.View
+import kotlinx.coroutines.isActive
+import mozilla.components.browser.toolbar.BrowserToolbar
+import mozilla.components.support.test.ext.joinBlocking
+import mozilla.components.support.test.mock
+import mozilla.components.support.test.robolectric.testContext
+import mozilla.components.support.test.whenever
+import org.junit.Assert.assertFalse
+import org.junit.Assert.assertNotNull
+import org.junit.Assert.assertNull
+import org.junit.Assert.assertTrue
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.MockitoAnnotations
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.fragment.UrlInputFragment
+import org.mozilla.focus.input.InputToolbarIntegration
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.AppStore
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class InputToolbarIntegrationTest {
+ private lateinit var toolbar: BrowserToolbar
+
+ @Mock
+ private lateinit var fragment: UrlInputFragment
+
+ @Mock
+ private lateinit var fragmentView: View
+
+ private lateinit var inputToolbarIntegration: InputToolbarIntegration
+
+ private val appStore: AppStore = testContext.components.appStore
+
+ @Before
+ fun setUp() {
+ MockitoAnnotations.openMocks(this)
+
+ toolbar = BrowserToolbar(testContext)
+ whenever(fragment.resources).thenReturn(testContext.resources)
+ whenever(fragment.context).thenReturn(testContext)
+ whenever(fragment.view).thenReturn(fragmentView)
+
+ inputToolbarIntegration = InputToolbarIntegration(
+ toolbar,
+ fragment,
+ mock(),
+ mock(),
+ )
+ }
+
+ @Test
+ fun `GIVEN app fresh install WHEN input toolbar integration is starting THEN start browsing scope is populated`() {
+ appStore.dispatch(AppAction.ShowStartBrowsingCfrChange(true)).joinBlocking()
+
+ assertNull(inputToolbarIntegration.startBrowsingCfrScope)
+
+ inputToolbarIntegration.start()
+
+ assertNotNull(inputToolbarIntegration.startBrowsingCfrScope)
+ }
+
+ @Test
+ fun `GIVEN app fresh install WHEN input toolbar integration is stoping THEN start browsing scope is canceled`() {
+ inputToolbarIntegration.start()
+
+ assertTrue(inputToolbarIntegration.startBrowsingCfrScope?.isActive ?: true)
+
+ inputToolbarIntegration.stop()
+
+ assertFalse(inputToolbarIntegration.startBrowsingCfrScope?.isActive ?: false)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/cfr/CfrMiddlewareTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/cfr/CfrMiddlewareTest.kt
new file mode 100644
index 0000000000..72999a1748
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/cfr/CfrMiddlewareTest.kt
@@ -0,0 +1,127 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.cfr
+
+import mozilla.components.browser.state.action.ContentAction
+import mozilla.components.browser.state.action.TabListAction
+import mozilla.components.browser.state.action.TrackingProtectionAction
+import mozilla.components.browser.state.state.SecurityInfoState
+import mozilla.components.browser.state.state.TabSessionState
+import mozilla.components.browser.state.state.createTab
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.concept.engine.EngineSession
+import mozilla.components.concept.engine.content.blocking.Tracker
+import mozilla.components.support.test.ext.joinBlocking
+import mozilla.components.support.test.libstate.ext.waitUntilIdle
+import mozilla.components.support.test.robolectric.testContext
+import org.junit.Assert.assertFalse
+import org.junit.Assert.assertTrue
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.MockitoAnnotations
+import org.mozilla.focus.TestFocusApplication
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.nimbus.FocusNimbus
+import org.mozilla.focus.nimbus.Onboarding
+import org.mozilla.focus.state.AppStore
+import org.robolectric.RobolectricTestRunner
+import org.robolectric.annotation.Config
+
+@RunWith(RobolectricTestRunner::class)
+@Config(application = TestFocusApplication::class)
+class CfrMiddlewareTest {
+ private lateinit var onboardingExperiment: Onboarding
+ private val browserStore: BrowserStore = testContext.components.store
+ private val appStore: AppStore = testContext.components.appStore
+
+ @Before
+ fun setUp() {
+ MockitoAnnotations.openMocks(this)
+ onboardingExperiment = FocusNimbus.features.onboarding.value()
+ }
+
+ @Test
+ fun `GIVEN shouldShowCfrForTrackingProtection is true WHEN UpdateSecurityInfoAction is intercepted THEN showTrackingProtectionCfr is changed to true`() {
+ if (onboardingExperiment.isCfrEnabled) {
+ val updateSecurityInfoAction = ContentAction.UpdateSecurityInfoAction(
+ "1",
+ SecurityInfoState(
+ secure = true,
+ host = "test.org",
+ issuer = "Test",
+ ),
+ )
+ val trackerBlockedAction = TrackingProtectionAction.TrackerBlockedAction(
+ tabId = "1",
+ tracker = Tracker(
+ url = "test.org",
+ trackingCategories = listOf(EngineSession.TrackingProtectionPolicy.TrackingCategory.CRYPTOMINING),
+ cookiePolicies = listOf(EngineSession.TrackingProtectionPolicy.CookiePolicy.ACCEPT_NONE),
+ ),
+ )
+
+ browserStore.dispatch(updateSecurityInfoAction).joinBlocking()
+ browserStore.dispatch(trackerBlockedAction).joinBlocking()
+ appStore.waitUntilIdle()
+
+ assertTrue(appStore.state.showTrackingProtectionCfrForTab.getOrDefault("1", false))
+ }
+ }
+
+ @Test
+ fun `GIVEN insecure tab WHEN UpdateSecurityInfoAction is intercepted THEN showTrackingProtectionCfr is not changed to true`() {
+ if (onboardingExperiment.isCfrEnabled) {
+ val insecureTab = createTab(isSecure = false)
+ val updateSecurityInfoAction = ContentAction.UpdateSecurityInfoAction(
+ "1",
+ SecurityInfoState(
+ secure = false,
+ host = "test.org",
+ issuer = "Test",
+ ),
+ )
+
+ browserStore.dispatch(TabListAction.AddTabAction(insecureTab)).joinBlocking()
+ browserStore.dispatch(updateSecurityInfoAction).joinBlocking()
+ appStore.waitUntilIdle()
+
+ assertFalse(appStore.state.showTrackingProtectionCfrForTab.getOrDefault("1", false))
+ }
+ }
+
+ @Test
+ fun `GIVEN mozilla tab WHEN UpdateSecurityInfoAction is intercepted THEN showTrackingProtectionCfr is not changed to true`() {
+ if (onboardingExperiment.isCfrEnabled) {
+ val mozillaTab = createTab(id = "1", url = "https://www.mozilla.org")
+ val updateSecurityInfoAction = ContentAction.UpdateSecurityInfoAction(
+ "1",
+ SecurityInfoState(
+ secure = true,
+ host = "test.org",
+ issuer = "Test",
+ ),
+ )
+ browserStore.dispatch(TabListAction.AddTabAction(mozillaTab)).joinBlocking()
+ browserStore.dispatch(updateSecurityInfoAction).joinBlocking()
+ appStore.waitUntilIdle()
+
+ assertFalse(appStore.state.showTrackingProtectionCfrForTab.getOrDefault("1", false))
+ }
+ }
+
+ private fun createTab(
+ tabUrl: String = "https://www.test.org",
+ tabId: Int = 1,
+ isSecure: Boolean = true,
+ ): TabSessionState {
+ val tab = createTab(tabUrl, id = tabId.toString())
+ return tab.copy(
+ content = tab.content.copy(
+ private = true,
+ securityInfo = SecurityInfoState(secure = isSecure),
+ ),
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/contextmenu/ContextMenuCandidatesTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/contextmenu/ContextMenuCandidatesTest.kt
new file mode 100644
index 0000000000..71ebb4ead3
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/contextmenu/ContextMenuCandidatesTest.kt
@@ -0,0 +1,81 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.contextmenu
+
+import android.content.Context
+import mozilla.components.support.test.mock
+import mozilla.components.support.test.whenever
+import org.junit.Assert.assertEquals
+import org.junit.Before
+import org.junit.Test
+import org.mockito.ArgumentMatchers.anyInt
+
+class ContextMenuCandidatesTest {
+ private val testContext: Context = mock()
+
+ @Before
+ fun setUp() {
+ whenever(testContext.getString(anyInt())).thenReturn("dummy label")
+ }
+
+ @Test
+ fun `WHEN the tab is a custom tab THEN the proper context candidates are created `() {
+ // the expected list is the same as in a Fenix custom tab.
+ val expectedCandidatesIDs = listOf(
+ "mozac.feature.contextmenu.copy_link",
+ "mozac.feature.contextmenu.share_link",
+ "mozac.feature.contextmenu.save_image",
+ "mozac.feature.contextmenu.save_video",
+ "mozac.feature.contextmenu.copy_image_location",
+ )
+
+ val actualListIDs = ContextMenuCandidates.get(
+ testContext,
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ true,
+ ).map {
+ it.id
+ }
+
+ assertEquals(expectedCandidatesIDs, actualListIDs)
+ }
+
+ @Test
+ fun `WHEN the tab is NOT a custom tab THEN the proper context candidates are created `() {
+ val expectedCandidatesIDs = listOf(
+ "mozac.feature.contextmenu.open_in_private_tab",
+ "mozac.feature.contextmenu.copy_link",
+ "mozac.feature.contextmenu.download_link",
+ "mozac.feature.contextmenu.share_link",
+ "mozac.feature.contextmenu.share_image",
+ "mozac.feature.contextmenu.open_image_in_new_tab",
+ "mozac.feature.contextmenu.save_image",
+ "mozac.feature.contextmenu.save_video",
+ "mozac.feature.contextmenu.copy_image_location",
+ "mozac.feature.contextmenu.add_to_contact",
+ "mozac.feature.contextmenu.share_email",
+ "mozac.feature.contextmenu.copy_email_address",
+ "mozac.feature.contextmenu.open_in_external_app",
+ )
+
+ val actualListIDs = ContextMenuCandidates.get(
+ testContext,
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ mock(),
+ false,
+ ).map {
+ it.id
+ }
+
+ assertEquals(expectedCandidatesIDs, actualListIDs)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/experiments/NimbusSetupTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/experiments/NimbusSetupTest.kt
new file mode 100644
index 0000000000..b63db61fa9
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/experiments/NimbusSetupTest.kt
@@ -0,0 +1,25 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.experiments
+
+import org.junit.Assert.assertFalse
+import org.junit.Assert.assertTrue
+import org.junit.Test
+import org.mozilla.experiments.nimbus.internal.NimbusException
+
+class NimbusSetupTest {
+ @Test
+ fun `WHEN error is reportable THEN return true`() {
+ val error = NimbusException.IoException("IOException")
+
+ assertTrue(error.isReportableError())
+ }
+
+ @Test
+ fun `WHEN error is non-reportable THEN return false`() {
+ val error = NimbusException.ClientException("ResponseException")
+
+ assertFalse(error.isReportableError())
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/ext/BrowserToolbarTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/ext/BrowserToolbarTest.kt
new file mode 100644
index 0000000000..4407e03a76
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/ext/BrowserToolbarTest.kt
@@ -0,0 +1,80 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ext
+
+import androidx.coordinatorlayout.widget.CoordinatorLayout
+import androidx.core.view.isVisible
+import mozilla.components.browser.engine.gecko.GeckoEngineView
+import mozilla.components.browser.toolbar.BrowserToolbar
+import mozilla.components.support.test.robolectric.testContext
+import mozilla.components.ui.widgets.behavior.EngineViewClippingBehavior
+import mozilla.components.ui.widgets.behavior.EngineViewScrollingBehavior
+import org.junit.Assert.assertEquals
+import org.junit.Assert.assertNull
+import org.junit.Assert.assertTrue
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.spy
+import org.mockito.Mockito.verify
+import org.mozilla.focus.R
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+internal class BrowserToolbarTest {
+ private val parent = CoordinatorLayout(testContext)
+ private val toolbar = spy(BrowserToolbar(testContext))
+ private val engineView = spy(GeckoEngineView(testContext))
+ private val toolbarHeight = testContext.resources.getDimensionPixelSize(R.dimen.browser_toolbar_height)
+
+ init {
+ doReturn(toolbarHeight).`when`(toolbar).height
+ parent.addView(toolbar)
+ parent.addView(engineView)
+ }
+
+ @Test
+ fun `GIVEN a BrowserToolbar WHEN enableDynamicBehavior THEN set custom behaviors for the toolbar and engineView`() {
+ // Simulate previously having a fixed toolbar
+ (engineView.layoutParams as? CoordinatorLayout.LayoutParams)?.topMargin = 222
+
+ toolbar.enableDynamicBehavior(testContext, engineView)
+
+ assertTrue((toolbar.layoutParams as? CoordinatorLayout.LayoutParams)?.behavior is EngineViewScrollingBehavior)
+ assertTrue((engineView.layoutParams as? CoordinatorLayout.LayoutParams)?.behavior is EngineViewClippingBehavior)
+ assertEquals(0, (engineView.layoutParams as? CoordinatorLayout.LayoutParams)?.topMargin)
+ verify(engineView).setDynamicToolbarMaxHeight(toolbarHeight)
+ }
+
+ @Test
+ fun `GIVEN a BrowserToolbar WHEN disableDynamicBehavior THEN set null behaviors for the toolbar and engineView`() {
+ engineView.asView().translationY = 123f
+
+ toolbar.disableDynamicBehavior(engineView)
+
+ assertNull((toolbar.layoutParams as? CoordinatorLayout.LayoutParams)?.behavior)
+ assertNull((engineView.layoutParams as? CoordinatorLayout.LayoutParams)?.behavior)
+ assertEquals(0f, engineView.asView().translationY)
+ verify(engineView).setDynamicToolbarMaxHeight(0)
+ }
+
+ @Test
+ fun `GIVEN a BrowserToolbar WHEN showAsFixed is called THEN show the toolbar with the engineView below it`() {
+ toolbar.showAsFixed(testContext, engineView)
+
+ verify(toolbar).isVisible = true
+ verify(engineView).setDynamicToolbarMaxHeight(0)
+ assertEquals(toolbarHeight, (engineView.layoutParams as? CoordinatorLayout.LayoutParams)?.topMargin)
+ }
+
+ @Test
+ fun `GIVEN a BrowserToolbar WHEN hide is called THEN show the toolbar with the engineView below it`() {
+ toolbar.hide(engineView)
+
+ verify(toolbar).isVisible = false
+ verify(engineView).setDynamicToolbarMaxHeight(0)
+ assertEquals(0, (engineView.layoutParams as? CoordinatorLayout.LayoutParams)?.topMargin)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/ext/StringTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/ext/StringTest.kt
new file mode 100644
index 0000000000..33090def9e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/ext/StringTest.kt
@@ -0,0 +1,80 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ext
+
+import org.junit.Assert.assertEquals
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class StringTest {
+ @Test
+ fun testBeautifyUrl() {
+ assertEqualsBeautified(
+ "wikipedia.org/wiki/Adler_Planetarium",
+ "https://en.m.wikipedia.org/wiki/Adler_Planetarium",
+ )
+
+ assertEqualsBeautified(
+ "youtube.com/watch?v=WXqGDW7kuAk",
+ "https://youtube.com/watch?v=WXqGDW7kuAk",
+ )
+
+ assertEqualsBeautified(
+ "spotify.com/album/6JVdzwuTEaLj7Tga8DpFpz",
+ "http://open.spotify.com/album/6JVdzwuTEaLj7Tga8DpFpz",
+ )
+
+ assertEqualsBeautified(
+ "google.com/mail/…/0#inbox/15e34774924ddfb5",
+ "https://mail.google.com/mail/u/0/#inbox/15e34774924ddfb5",
+ )
+
+ assertEqualsBeautified(
+ "google.com/store/…/details?id=com.facebook.katana",
+ "https://play.google.com/store/apps/details?id=com.facebook.katana&hl=en",
+ )
+
+ assertEqualsBeautified(
+ "amazon.com/Mockingjay-Hunger-Games-Suzanne-Collins/…/ref=pd_sim_14_2?_encoding=UTF8",
+ "http://amazon.com/Mockingjay-Hunger-Games-Suzanne-Collins/dp/0545663261/ref=pd_sim_14_2?_encoding=UTF8&psc=1&refRID=90ZHE3V976TKBGDR9VAM",
+ )
+
+ assertEqualsBeautified(
+ "usbank.com/Auth/Login",
+ "https://onlinebanking.usbank.com/Auth/Login",
+ )
+
+ assertEqualsBeautified(
+ "wsj.com/articles/mexican-presidential-candidate-calls-for-nafta-talks-to-be-suspended-1504137175",
+ "https://www.wsj.com/articles/mexican-presidential-candidate-calls-for-nafta-talks-to-be-suspended-1504137175",
+ )
+
+ assertEqualsBeautified(
+ "nytimes.com/2017/…/princess-diana-death-anniversary.html?hp",
+ "https://www.nytimes.com/2017/08/30/world/europe/princess-diana-death-anniversary.html?hp&action=click&pgtype=Homepage&clickSource=story-heading&module=second-column-region&region=top-news&WT.nav=top-news",
+ )
+
+ assertEqualsBeautified(
+ "yahoo.co.jp/hl?a=20170830-00000008-jct-soci",
+ "https://headlines.yahoo.co.jp/hl?a=20170830-00000008-jct-soci",
+ )
+
+ assertEqualsBeautified(
+ "tomshardware.co.uk/answers/…/running-guest-network-channel-interference.html",
+ "http://www.tomshardware.co.uk/answers/id-2025922/running-guest-network-channel-interference.html",
+ )
+
+ assertEqualsBeautified(
+ "github.com/mozilla-mobile/…/1231",
+ "https://github.com/mozilla-mobile/focus-android/issues/1231",
+ )
+ }
+
+ private fun assertEqualsBeautified(expected: String, url: String) {
+ assertEquals("beautify($url)", expected, url.beautifyUrl())
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/ext/UriTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/ext/UriTest.kt
new file mode 100644
index 0000000000..8559f251c8
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/ext/UriTest.kt
@@ -0,0 +1,82 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.ext
+
+import androidx.core.net.toUri
+import org.junit.Assert.assertEquals
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class UriTest {
+ @Test
+ fun testTruncatedHostWithCommonUrls() {
+ assertTruncatedHost("mozilla.org", "https://www.mozilla.org")
+ assertTruncatedHost("wikipedia.org", "https://en.m.wikipedia.org/wiki/")
+ assertTruncatedHost("example.org", "http://example.org")
+ assertTruncatedHost("youtube.com", "https://www.youtube.com/watch?v=oHg5SJYRHA0")
+ assertTruncatedHost("facebook.com", "https://www.facebook.com/Firefox/")
+ assertTruncatedHost("yahoo.com", "https://de.search.yahoo.com/search?p=mozilla&fr=yfp-t&fp=1&toggle=1&cop=mss&ei=UTF-8")
+ assertTruncatedHost("amazon.co.uk", "https://www.amazon.co.uk/Doctor-Who-10-Part-DVD/dp/B06XCMVY1H")
+ }
+
+ @Test
+ fun testTruncatedHostWithEmptyHost() {
+ assertTruncatedHost("", "tel://")
+ }
+
+ @Test
+ fun testTruncatedPathWithEmptySegments() {
+ assertTruncatedPath("", "https://www.mozilla.org")
+ assertTruncatedPath("", "https://www.mozilla.org/")
+ assertTruncatedPath("", "https://www.mozilla.org///")
+ }
+
+ @Test
+ fun testTrunactedPathWithOneSegment() {
+ assertTruncatedPath("/space", "https://www.theverge.com/space")
+ }
+
+ @Test
+ fun testTruncatedPathWithTwoSegments() {
+ assertTruncatedPath("/en-US/firefox", "https://www.mozilla.org/en-US/firefox/")
+ assertTruncatedPath("/mozilla-mobile/focus-android", "https://github.com/mozilla-mobile/focus-android")
+ }
+
+ @Test
+ fun testTruncatedPathWithMultipleSegments() {
+ assertTruncatedPath("/en-US/…/fast", "https://www.mozilla.org/en-US/firefox/features/fast/")
+
+ assertTruncatedPath(
+ "/2017/…/nasa-hi-seas-mars-analogue-mission-hawaii-mauna-loa",
+ "https://www.theverge.com/2017/9/24/16356876/nasa-hi-seas-mars-analogue-mission-hawaii-mauna-loa",
+ )
+ }
+
+ @Test
+ fun testTruncatedPathWithMultipleSegmentsAndFragment() {
+ assertTruncatedPath(
+ "/@bfrancis/the-story-of-firefox-os-cb5bf796e8fb",
+ "https://medium.com/@bfrancis/the-story-of-firefox-os-cb5bf796e8fb#931a",
+ )
+ }
+
+ private fun assertTruncatedHost(expectedTruncatedPath: String, url: String) {
+ assertEquals(
+ "truncatedHost($url)",
+ expectedTruncatedPath,
+ url.toUri().truncatedHost(),
+ )
+ }
+
+ private fun assertTruncatedPath(expectedTruncatedPath: String, url: String) {
+ assertEquals(
+ "truncatedPath($url)",
+ expectedTruncatedPath,
+ url.toUri().truncatedPath(),
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/locale/LocalesTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/locale/LocalesTest.kt
new file mode 100644
index 0000000000..7a7f37d14a
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/locale/LocalesTest.kt
@@ -0,0 +1,46 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.locale
+
+import org.junit.Assert.assertEquals
+import org.junit.Test
+import org.mozilla.focus.locale.Locales.getLanguage
+import org.mozilla.focus.locale.Locales.getLanguageTag
+import java.util.Locale
+
+class LocalesTest {
+ @Test
+ fun testLanguage() {
+ assertEquals("en", getLanguage(Locale.getDefault()))
+ }
+
+ @Test
+ fun testHebrewIsrael() {
+ val locale = Locale("iw", "IL")
+ assertEquals("he", getLanguage(locale))
+ assertEquals("he-IL", getLanguageTag(locale))
+ }
+
+ @Test
+ fun testIndonesianIndonesia() {
+ val locale = Locale("in", "ID")
+ assertEquals("id", getLanguage(locale))
+ assertEquals("id-ID", getLanguageTag(locale))
+ }
+
+ @Test
+ fun testYiddishUnitedStates() {
+ val locale = Locale("ji", "US")
+ assertEquals("yi", getLanguage(locale))
+ assertEquals("yi-US", getLanguageTag(locale))
+ }
+
+ @Test
+ fun testEmptyCountry() {
+ val locale = Locale("en")
+ assertEquals("en", getLanguage(locale))
+ assertEquals("en", getLanguageTag(locale))
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/menu/BrowserMenuControllerTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/menu/BrowserMenuControllerTest.kt
new file mode 100644
index 0000000000..a5547b617d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/menu/BrowserMenuControllerTest.kt
@@ -0,0 +1,162 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.menu
+
+import mozilla.components.browser.state.state.BrowserState
+import mozilla.components.browser.state.state.createTab
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.feature.session.SessionUseCases
+import mozilla.components.feature.top.sites.TopSitesUseCases
+import mozilla.components.support.test.any
+import org.junit.Before
+import org.junit.Test
+import org.mockito.Mock
+import org.mockito.Mockito
+import org.mockito.Mockito.doNothing
+import org.mockito.Mockito.spy
+import org.mockito.Mockito.times
+import org.mockito.MockitoAnnotations
+import org.mockito.Spy
+import org.mozilla.focus.browser.integration.BrowserMenuController
+import org.mozilla.focus.state.AppStore
+
+class BrowserMenuControllerTest {
+ private lateinit var browserMenuController: BrowserMenuController
+
+ @Spy
+ private lateinit var sessionUseCases: SessionUseCases
+
+ @Mock
+ private lateinit var appStore: AppStore
+
+ @Mock
+ private lateinit var topSitesUseCases: TopSitesUseCases
+
+ private val currentTabId: String = "1"
+ private val selectedTab = createTab("https://www.mozilla.org", id = "1")
+ private val shareCallback: () -> Unit = {}
+
+ @Mock
+ private lateinit var requestDesktopCallback: (isChecked: Boolean) -> Unit
+
+ @Mock
+ private lateinit var addToHomeScreenCallback: () -> Unit
+
+ @Mock
+ private lateinit var showFindInPageCallback: () -> Unit
+
+ @Mock
+ private lateinit var openInCallback: () -> Unit
+
+ // NB: we should avoid mocking lambdas..
+ @Mock
+ private lateinit var openInBrowser: () -> Unit
+
+ @Mock
+ private lateinit var showShortcutAddedSnackBar: () -> Unit
+
+ @Before
+ fun setup() {
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(selectedTab),
+ selectedTabId = selectedTab.id,
+ ),
+ )
+ sessionUseCases = SessionUseCases(store)
+ MockitoAnnotations.openMocks(this)
+
+ browserMenuController = spy(
+ BrowserMenuController(
+ sessionUseCases,
+ appStore,
+ store,
+ topSitesUseCases,
+ currentTabId,
+ shareCallback,
+ requestDesktopCallback,
+ addToHomeScreenCallback,
+ showFindInPageCallback,
+ openInCallback,
+ openInBrowser,
+ showShortcutAddedSnackBar,
+ ),
+ )
+
+ doNothing().`when`(browserMenuController).recordBrowserMenuTelemetry(any())
+ }
+
+ @Test
+ fun `GIVEN Back menu item WHEN the item is pressed THEN goBack use case is called`() {
+ val menuItem = ToolbarMenu.Item.Back
+ browserMenuController.handleMenuInteraction(menuItem)
+ Mockito.verify(sessionUseCases, times(1)).goBack
+ }
+
+ @Test
+ fun `GIVEN Forward menu item WHEN the item is pressed THEN goForward use case is called`() {
+ val menuItem = ToolbarMenu.Item.Forward
+ browserMenuController.handleMenuInteraction(menuItem)
+ Mockito.verify(sessionUseCases, times(1)).goForward
+ }
+
+ @Test
+ fun `GIVEN Reload menu item WHEN the item is pressed THEN reload use case is called`() {
+ val menuItem = ToolbarMenu.Item.Reload
+ browserMenuController.handleMenuInteraction(menuItem)
+ Mockito.verify(sessionUseCases, times(1)).reload
+ }
+
+ @Test
+ fun `GIVEN Stop menu item WHEN the item is pressed THEN stopLoading use case is called`() {
+ val menuItem = ToolbarMenu.Item.Stop
+ browserMenuController.handleMenuInteraction(menuItem)
+ Mockito.verify(sessionUseCases, times(1)).stopLoading
+ }
+
+ @Test
+ @Suppress("MaxLineLength")
+ fun `GIVEN RequestDesktop menu item WHEN the item is switched to false THEN requestDesktopCallback with false is called`() {
+ val menuItem = ToolbarMenu.Item.RequestDesktop(isChecked = false)
+ browserMenuController.handleMenuInteraction(menuItem)
+ Mockito.verify(requestDesktopCallback, times(1)).invoke(false)
+ }
+
+ @Test
+ @Suppress("MaxLineLength")
+ fun `GIVEN RequestDesktop menu item WHEN the item is switched to true THEN requestDesktopCallback with true is called`() {
+ val menuItem = ToolbarMenu.Item.RequestDesktop(isChecked = true)
+ browserMenuController.handleMenuInteraction(menuItem)
+ Mockito.verify(requestDesktopCallback, times(1)).invoke(true)
+ }
+
+ @Test
+ fun `GIVEN OpenInBrowser menu item WHEN the item is pressed THEN openInBrowser is called`() {
+ val menuItem = ToolbarMenu.CustomTabItem.OpenInBrowser
+ browserMenuController.handleMenuInteraction(menuItem)
+ Mockito.verify(openInBrowser, times(1)).invoke()
+ }
+
+ @Test
+ fun `GIVEN OpenIn menu item WHEN the item is pressed THEN openInCallback is called`() {
+ val menuItem = ToolbarMenu.Item.OpenInApp
+ browserMenuController.handleMenuInteraction(menuItem)
+ Mockito.verify(openInCallback, times(1)).invoke()
+ }
+
+ @Test
+ fun `GIVEN FindInPage menu item WHEN the item is pressed THEN findInPageMenuEvent method is called`() {
+ val menuItem = ToolbarMenu.Item.FindInPage
+ browserMenuController.handleMenuInteraction(menuItem)
+ Mockito.verify(showFindInPageCallback, times(1)).invoke()
+ }
+
+ @Test
+ fun `Given AddToShortCut menu item WHEN the item is pressed THEN showShortcutAddedSnackBar is called`() {
+ val menuItem = ToolbarMenu.Item.AddToShortcuts
+ browserMenuController.handleMenuInteraction(menuItem)
+ Mockito.verify(showShortcutAddedSnackBar, times(1)).invoke()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/onboarding/OnboardingControllerTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/onboarding/OnboardingControllerTest.kt
new file mode 100644
index 0000000000..5d02674913
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/onboarding/OnboardingControllerTest.kt
@@ -0,0 +1,72 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.onboarding
+
+import android.os.Build
+import androidx.preference.PreferenceManager
+import androidx.test.core.app.ApplicationProvider
+import mozilla.components.support.test.robolectric.testContext
+import org.junit.Assert.assertEquals
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Mockito.spy
+import org.mockito.Mockito.times
+import org.mockito.Mockito.verify
+import org.mockito.MockitoAnnotations
+import org.mozilla.focus.R
+import org.mozilla.focus.fragment.onboarding.DefaultOnboardingController
+import org.mozilla.focus.fragment.onboarding.OnboardingController
+import org.mozilla.focus.fragment.onboarding.OnboardingStorage
+import org.mozilla.focus.state.AppStore
+import org.robolectric.RobolectricTestRunner
+import org.robolectric.annotation.Config
+
+@RunWith(RobolectricTestRunner::class)
+class OnboardingControllerTest {
+
+ @Mock
+ private lateinit var appStore: AppStore
+
+ @Mock
+ private lateinit var onboardingStorage: OnboardingStorage
+ private lateinit var onboardingController: OnboardingController
+
+ @Before
+ fun init() {
+ MockitoAnnotations.openMocks(this)
+ onboardingController = spy(
+ DefaultOnboardingController(
+ onboardingStorage,
+ appStore,
+ ApplicationProvider.getApplicationContext(),
+ "1",
+ ),
+ )
+ }
+
+ @Test
+ fun `GIVEN onBoarding, WHEN start browsing is pressed, THEN onBoarding flag is true`() {
+ DefaultOnboardingController(
+ onboardingStorage,
+ appStore,
+ ApplicationProvider.getApplicationContext(),
+ "1",
+ ).handleFinishOnBoarding()
+
+ val prefManager =
+ PreferenceManager.getDefaultSharedPreferences(ApplicationProvider.getApplicationContext())
+
+ assertEquals(false, prefManager.getBoolean(testContext.getString(R.string.firstrun_shown), false))
+ }
+
+ @Config(sdk = [Build.VERSION_CODES.M])
+ @Test
+ fun `GIVEN onBoarding and build version is M, WHEN get started button is pressed, THEN onBoarding flow must end`() {
+ onboardingController.handleGetStartedButtonClicked()
+
+ verify(onboardingController, times(1)).handleFinishOnBoarding()
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/onboarding/OnboardingStorageTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/onboarding/OnboardingStorageTest.kt
new file mode 100644
index 0000000000..39d9f8c603
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/onboarding/OnboardingStorageTest.kt
@@ -0,0 +1,79 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.onboarding
+
+import androidx.preference.PreferenceManager
+import androidx.test.core.app.ApplicationProvider
+import mozilla.components.support.test.robolectric.testContext
+import org.junit.Assert.assertEquals
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.spy
+import org.mozilla.focus.R
+import org.mozilla.focus.fragment.onboarding.OnboardingStep
+import org.mozilla.focus.fragment.onboarding.OnboardingStorage
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class OnboardingStorageTest {
+ private lateinit var onBoardingStorage: OnboardingStorage
+
+ @Before
+ fun setup() {
+ onBoardingStorage = spy(OnboardingStorage(testContext))
+ }
+
+ @Test
+ fun `GIVEN at the first onboarding step WHEN querying the current onboarding step from storage THEN get the first step`() {
+ doReturn(testContext.getString(R.string.pref_key_first_screen))
+ .`when`(onBoardingStorage).getCurrentOnboardingStepFromSharedPref()
+
+ assertEquals(
+ OnboardingStep.ON_BOARDING_FIRST_SCREEN,
+ onBoardingStorage.getCurrentOnboardingStep(),
+ )
+ }
+
+ @Test
+ fun `GIVEN at the second onboarding step WHEN querying the current onboarding step from storage THEN get the second step`() {
+ doReturn(testContext.getString(R.string.pref_key_second_screen))
+ .`when`(onBoardingStorage).getCurrentOnboardingStepFromSharedPref()
+
+ assertEquals(
+ OnboardingStep.ON_BOARDING_SECOND_SCREEN,
+ onBoardingStorage.getCurrentOnboardingStep(),
+ )
+ }
+
+ @Test
+ fun `GIVEN onboarding not started WHEN querying the current onboarding step from storage THEN get the first step`() {
+ assertEquals(
+ OnboardingStep.ON_BOARDING_FIRST_SCREEN,
+ onBoardingStorage.getCurrentOnboardingStep(),
+ )
+ }
+
+ @Test
+ fun `GIVEN saveCurrentOnBoardingStepInSharePref is called WHEN ONBOARDING_FIRST_SCREEN is saved, THEN value for pref_key_onboarding_step is pref_key_first_screen`() {
+ onBoardingStorage.saveCurrentOnboardingStepInSharePref(OnboardingStep.ON_BOARDING_FIRST_SCREEN)
+
+ val prefManager =
+ PreferenceManager.getDefaultSharedPreferences(ApplicationProvider.getApplicationContext())
+
+ assertEquals(testContext.getString(OnboardingStep.ON_BOARDING_FIRST_SCREEN.prefId), prefManager.getString(testContext.getString(R.string.pref_key_onboarding_step), ""))
+ }
+
+ @Test
+ fun `GIVEN saveCurrentOnBoardingStepInSharePref is called WHEN ONBOARDING_SECOND_SCREEN is saved, THEN value for pref_key_onboarding_step is pref_key_second_screen`() {
+ onBoardingStorage.saveCurrentOnboardingStepInSharePref(OnboardingStep.ON_BOARDING_SECOND_SCREEN)
+
+ val prefManager =
+ PreferenceManager.getDefaultSharedPreferences(ApplicationProvider.getApplicationContext())
+
+ assertEquals(testContext.getString(OnboardingStep.ON_BOARDING_SECOND_SCREEN.prefId), prefManager.getString(testContext.getString(R.string.pref_key_onboarding_step), ""))
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/searchsuggestions/SearchSuggestionsViewModelTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/searchsuggestions/SearchSuggestionsViewModelTest.kt
new file mode 100644
index 0000000000..c2c686c8e0
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/searchsuggestions/SearchSuggestionsViewModelTest.kt
@@ -0,0 +1,59 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.searchsuggestions
+
+import androidx.arch.core.executor.testing.InstantTaskExecutorRule
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.LifecycleRegistry
+import androidx.lifecycle.Observer
+import androidx.test.core.app.ApplicationProvider
+import org.junit.Assert.assertEquals
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.rules.TestRule
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Mockito.mock
+import org.mockito.Mockito.verify
+import org.mockito.MockitoAnnotations
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class SearchSuggestionsViewModelTest {
+ @get:Rule
+ var rule: TestRule = InstantTaskExecutorRule()
+
+ @Mock
+ private lateinit var observer: Observer<String?>
+
+ private lateinit var lifecycle: LifecycleRegistry
+ private lateinit var viewModel: SearchSuggestionsViewModel
+
+ @Before
+ fun setup() {
+ lifecycle = LifecycleRegistry(mock(LifecycleOwner::class.java))
+ MockitoAnnotations.openMocks(this)
+
+ viewModel = SearchSuggestionsViewModel(ApplicationProvider.getApplicationContext())
+ }
+
+ @Test
+ fun setSearchQuery() {
+ viewModel.searchQuery.observeForever(observer)
+
+ viewModel.setSearchQuery("Mozilla")
+ verify(observer).onChanged("Mozilla")
+ }
+
+ @Test
+ fun alwaysSearchSelected() {
+ viewModel.selectedSearchSuggestion.observeForever(observer)
+
+ viewModel.selectSearchSuggestion("mozilla.com", "google", true)
+ verify(observer).onChanged("mozilla.com")
+ assertEquals(true, viewModel.alwaysSearch)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/searchwidget/ExternalIntentNavigationTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/searchwidget/ExternalIntentNavigationTest.kt
new file mode 100644
index 0000000000..c1156022bd
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/searchwidget/ExternalIntentNavigationTest.kt
@@ -0,0 +1,203 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.searchwidget
+
+import android.app.Activity
+import android.content.Context
+import android.os.Bundle
+import mozilla.components.browser.state.selector.allTabs
+import mozilla.components.browser.state.selector.findCustomTabOrSelectedTab
+import mozilla.components.browser.state.selector.privateTabs
+import mozilla.components.browser.state.state.SessionState
+import mozilla.components.feature.search.widget.BaseVoiceSearchActivity
+import mozilla.components.support.test.libstate.ext.waitUntilIdle
+import mozilla.components.support.test.robolectric.testContext
+import mozilla.telemetry.glean.testing.GleanTestRule
+import org.junit.Assert.assertNotNull
+import org.junit.Rule
+import org.junit.Test
+import org.junit.jupiter.api.Assertions.assertEquals
+import org.junit.jupiter.api.Assertions.assertFalse
+import org.junit.jupiter.api.Assertions.assertNull
+import org.junit.jupiter.api.Assertions.assertTrue
+import org.junit.runner.RunWith
+import org.mozilla.focus.GleanMetrics.SearchWidget
+import org.mozilla.focus.TestFocusApplication
+import org.mozilla.focus.activity.IntentReceiverActivity
+import org.mozilla.focus.ext.components
+import org.mozilla.focus.ext.settings
+import org.mozilla.focus.perf.Performance
+import org.mozilla.focus.state.AppAction
+import org.mozilla.focus.state.Screen
+import org.mozilla.focus.utils.SearchUtils
+import org.robolectric.Robolectric
+import org.robolectric.RobolectricTestRunner
+import org.robolectric.annotation.Config
+import org.robolectric.annotation.Implementation
+import org.robolectric.annotation.Implements
+
+@RunWith(RobolectricTestRunner::class)
+@Config(application = TestFocusApplication::class)
+internal class ExternalIntentNavigationTest {
+ @get:Rule
+ val gleanTestRule = GleanTestRule(testContext)
+
+ private val activity: Activity = Robolectric.buildActivity(Activity::class.java).setup().get()
+ private val appStore = activity.components.appStore
+
+ @Test
+ fun `GIVEN the onboarding should be shown and the app is not used in performance tests WHEN the app is opened THEN show the onboarding`() {
+ activity.settings.isFirstRun = true
+
+ ExternalIntentNavigation.handleAppOpened(null, activity)
+ appStore.waitUntilIdle()
+
+ assertEquals(Screen.FirstRun, appStore.state.screen)
+ }
+
+ @Test
+ @Config(shadows = [ShadowPerformance::class])
+ fun `GIVEN the onboarding should be shown and the app is used in a performance test WHEN the app is opened THEN show the homescreen`() {
+ // The AppStore is initialized before the test runs. By default isFirstRun is true. Simulate it being false.
+ appStore.dispatch(AppAction.ShowHomeScreen)
+ appStore.waitUntilIdle()
+ activity.settings.isFirstRun = true
+
+ ExternalIntentNavigation.handleAppOpened(null, activity)
+ appStore.waitUntilIdle()
+
+ assertEquals(Screen.Home, appStore.state.screen)
+ }
+
+ @Test
+ @Config(shadows = [ShadowPerformance::class])
+ fun `GIVEN the onboarding should not be shown and in a performance test WHEN the app is opened THEN show the home screen`() {
+ // The AppStore is initialized before the test runs. By default isFirstRun is true. Simulate it being false.
+ appStore.dispatch(AppAction.ShowHomeScreen)
+ appStore.waitUntilIdle()
+ activity.settings.isFirstRun = false
+
+ ExternalIntentNavigation.handleAppOpened(null, activity)
+ appStore.waitUntilIdle()
+
+ assertEquals(Screen.Home, appStore.state.screen)
+ }
+
+ @Test
+ fun `GIVEN the onboarding should not be shown and not in a performance test WHEN the app is opened THEN show the home screen`() {
+ // The AppStore is initialized before the test runs. By default isFirstRun is true. Simulate it being false.
+ appStore.dispatch(AppAction.ShowHomeScreen)
+ appStore.waitUntilIdle()
+ activity.settings.isFirstRun = false
+
+ ExternalIntentNavigation.handleAppOpened(null, activity)
+ appStore.waitUntilIdle()
+
+ assertEquals(Screen.Home, appStore.state.screen)
+ }
+
+ @Test
+ fun `GIVEN a tab is already open WHEN trying to navigate to the current tab THEN navigate to it and return true`() {
+ activity.components.tabsUseCases.addTab(url = "https://mozilla.com")
+ activity.components.store.waitUntilIdle()
+ val result = ExternalIntentNavigation.handleBrowserTabAlreadyOpen(activity)
+ activity.components.appStore.waitUntilIdle()
+
+ assertTrue(result)
+ val selectedTabId = activity.components.store.state.selectedTabId!!
+ assertEquals(Screen.Browser(selectedTabId, false), activity.components.appStore.state.screen)
+ }
+
+ @Test
+ fun `GIVEN no tabs are currently open WHEN trying to navigate to the current tab THEN navigate home and return false`() {
+ // The AppStore is initialized before the test runs. By default isFirstRun is true. Simulate it being false.
+ appStore.dispatch(AppAction.ShowHomeScreen)
+ appStore.waitUntilIdle()
+ val result = ExternalIntentNavigation.handleBrowserTabAlreadyOpen(activity)
+ activity.components.appStore.waitUntilIdle()
+
+ assertFalse(result)
+ assertEquals(Screen.Home, activity.components.appStore.state.screen)
+ }
+
+ @Test
+ fun `GIVEN a text search from the search widget WHEN handling widget interactions THEN record telemetry, show the home screen and return true`() {
+ val bundle = Bundle().apply {
+ putBoolean(IntentReceiverActivity.SEARCH_WIDGET_EXTRA, true)
+ }
+
+ val result = ExternalIntentNavigation.handleWidgetTextSearch(bundle, activity)
+ appStore.waitUntilIdle()
+
+ assertTrue(result)
+ assertNotNull(SearchWidget.newTabButton.testGetValue())
+ assertEquals(Screen.Home, appStore.state.screen)
+ }
+
+ @Test
+ fun `GIVEN no text search from the search widget WHEN handling widget interactions THEN don't record telemetry, show the home screen and false true`() {
+ // The AppStore is initialized before the test runs. By default isFirstRun is true. Simulate it being false.
+ appStore.dispatch(AppAction.ShowHomeScreen)
+ appStore.waitUntilIdle()
+ val bundle = Bundle()
+
+ val result = ExternalIntentNavigation.handleWidgetTextSearch(bundle, activity)
+ appStore.waitUntilIdle()
+
+ assertFalse(result)
+ assertNull(SearchWidget.newTabButton.testGetValue())
+ assertEquals(Screen.Home, appStore.state.screen)
+ }
+
+ @Test
+ fun `GIVEN a voice search WHEN handling widget interactions THEN create and open a new tab and return true`() {
+ val browserStore = activity.components.store
+ val searchArgument = "test"
+ val bundle = Bundle().apply {
+ putString(BaseVoiceSearchActivity.SPEECH_PROCESSING, searchArgument)
+ }
+
+ val result = ExternalIntentNavigation.handleWidgetVoiceSearch(bundle, activity)
+
+ assertTrue(result)
+ browserStore.waitUntilIdle()
+ assertEquals(1, browserStore.state.allTabs.size)
+ assertEquals(1, browserStore.state.privateTabs.size)
+ val voiceSearchTab = browserStore.state.privateTabs[0]
+ assertEquals(voiceSearchTab, browserStore.state.findCustomTabOrSelectedTab())
+ assertEquals(SearchUtils.createSearchUrl(activity, searchArgument), voiceSearchTab.content.url)
+ assertEquals(SessionState.Source.External.ActionSend(null), voiceSearchTab.source)
+ assertEquals(searchArgument, voiceSearchTab.content.searchTerms)
+ appStore.waitUntilIdle()
+ assertEquals(Screen.Browser(voiceSearchTab.id, false), appStore.state.screen)
+ }
+
+ @Test
+ fun `GIVEN no voice search WHEN handling widget interactions THEN don't open a new tab and return false`() {
+ // The AppStore is initialized before the test runs. By default isFirstRun is true. Simulate it being false.
+ appStore.dispatch(AppAction.ShowHomeScreen)
+ appStore.waitUntilIdle()
+ val browserStore = activity.components.store
+ val bundle = Bundle()
+
+ val result = ExternalIntentNavigation.handleWidgetVoiceSearch(bundle, activity)
+
+ assertFalse(result)
+ browserStore.waitUntilIdle()
+ assertEquals(0, browserStore.state.allTabs.size)
+ appStore.waitUntilIdle()
+ assertEquals(Screen.Home, appStore.state.screen)
+ }
+}
+
+/**
+ * Shadow of [Performance] that will have [processIntentIfPerformanceTest] always return `true`.
+ */
+@Implements(Performance::class)
+class ShadowPerformance {
+ @Implementation
+ @Suppress("Unused_Parameter")
+ fun processIntentIfPerformanceTest(bundle: Bundle?, context: Context) = true
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/searchwidget/SearchWidgetProviderTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/searchwidget/SearchWidgetProviderTest.kt
new file mode 100644
index 0000000000..6ad9a7b3b5
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/searchwidget/SearchWidgetProviderTest.kt
@@ -0,0 +1,65 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.searchwidget
+
+import android.app.PendingIntent
+import android.content.Intent
+import mozilla.components.support.test.robolectric.testContext
+import mozilla.components.support.utils.PendingIntentUtils
+import org.junit.Assert.assertEquals
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mockito.spy
+import org.mozilla.focus.activity.IntentReceiverActivity
+import org.mozilla.focus.ext.components
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class SearchWidgetProviderTest {
+
+ private lateinit var searchWidgetProvider: SearchWidgetProvider
+
+ @Before
+ fun setup() {
+ searchWidgetProvider = spy(SearchWidgetProvider())
+ }
+
+ @Test
+ fun `GIVEN search widget provider WHEN onEnabled is called THEN searchWidgetInstalled from Settings should return true`() {
+ searchWidgetProvider.onEnabled(testContext)
+
+ assertEquals(testContext.components.settings.searchWidgetInstalled, true)
+ }
+
+ @Test
+ fun `GIVEN search widget provider WHEN onDeleted is called THEN searchWidgetInstalled from Settings should return false`() {
+ searchWidgetProvider.onDeleted(testContext, intArrayOf(1))
+
+ assertEquals(testContext.components.settings.searchWidgetInstalled, false)
+ }
+
+ @Test
+ fun `GIVEN search widget provider WHEN createTextSearchIntent is called THEN an PendingIntent should be return`() {
+ val textSearchIntent = Intent(testContext, IntentReceiverActivity::class.java)
+ .apply {
+ this.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
+ this.putExtra(IntentReceiverActivity.SEARCH_WIDGET_EXTRA, true)
+ }
+ val dummyPendingIntent = PendingIntent.getActivity(
+ testContext,
+ SearchWidgetProvider.REQUEST_CODE_NEW_TAB,
+ textSearchIntent,
+ PendingIntentUtils.defaultFlags or
+ PendingIntent.FLAG_UPDATE_CURRENT,
+ )
+
+ assertEquals(searchWidgetProvider.createTextSearchIntent(testContext), dummyPendingIntent)
+ }
+
+ @Test
+ fun `GIVEN search widget provider WHEN voiceSearchActivity is called THEN VoiceSearchActivity should be return`() {
+ assertEquals(searchWidgetProvider.voiceSearchActivity(), VoiceSearchActivity::class.java)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/settings/SearchEngineValidationTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/settings/SearchEngineValidationTest.kt
new file mode 100644
index 0000000000..07c032b5bd
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/settings/SearchEngineValidationTest.kt
@@ -0,0 +1,94 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.settings
+
+import mozilla.components.concept.fetch.Client
+import mozilla.components.concept.fetch.Request
+import mozilla.components.concept.fetch.Response
+import mozilla.components.lib.fetch.okhttp.OkHttpClient
+import okhttp3.mockwebserver.MockResponse
+import okhttp3.mockwebserver.MockWebServer
+import org.junit.Assert.assertFalse
+import org.junit.Assert.assertTrue
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.settings.ManualAddSearchEngineSettingsFragment.Companion.isValidSearchQueryURL
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+// This unit test is not running on an Android device. Allow me to use spaces in function names.
+@Suppress("IllegalIdentifier")
+class SearchEngineValidationTest {
+
+ lateinit var client: Client
+
+ @Before
+ fun setup() {
+ client = OkHttpWrapper()
+ }
+
+ @Test
+ fun `URL returning 200 OK is valid`() = withMockWebServer(responseWithStatus(200)) {
+ assertTrue(isValidSearchQueryURL(client, it.rootUrl()))
+ }
+
+ @Test
+ fun `URL using HTTP redirect is invalid`() = withMockWebServer(responseWithStatus(301)) {
+ // We now follow redirects(Issue #1976). This test now asserts false.
+ assertFalse(isValidSearchQueryURL(client, it.rootUrl()))
+ }
+
+ @Test
+ fun `URL returning 404 NOT FOUND is not valid`() = withMockWebServer(responseWithStatus(404)) {
+ assertFalse(isValidSearchQueryURL(client, it.rootUrl()))
+ }
+
+ @Test
+ fun `URL returning server error is not valid`() = withMockWebServer(responseWithStatus(500)) {
+ assertFalse(isValidSearchQueryURL(client, it.rootUrl()))
+ }
+
+ @Test
+ fun `URL timing out is not valid`() = withMockWebServer {
+ // Without queuing a response MockWebServer will not return anything and keep the connection open
+ assertFalse(isValidSearchQueryURL(client, it.rootUrl()))
+ }
+}
+
+/**
+ * Helper for creating a test that uses a mock webserver instance.
+ */
+private fun withMockWebServer(vararg responses: MockResponse, block: (MockWebServer) -> Unit) {
+ val server = MockWebServer()
+
+ responses.forEach { server.enqueue(it) }
+
+ server.start()
+
+ try {
+ block(server)
+ } finally {
+ server.shutdown()
+ }
+}
+
+private fun MockWebServer.rootUrl(): String = url("/").toString()
+
+private fun responseWithStatus(status: Int) =
+ MockResponse()
+ .setResponseCode(status)
+ .setBody("")
+
+private class OkHttpWrapper : Client() {
+ private val actual = OkHttpClient()
+
+ override fun fetch(request: Request): Response {
+ // OkHttpClient does not support private requests. Therefore we make them non-private for
+ // testing purposes
+ val nonPrivate = request.copy(private = false)
+ return actual.fetch(nonPrivate)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/shortcut/HomeScreenTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/shortcut/HomeScreenTest.kt
new file mode 100644
index 0000000000..7cb9e889f7
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/shortcut/HomeScreenTest.kt
@@ -0,0 +1,20 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.shortcut
+
+import junit.framework.TestCase.assertEquals
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.focus.shortcut.HomeScreen.generateTitleFromUrl
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class HomeScreenTest {
+ @Test
+ fun testGenerateTitleFromUrl() {
+ assertEquals("mozilla.org", generateTitleFromUrl("https://www.mozilla.org"))
+ assertEquals("facebook.com", generateTitleFromUrl("http://m.facebook.com/home"))
+ assertEquals("", generateTitleFromUrl("mozilla"))
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/shortcut/IconGeneratorTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/shortcut/IconGeneratorTest.kt
new file mode 100644
index 0000000000..f84c3d4d5d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/shortcut/IconGeneratorTest.kt
@@ -0,0 +1,59 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.shortcut
+
+import org.junit.Assert.assertEquals
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class IconGeneratorTest {
+ @Test
+ fun testRepresentativeCharacter() {
+ assertEquals('M', IconGenerator.getRepresentativeCharacter("https://mozilla.org"))
+ assertEquals('W', IconGenerator.getRepresentativeCharacter("http://wikipedia.org"))
+ assertEquals('P', IconGenerator.getRepresentativeCharacter("http://plus.google.com"))
+ assertEquals('E', IconGenerator.getRepresentativeCharacter("https://en.m.wikipedia.org/wiki/Main_Page"))
+
+ // Stripping common prefixes
+ assertEquals('T', IconGenerator.getRepresentativeCharacter("http://www.theverge.com"))
+ assertEquals('F', IconGenerator.getRepresentativeCharacter("https://m.facebook.com"))
+ assertEquals('T', IconGenerator.getRepresentativeCharacter("https://mobile.twitter.com"))
+
+ // Special urls
+ assertEquals('?', IconGenerator.getRepresentativeCharacter("file:///"))
+ assertEquals('S', IconGenerator.getRepresentativeCharacter("file:///system/"))
+ assertEquals('P', IconGenerator.getRepresentativeCharacter("ftp://people.mozilla.org/test"))
+
+ // No values
+ assertEquals('?', IconGenerator.getRepresentativeCharacter(""))
+ assertEquals('?', IconGenerator.getRepresentativeCharacter(null))
+
+ // Rubbish
+ assertEquals('Z', IconGenerator.getRepresentativeCharacter("zZz"))
+ assertEquals('Ö', IconGenerator.getRepresentativeCharacter("ölkfdpou3rkjaslfdköasdfo8"))
+ assertEquals('?', IconGenerator.getRepresentativeCharacter("_*+*'##"))
+ assertEquals('ツ', IconGenerator.getRepresentativeCharacter("¯\\_(ツ)_/¯"))
+ assertEquals('ಠ', IconGenerator.getRepresentativeCharacter("ಠ_ಠ Look of Disapproval"))
+
+ // Non-ASCII
+ assertEquals('Ä', IconGenerator.getRepresentativeCharacter("http://www.ätzend.de"))
+ assertEquals('名', IconGenerator.getRepresentativeCharacter("http://名がドメイン.com"))
+ assertEquals('C', IconGenerator.getRepresentativeCharacter("http://√.com"))
+ assertEquals('ß', IconGenerator.getRepresentativeCharacter("http://ß.de"))
+ assertEquals('Ԛ', IconGenerator.getRepresentativeCharacter("http://ԛәлп.com/")) // cyrillic
+
+ // Punycode
+ assertEquals('X', IconGenerator.getRepresentativeCharacter("http://xn--tzend-fra.de")) // ätzend.de
+ assertEquals('X', IconGenerator.getRepresentativeCharacter("http://xn--V8jxj3d1dzdz08w.com")) // 名がドメイン.com
+
+ // Numbers
+ assertEquals('1', IconGenerator.getRepresentativeCharacter("https://www.1and1.com/"))
+
+ // IP
+ assertEquals('1', IconGenerator.getRepresentativeCharacter("https://192.168.0.1"))
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/sitepermissions/SitePermissionOptionsStorageTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/sitepermissions/SitePermissionOptionsStorageTest.kt
new file mode 100644
index 0000000000..80168da22d
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/sitepermissions/SitePermissionOptionsStorageTest.kt
@@ -0,0 +1,342 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.sitepermissions
+
+import mozilla.components.support.test.robolectric.testContext
+import org.junit.Assert.assertEquals
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.spy
+import org.mozilla.focus.R
+import org.mozilla.focus.settings.permissions.AutoplayOption
+import org.mozilla.focus.settings.permissions.SitePermissionOption
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermission
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermissionOptionsStorage
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class SitePermissionOptionsStorageTest {
+ private lateinit var storage: SitePermissionOptionsStorage
+
+ @Before
+ fun setup() {
+ storage = spy(SitePermissionOptionsStorage(testContext))
+ }
+
+ @Test
+ fun `GIVEN get site permission option selected label is called WHEN camera permission isn't granted THEN blocked by android is return`() {
+ doReturn(false).`when`(storage).isAndroidPermissionGranted(SitePermission.CAMERA)
+
+ assertEquals(
+ testContext.getString(R.string.phone_feature_blocked_by_android),
+ storage.getSitePermissionOptionSelectedLabel(SitePermission.CAMERA),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission option selected label is called WHEN camera permission is granted THEN default value ask to allow option is return`() {
+ doReturn(true).`when`(storage).isAndroidPermissionGranted(SitePermission.CAMERA)
+
+ assertEquals(
+ testContext.getString(R.string.preference_option_phone_feature_ask_to_allow),
+ storage.getSitePermissionOptionSelectedLabel(SitePermission.CAMERA),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission option selected label is called WHEN autoplay permission is granted THEN default value block audio only return`() {
+ doReturn(true).`when`(storage).isAndroidPermissionGranted(SitePermission.AUTOPLAY)
+
+ assertEquals(
+ testContext.getString(R.string.preference_block_autoplay_audio_only),
+ storage.getSitePermissionOptionSelectedLabel(SitePermission.AUTOPLAY),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission option selected label is called WHEN location permission is granted THEN default value ask to allow option is return`() {
+ doReturn(true).`when`(storage).isAndroidPermissionGranted(SitePermission.LOCATION)
+
+ assertEquals(
+ testContext.getString(R.string.preference_option_phone_feature_ask_to_allow),
+ storage.getSitePermissionOptionSelectedLabel(SitePermission.LOCATION),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission options is called WHEN location permission is passed as argument THEN available options are return`() {
+ assertEquals(
+ listOf(SitePermissionOption.AskToAllow(), SitePermissionOption.Blocked()),
+ storage.getSitePermissionOptions(SitePermission.LOCATION),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission options is called WHEN camera permission is passed as argument THEN available options are return`() {
+ assertEquals(
+ listOf(SitePermissionOption.AskToAllow(), SitePermissionOption.Blocked()),
+ storage.getSitePermissionOptions(SitePermission.CAMERA),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission options is called WHEN microphone permission is passed as argument THEN available options are return`() {
+ assertEquals(
+ listOf(SitePermissionOption.AskToAllow(), SitePermissionOption.Blocked()),
+ storage.getSitePermissionOptions(SitePermission.MICROPHONE),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission options is called WHEN notification permission is passed as argument THEN available options are return`() {
+ assertEquals(
+ listOf(SitePermissionOption.AskToAllow(), SitePermissionOption.Blocked()),
+ storage.getSitePermissionOptions(SitePermission.NOTIFICATION),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission options is called WHEN media key system access permission is passed as argument THEN available options are return`() {
+ assertEquals(
+ listOf(SitePermissionOption.AskToAllow(), SitePermissionOption.Blocked(), SitePermissionOption.Allowed()),
+ storage.getSitePermissionOptions(SitePermission.MEDIA_KEY_SYSTEM_ACCESS),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission options is called WHEN autoplay permission is passed as argument THEN available options are return`() {
+ assertEquals(
+ listOf(AutoplayOption.AllowAudioVideo(), AutoplayOption.BlockAudioOnly(), AutoplayOption.BlockAudioVideo()),
+ storage.getSitePermissionOptions(SitePermission.AUTOPLAY),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission label is called WHEN camera permission is passed as argument THEN permission label is return`() {
+ assertEquals(
+ testContext.getString(R.string.preference_phone_feature_camera),
+ storage.getSitePermissionLabel(SitePermission.CAMERA),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission label is called WHEN location permission is passed as argument THEN permission label is return`() {
+ assertEquals(
+ testContext.getString(R.string.preference_phone_feature_location),
+ storage.getSitePermissionLabel(SitePermission.LOCATION),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission label is called WHEN microphone permission is passed as argument THEN permission label is return`() {
+ assertEquals(
+ testContext.getString(R.string.preference_phone_feature_microphone),
+ storage.getSitePermissionLabel(SitePermission.MICROPHONE),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission label is called WHEN notification permission is passed as argument THEN permission label is return`() {
+ assertEquals(
+ testContext.getString(R.string.preference_phone_feature_notification),
+ storage.getSitePermissionLabel(SitePermission.NOTIFICATION),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission label is called WHEN media key system access permission is passed as argument THEN permission label is return`() {
+ assertEquals(
+ testContext.getString(R.string.preference_phone_feature_media_key_system_access),
+ storage.getSitePermissionLabel(SitePermission.MEDIA_KEY_SYSTEM_ACCESS),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission label is called WHEN autoplay permission is passed as argument THEN permission label is return`() {
+ assertEquals(
+ testContext.getString(R.string.preference_autoplay),
+ storage.getSitePermissionLabel(SitePermission.AUTOPLAY),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission default option is called WHEN camera permission is passed as argument THEN default option is return`() {
+ assertEquals(
+ SitePermissionOption.AskToAllow(),
+ storage.getSitePermissionDefaultOption(SitePermission.CAMERA),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission default option is called WHEN location permission is passed as argument THEN default option is return`() {
+ assertEquals(
+ SitePermissionOption.AskToAllow(),
+ storage.getSitePermissionDefaultOption(SitePermission.LOCATION),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission default option is called WHEN microphone permission is passed as argument THEN default option is return`() {
+ assertEquals(
+ SitePermissionOption.AskToAllow(),
+ storage.getSitePermissionDefaultOption(SitePermission.MICROPHONE),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission default option is called WHEN notification permission is passed as argument THEN default option is return`() {
+ assertEquals(
+ SitePermissionOption.AskToAllow(),
+ storage.getSitePermissionDefaultOption(SitePermission.NOTIFICATION),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission default option is called WHEN media key system access permission is passed as argument THEN default option is return`() {
+ assertEquals(
+ SitePermissionOption.AskToAllow(),
+ storage.getSitePermissionDefaultOption(SitePermission.MEDIA_KEY_SYSTEM_ACCESS),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission default option is called WHEN autoplay permission is passed as argument THEN default option is return`() {
+ assertEquals(
+ AutoplayOption.BlockAudioOnly(),
+ storage.getSitePermissionDefaultOption(SitePermission.AUTOPLAY),
+ )
+ }
+
+ @Test
+ fun `GIVEN get permission selected option is called WHEN pref_key_allowed is saved in SharedPreferences THEN site permission Allowed is return`() {
+ doReturn(testContext.getString(R.string.pref_key_allowed))
+ .`when`(storage).permissionSelectedOptionByKey(R.string.pref_key_phone_feature_camera)
+
+ assertEquals(
+ SitePermissionOption.Allowed(),
+ storage.permissionSelectedOption(SitePermission.CAMERA),
+ )
+ }
+
+ @Test
+ fun `GIVEN get permission selected option is called WHEN pref_key_allow_autoplay_audio_video is saved in SharedPreferences THEN site permission Allow Audio and Video is return`() {
+ doReturn(testContext.getString(R.string.pref_key_allow_autoplay_audio_video))
+ .`when`(storage).permissionSelectedOptionByKey(R.string.pref_key_phone_feature_camera)
+
+ assertEquals(
+ AutoplayOption.AllowAudioVideo(),
+ storage.permissionSelectedOption(SitePermission.CAMERA),
+ )
+ }
+
+ @Test
+ fun `GIVEN get permission selected option is called WHEN pref_key_block_autoplay_audio_video is saved in SharedPreferences THEN site permission Block Audio and Video is return`() {
+ doReturn(testContext.getString(R.string.pref_key_block_autoplay_audio_video))
+ .`when`(storage).permissionSelectedOptionByKey(R.string.pref_key_phone_feature_camera)
+
+ assertEquals(
+ AutoplayOption.BlockAudioVideo(),
+ storage.permissionSelectedOption(SitePermission.CAMERA),
+ )
+ }
+
+ @Test
+ fun `GIVEN get permission selected option is called WHEN pref_key_blocked is saved in SharedPreferences THEN site permission Blocked is return`() {
+ doReturn(testContext.getString(R.string.pref_key_blocked))
+ .`when`(storage).permissionSelectedOptionByKey(R.string.pref_key_phone_feature_camera)
+
+ assertEquals(
+ SitePermissionOption.Blocked(),
+ storage.permissionSelectedOption(SitePermission.CAMERA),
+ )
+ }
+
+ @Test
+ fun `GIVEN get permission selected option is called WHEN pref_key_ask_to_allow is saved in SharedPreferences THEN site permission Ask to allow is return`() {
+ doReturn(testContext.getString(R.string.pref_key_ask_to_allow))
+ .`when`(storage).permissionSelectedOptionByKey(R.string.pref_key_phone_feature_camera)
+
+ assertEquals(
+ SitePermissionOption.AskToAllow(),
+ storage.permissionSelectedOption(SitePermission.CAMERA),
+ )
+ }
+
+ @Test
+ fun `GIVEN get permission selected option is called WHEN pref_key_block_autoplay_audio_only is saved in SharedPreferences THEN site permission Block Audio only is return`() {
+ doReturn(testContext.getString(R.string.pref_key_block_autoplay_audio_only))
+ .`when`(storage).permissionSelectedOptionByKey(R.string.pref_key_phone_feature_camera)
+
+ assertEquals(
+ AutoplayOption.BlockAudioOnly(),
+ storage.permissionSelectedOption(SitePermission.CAMERA),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission preference id is called WHEN site permission camera is passed as argument THEN pref_key_phone_feature_camera is return`() {
+ assertEquals(
+ R.string.pref_key_phone_feature_camera,
+ storage.getSitePermissionPreferenceId(SitePermission.CAMERA),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission preference id is called WHEN site permission location is passed as argument THEN pref_key_phone_feature_location is return`() {
+ assertEquals(
+ R.string.pref_key_phone_feature_location,
+ storage.getSitePermissionPreferenceId(SitePermission.LOCATION),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission preference id is called WHEN site permission microphone is passed as argument THEN pref_key_phone_feature_microphone is return`() {
+ assertEquals(
+ R.string.pref_key_phone_feature_microphone,
+ storage.getSitePermissionPreferenceId(SitePermission.MICROPHONE),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission preference id is called WHEN site permission notification is passed as argument THEN pref_key_phone_feature_notification is return`() {
+ assertEquals(
+ R.string.pref_key_phone_feature_notification,
+ storage.getSitePermissionPreferenceId(SitePermission.NOTIFICATION),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission preference id is called WHEN site permission autoplay is passed as argument THEN pref_key_autoplay is return`() {
+ assertEquals(
+ R.string.pref_key_autoplay,
+ storage.getSitePermissionPreferenceId(SitePermission.AUTOPLAY),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission preference id is called WHEN site permission autoplay audible is passed as argument THEN pref_key_allow_autoplay_audio_video is return`() {
+ assertEquals(
+ R.string.pref_key_allow_autoplay_audio_video,
+ storage.getSitePermissionPreferenceId(SitePermission.AUTOPLAY_AUDIBLE),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission preference id is called WHEN site permission autoplay inaudible is passed as argument THEN pref_key_block_autoplay_audio_video is return`() {
+ assertEquals(
+ R.string.pref_key_block_autoplay_audio_video,
+ storage.getSitePermissionPreferenceId(SitePermission.AUTOPLAY_INAUDIBLE),
+ )
+ }
+
+ @Test
+ fun `GIVEN get site permission preference id is called WHEN site permission media key system access is passed as argument THEN pref_key_browser_feature_media_key_system_access is return`() {
+ assertEquals(
+ R.string.pref_key_browser_feature_media_key_system_access,
+ storage.getSitePermissionPreferenceId(SitePermission.MEDIA_KEY_SYSTEM_ACCESS),
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/sitepermissions/SitePermissionOptionsStoreTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/sitepermissions/SitePermissionOptionsStoreTest.kt
new file mode 100644
index 0000000000..a76ecb95d6
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/sitepermissions/SitePermissionOptionsStoreTest.kt
@@ -0,0 +1,89 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.sitepermissions
+
+import mozilla.components.support.test.ext.joinBlocking
+import mozilla.components.support.test.mock
+import org.junit.Assert.assertEquals
+import org.junit.Assert.assertTrue
+import org.junit.Before
+import org.junit.Test
+import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.verify
+import org.mozilla.focus.settings.permissions.AutoplayOption
+import org.mozilla.focus.settings.permissions.SitePermissionOption
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermission
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermissionOptionsScreenAction
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermissionOptionsScreenState
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermissionOptionsScreenStore
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermissionOptionsStorage
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermissionOptionsStorageMiddleware
+
+class SitePermissionOptionsStoreTest {
+ private lateinit var sitePermissionOptionsStorageMiddleware: SitePermissionOptionsStorageMiddleware
+ private lateinit var store: SitePermissionOptionsScreenStore
+ private lateinit var sitePermissionState: SitePermissionOptionsScreenState
+ private val storage: SitePermissionOptionsStorage = mock()
+
+ @Before
+ fun setup() {
+ sitePermissionOptionsStorageMiddleware = SitePermissionOptionsStorageMiddleware(SitePermission.CAMERA, storage)
+ sitePermissionState = SitePermissionOptionsScreenState()
+
+ doReturn(listOf(SitePermissionOption.AskToAllow(), SitePermissionOption.Blocked())).`when`(storage).getSitePermissionOptions(SitePermission.CAMERA)
+ doReturn(SitePermissionOption.AskToAllow()).`when`(storage).permissionSelectedOption(SitePermission.CAMERA)
+ doReturn("Camera").`when`(storage).getSitePermissionLabel(SitePermission.CAMERA)
+ doReturn(false).`when`(storage).isAndroidPermissionGranted(SitePermission.CAMERA)
+
+ store = SitePermissionOptionsScreenStore(sitePermissionState, listOf(sitePermissionOptionsStorageMiddleware))
+ }
+
+ @Test
+ fun `GIVEN site permission screen store WHEN android permission action is dispatched THEN site permission options screen state is updated`() {
+ store.dispatch(SitePermissionOptionsScreenAction.AndroidPermission(true)).joinBlocking()
+
+ verify(storage).getSitePermissionOptions(SitePermission.CAMERA)
+ verify(storage).permissionSelectedOption(SitePermission.CAMERA)
+ verify(storage).getSitePermissionLabel(SitePermission.CAMERA)
+ verify(storage).isAndroidPermissionGranted(SitePermission.CAMERA)
+ assertTrue(store.state.isAndroidPermissionGranted)
+ }
+
+ @Test
+ fun `GIVEN site permission screen store WHEN select permission action is dispatched THEN site permission options screen state is updated`() {
+ store.dispatch(SitePermissionOptionsScreenAction.Select(SitePermissionOption.Blocked())).joinBlocking()
+
+ verify(storage).saveCurrentSitePermissionOptionInSharePref(SitePermissionOption.Blocked(), SitePermission.CAMERA)
+ assertEquals(SitePermissionOption.Blocked(), store.state.selectedSitePermissionOption)
+ }
+
+ @Test
+ fun `GIVEN site permission screen store WHEN update site permission options is dispatched THEN site permission options screen state is updated`() {
+ val sitePermissionLabel = "Autoplay"
+ store.dispatch(
+ SitePermissionOptionsScreenAction.UpdateSitePermissionOptions(
+ listOf(
+ AutoplayOption.BlockAudioOnly(),
+ AutoplayOption.AllowAudioVideo(),
+ AutoplayOption.BlockAudioVideo(),
+ ),
+ AutoplayOption.AllowAudioVideo(),
+ sitePermissionLabel,
+ true,
+ ),
+ ).joinBlocking()
+
+ assertEquals(AutoplayOption.AllowAudioVideo(), store.state.selectedSitePermissionOption)
+ assertTrue(store.state.isAndroidPermissionGranted)
+ assertEquals(
+ listOf(
+ AutoplayOption.BlockAudioOnly(),
+ AutoplayOption.AllowAudioVideo(),
+ AutoplayOption.BlockAudioVideo(),
+ ),
+ store.state.sitePermissionOptionList,
+ )
+ assertEquals(sitePermissionLabel, store.state.sitePermissionLabel)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/sitepermissions/SitePermissionsFragmentTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/sitepermissions/SitePermissionsFragmentTest.kt
new file mode 100644
index 0000000000..0072c55dee
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/sitepermissions/SitePermissionsFragmentTest.kt
@@ -0,0 +1,57 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.sitepermissions
+
+import androidx.preference.Preference
+import mozilla.components.support.test.mock
+import mozilla.components.support.test.robolectric.testContext
+import org.junit.Assert.assertEquals
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.spy
+import org.mockito.Mockito.verify
+import org.mozilla.focus.R
+import org.mozilla.focus.settings.permissions.SitePermissionsFragment
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermission
+import org.mozilla.focus.settings.permissions.permissionoptions.SitePermissionOptionsStorage
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class SitePermissionsFragmentTest {
+
+ private val storage: SitePermissionOptionsStorage = mock()
+ private lateinit var fragment: SitePermissionsFragment
+
+ @Before
+ fun setup() {
+ fragment = spy(SitePermissionsFragment())
+ doReturn(testContext).`when`(fragment).context
+ fragment.storage = storage
+ }
+
+ @Test
+ fun `GIVEN site permission fragment WHEN fragment is created THEN summary for Preference is set from storage`() {
+ val cameraPreference = Preference(testContext)
+ doReturn(cameraPreference).`when`(fragment).getPreference(R.string.pref_key_phone_feature_camera)
+ val expectedSummary = testContext.getString(R.string.phone_feature_blocked_by_android)
+ doReturn(expectedSummary).`when`(storage).getSitePermissionOptionSelectedLabel(SitePermission.CAMERA)
+
+ fragment.initPhoneFeature(SitePermission.CAMERA)
+
+ assertEquals(expectedSummary, cameraPreference.summary)
+ }
+
+ @Test
+ fun `GIVEN site permission fragment WHEN preference is clicked THEN navigate to site permission options screen it called`() {
+ val cameraPreference = Preference(testContext)
+ doReturn(cameraPreference).`when`(fragment).getPreference(R.string.pref_key_phone_feature_camera)
+
+ fragment.initPhoneFeature(SitePermission.CAMERA)
+ cameraPreference.performClick()
+
+ verify(fragment).navigateToSitePermissionOptionsScreen(SitePermission.CAMERA)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/GleanMetricsServiceTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/GleanMetricsServiceTest.kt
new file mode 100644
index 0000000000..28166ce263
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/GleanMetricsServiceTest.kt
@@ -0,0 +1,42 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry
+
+import android.content.Context
+import kotlinx.coroutines.runBlocking
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.concept.engine.Engine
+import mozilla.components.feature.search.telemetry.SearchProviderModel
+import mozilla.components.feature.search.telemetry.ads.AdsTelemetry
+import mozilla.components.feature.search.telemetry.incontent.InContentTelemetry
+import org.junit.Test
+import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.mock
+import org.mockito.Mockito.verify
+import org.mozilla.focus.Components
+
+class GleanMetricsServiceTest {
+ @Test
+ fun `WHEN installSearchTelemetryExtensions is called THEN install the ads and search telemetry extensions`() {
+ val components = mock(Components::class.java)
+ val store = mock(BrowserStore::class.java)
+ val engine = mock(Engine::class.java)
+ val adsExtension = mock(AdsTelemetry::class.java)
+ val searchExtension = mock(InContentTelemetry::class.java)
+ val providerList: List<SearchProviderModel> = mock()
+ doReturn(engine).`when`(components).engine
+ doReturn(store).`when`(components).store
+ doReturn(adsExtension).`when`(components).adsTelemetry
+ doReturn(searchExtension).`when`(components).searchTelemetry
+ val glean = GleanMetricsService(mock(Context::class.java))
+
+ runBlocking {
+ glean.installSearchTelemetryExtensions(components, providerList)
+
+ verify(adsExtension).install(engine, store, providerList)
+ verify(searchExtension).install(engine, store, providerList)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/ProfilerMarkerFactProcessorTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/ProfilerMarkerFactProcessorTest.kt
new file mode 100644
index 0000000000..d95da8aac5
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/ProfilerMarkerFactProcessorTest.kt
@@ -0,0 +1,96 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry
+
+import android.os.Handler
+import android.os.Looper
+import mozilla.components.concept.base.profiler.Profiler
+import mozilla.components.support.base.Component
+import mozilla.components.support.base.facts.Action
+import mozilla.components.support.base.facts.Fact
+import mozilla.components.support.test.any
+import mozilla.components.support.test.argumentCaptor
+import org.junit.Before
+import org.junit.Test
+import org.mockito.Mockito.mock
+import org.mockito.Mockito.never
+import org.mockito.Mockito.verify
+import org.mockito.Mockito.verifyNoInteractions
+import org.mockito.Mockito.`when`
+
+class ProfilerMarkerFactProcessorTest {
+
+ private val profiler: Profiler = mock(Profiler::class.java)
+ private val mainHandler: Handler = mock(Handler::class.java)
+ lateinit var processor: ProfilerMarkerFactProcessor
+
+ var myLooper: Looper? = null
+
+ @Before
+ fun setUp() {
+ myLooper = null
+ processor = ProfilerMarkerFactProcessor({ profiler }, mainHandler, { myLooper })
+ }
+
+ @Test
+ fun `Test on the main thread`() {
+ // GIVEN we are on the main thread
+ myLooper = mainHandler.looper // main thread
+
+ // WHEN a fact with an implementation detail action is received
+ val fact = newFact(Action.IMPLEMENTATION_DETAIL)
+ processor.process(fact)
+
+ // THEN a profiler marker is added now
+ verify(profiler).addMarker(fact.item)
+ }
+
+ @Test
+ fun `Test not on the main thread`() {
+ // GIVEN we are not on the main thread
+ myLooper = mock(Looper::class.java) // off main thread
+
+ // WHEN a fact with an implementation detail action is received
+ val mainThreadPostedArg = argumentCaptor<Runnable>()
+ `when`(profiler.getProfilerTime()).thenReturn(100.0)
+
+ val fact = newFact(Action.IMPLEMENTATION_DETAIL)
+ processor.process(fact)
+
+ // THEN adding the marker is posted to the main thread
+ verify(mainHandler).post(mainThreadPostedArg.capture())
+ verifyProfilerAddMarkerWasNotCalled()
+
+ mainThreadPostedArg.value.run()
+ verify(profiler).addMarker(fact.item, 100.0, 100.0, null)
+ }
+
+ @Test
+ fun `Test non-implementation detail`() {
+ // WHEN a fact with a non-implementation detail action is received
+ val fact = newFact(Action.CANCEL)
+ processor.process(fact)
+
+ // THEN no profiler marker is added
+ verifyNoInteractions(profiler)
+ }
+
+ private fun verifyProfilerAddMarkerWasNotCalled() {
+ verify(profiler, never()).addMarker(any())
+ verify(profiler, never()).addMarker(any(), any() as Double?)
+ verify(profiler, never()).addMarker(any(), any() as String?)
+ verify(profiler, never()).addMarker(any(), any(), any())
+ verify(profiler, never()).addMarker(any(), any(), any(), any())
+ }
+}
+
+private fun newFact(
+ action: Action,
+ item: String = "itemName",
+) = Fact(
+ Component.BROWSER_SESSION_STORAGE,
+ action,
+ item,
+)
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupActivityLogTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupActivityLogTest.kt
new file mode 100644
index 0000000000..b08ebb9f6e
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupActivityLogTest.kt
@@ -0,0 +1,99 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry
+
+import android.app.Activity
+import android.app.Application
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleOwner
+import mozilla.components.support.test.any
+import mozilla.components.support.test.mock
+import org.junit.Assert.assertEquals
+import org.junit.Assert.assertTrue
+import org.junit.Before
+import org.junit.Test
+import org.mockito.Mockito.verify
+import org.mockito.Mockito.`when`
+import org.mozilla.focus.telemetry.startuptelemetry.StartupActivityLog
+import org.mozilla.focus.telemetry.startuptelemetry.StartupActivityLog.LogEntry
+
+class StartupActivityLogTest {
+
+ private lateinit var log: StartupActivityLog
+ private lateinit var appObserver: StartupActivityLog.StartupLogAppLifecycleObserver
+ private lateinit var activityCallbacks: StartupActivityLog.StartupLogActivityLifecycleCallbacks
+
+ @Before
+ fun setUp() {
+ log = StartupActivityLog()
+ val (appObserver, activityCallbacks) = log.getObserversForTesting()
+ this.appObserver = appObserver
+ this.activityCallbacks = activityCallbacks
+ }
+
+ @Test
+ fun `WHEN register is called THEN it is registered`() {
+ val app: Application = mock()
+ val lifecycleOwner: LifecycleOwner = mock()
+ val mLifecycle: Lifecycle = mock()
+ `when`(lifecycleOwner.lifecycle).thenReturn(mLifecycle)
+
+ log.registerInAppOnCreate(app, lifecycleOwner)
+
+ verify(app).registerActivityLifecycleCallbacks(any())
+ }
+
+ @Test // we test start and stop individually due to the clear-on-stop behavior.
+ fun `WHEN app observer start is called THEN it is added directly to the log`() {
+ assertTrue(log.log.isEmpty())
+
+ appObserver.onStart(mock())
+ assertEquals(listOf(LogEntry.AppStarted), log.log)
+
+ appObserver.onStart(mock())
+ assertEquals(listOf(LogEntry.AppStarted, LogEntry.AppStarted), log.log)
+ }
+
+ @Test // we test start and stop individually due to the clear-on-stop behavior.
+ fun `WHEN app observer stop is called THEN it is added directly to the log`() {
+ assertTrue(log.log.isEmpty())
+
+ appObserver.onStop(mock())
+ assertEquals(listOf(LogEntry.AppStopped), log.log)
+ }
+
+ @Test
+ fun `WHEN activity callback methods are called THEN they are added directly to the log`() {
+ assertTrue(log.log.isEmpty())
+ val expected = mutableListOf<LogEntry>()
+
+ val activityClass = mock<Activity>()::class.java // mockk can't mock Class<...>
+
+ activityCallbacks.onActivityCreated(mock(), null)
+ expected.add(LogEntry.ActivityCreated(activityClass))
+ assertEquals(expected, log.log)
+
+ activityCallbacks.onActivityStarted(mock())
+ expected.add(LogEntry.ActivityStarted(activityClass))
+ assertEquals(expected, log.log)
+
+ activityCallbacks.onActivityStopped(mock())
+ expected.add(LogEntry.ActivityStopped(activityClass))
+ assertEquals(expected, log.log)
+ }
+
+ @Test
+ fun `WHEN app STOPPED is called THEN the log is emptied expect for the stop event`() {
+ assertTrue(log.log.isEmpty())
+
+ activityCallbacks.onActivityCreated(mock(), null)
+ activityCallbacks.onActivityStarted(mock())
+ appObserver.onStart(mock())
+ assertEquals(3, log.log.size)
+
+ appObserver.onStop(mock())
+ assertEquals(listOf(LogEntry.AppStopped), log.log)
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupPathProviderTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupPathProviderTest.kt
new file mode 100644
index 0000000000..cc023ee079
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupPathProviderTest.kt
@@ -0,0 +1,213 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry
+
+import android.content.Intent
+import androidx.lifecycle.Lifecycle
+import mozilla.components.support.test.any
+import mozilla.components.support.test.mock
+import org.junit.Assert.assertEquals
+import org.junit.Before
+import org.junit.Test
+import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.spy
+import org.mockito.Mockito.verify
+import org.mozilla.focus.telemetry.startuptelemetry.StartupPathProvider
+import org.mozilla.focus.telemetry.startuptelemetry.StartupPathProvider.StartupPath
+
+class StartupPathProviderTest {
+
+ private lateinit var provider: StartupPathProvider
+ private lateinit var callbacks: StartupPathProvider.StartupPathLifecycleObserver
+
+ private val intent: Intent = mock()
+
+ @Before
+ fun setUp() {
+ provider = StartupPathProvider()
+ callbacks = provider.getTestCallbacks()
+ }
+
+ @Test
+ fun `WHEN attach is called THEN the provider is registered to the lifecycle`() {
+ val lifecycle = mock<Lifecycle>()
+ provider.attachOnActivityOnCreate(lifecycle, null)
+
+ verify(lifecycle).addObserver(any())
+ }
+
+ @Test
+ fun `WHEN calling attach THEN the intent is passed to on intent received`() {
+ // With this test, we're basically saying, "attach..." does the same thing as
+ // "onIntentReceived" so we don't need to duplicate all the tests we run for
+ // "onIntentReceived".
+ val spyProvider = spy(provider)
+ spyProvider.attachOnActivityOnCreate(mock(), intent)
+
+ verify(spyProvider).onIntentReceived(intent)
+ }
+
+ @Test
+ fun `GIVEN no intent is received and the activity is not started WHEN getting the start up path THEN it is not set`() {
+ assertEquals(StartupPath.NOT_SET, provider.startupPathForActivity)
+ }
+
+ @Test
+ fun `GIVEN a main intent is received but the activity is not started yet WHEN getting the start up path THEN main is returned`() {
+ doReturn(Intent.ACTION_MAIN).`when`(intent).action
+ provider.onIntentReceived(intent)
+ assertEquals(StartupPath.MAIN, provider.startupPathForActivity)
+ }
+
+ @Test
+ fun `GIVEN a main intent is received and the app is started WHEN getting the start up path THEN it is main`() {
+ doReturn(Intent.ACTION_MAIN).`when`(intent).action
+ callbacks.onCreate(mock())
+ provider.onIntentReceived(intent)
+ callbacks.onStart(mock())
+
+ assertEquals(StartupPath.MAIN, provider.startupPathForActivity)
+ }
+
+ @Test
+ fun `GIVEN the app is launched from the homeScreen WHEN getting the start up path THEN it is main`() {
+ // There's technically more to a homeScreen Intent but it's fine for now.
+ doReturn(Intent.ACTION_MAIN).`when`(intent).action
+ launchApp(intent)
+ assertEquals(StartupPath.MAIN, provider.startupPathForActivity)
+ }
+
+ @Test
+ fun `GIVEN the app is launched by app link WHEN getting the start up path THEN it is view`() {
+ // There's technically more to a homeScreen Intent but it's fine for now.
+ doReturn(Intent.ACTION_VIEW).`when`(intent).action
+
+ launchApp(intent)
+
+ assertEquals(StartupPath.VIEW, provider.startupPathForActivity)
+ }
+
+ @Test
+ fun `GIVEN the app is launched by a send action WHEN getting the start up path THEN it is unknown`() {
+ doReturn(Intent.ACTION_SEND).`when`(intent).action
+
+ launchApp(intent)
+
+ assertEquals(StartupPath.UNKNOWN, provider.startupPathForActivity)
+ }
+
+ @Test
+ fun `GIVEN the app is launched by a null intent (is this possible) WHEN getting the start up path THEN it is not set`() {
+ callbacks.onCreate(mock())
+ provider.onIntentReceived(null)
+ callbacks.onStart(mock())
+ callbacks.onResume(mock())
+
+ assertEquals(StartupPath.NOT_SET, provider.startupPathForActivity)
+ }
+
+ @Test
+ fun `GIVEN the app is launched to the homeScreen and stopped WHEN getting the start up path THEN it is not set`() {
+ doReturn(Intent.ACTION_MAIN).`when`(intent).action
+
+ launchApp(intent)
+ stopLaunchedApp()
+
+ assertEquals(StartupPath.NOT_SET, provider.startupPathForActivity)
+ }
+
+ @Test
+ fun `GIVEN the app is launched to the homeScreen, stopped, and relaunched warm from app link WHEN getting the start up path THEN it is view`() {
+ doReturn(Intent.ACTION_MAIN).`when`(intent).action
+
+ launchApp(intent)
+ stopLaunchedApp()
+
+ doReturn(Intent.ACTION_VIEW).`when`(intent).action
+
+ startStoppedApp(intent)
+
+ assertEquals(StartupPath.VIEW, provider.startupPathForActivity)
+ }
+
+ @Test
+ fun `GIVEN the app is launched to the homeScreen, stopped, and relaunched warm from the app switcher WHEN getting the start up path THEN it is not set`() {
+ doReturn(Intent.ACTION_MAIN).`when`(intent).action
+
+ launchApp(intent)
+ stopLaunchedApp()
+ startStoppedAppFromAppSwitcher()
+
+ assertEquals(StartupPath.NOT_SET, provider.startupPathForActivity)
+ }
+
+ @Test
+ fun `GIVEN the app is launched to the homeScreen, paused, and resumed WHEN getting the start up path THEN it returns the initial intent value`() {
+ doReturn(Intent.ACTION_MAIN).`when`(intent).action
+
+ launchApp(intent)
+ callbacks.onPause(mock())
+ callbacks.onResume(mock())
+
+ assertEquals(StartupPath.MAIN, provider.startupPathForActivity)
+ }
+
+ @Test
+ fun `GIVEN the app is launched with an intent and receives an intent while the activity is foregrounded WHEN getting the start up path THEN it returns the initial intent value`() {
+ doReturn(Intent.ACTION_MAIN).`when`(intent).action
+
+ launchApp(intent)
+ doReturn(Intent.ACTION_VIEW).`when`(intent).action
+
+ receiveIntentInForeground(intent)
+
+ assertEquals(StartupPath.MAIN, provider.startupPathForActivity)
+ }
+
+ @Test
+ fun `GIVEN the app is launched, stopped, started from the app switcher and receives an intent in the foreground WHEN getting the start up path THEN it returns not set`() {
+ doReturn(Intent.ACTION_MAIN).`when`(intent).action
+
+ launchApp(intent)
+ stopLaunchedApp()
+ startStoppedAppFromAppSwitcher()
+ doReturn(Intent.ACTION_VIEW).`when`(intent).action
+
+ receiveIntentInForeground(intent)
+
+ assertEquals(StartupPath.NOT_SET, provider.startupPathForActivity)
+ }
+
+ private fun launchApp(intent: Intent) {
+ callbacks.onCreate(mock())
+ provider.onIntentReceived(intent)
+ callbacks.onStart(mock())
+ callbacks.onResume(mock())
+ }
+
+ private fun stopLaunchedApp() {
+ callbacks.onPause(mock())
+ callbacks.onStop(mock())
+ }
+
+ private fun startStoppedApp(intent: Intent) {
+ callbacks.onStart(mock())
+ provider.onIntentReceived(intent)
+ callbacks.onResume(mock())
+ }
+
+ private fun startStoppedAppFromAppSwitcher() {
+ // What makes the app switcher case special is it starts the app without an intent.
+ callbacks.onStart(mock())
+ callbacks.onResume(mock())
+ }
+
+ private fun receiveIntentInForeground(intent: Intent) {
+ // To my surprise, the app is paused before receiving an intent on Pixel 2.
+ callbacks.onPause(mock())
+ provider.onIntentReceived(intent)
+ callbacks.onResume(mock())
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupStateProviderTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupStateProviderTest.kt
new file mode 100644
index 0000000000..db8d452b63
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupStateProviderTest.kt
@@ -0,0 +1,417 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry
+
+import mozilla.components.support.test.mock
+import org.junit.Assert.assertEquals
+import org.junit.Assert.assertFalse
+import org.junit.Assert.assertTrue
+import org.junit.Before
+import org.junit.Test
+import org.mockito.Mockito
+import org.mozilla.focus.activity.IntentReceiverActivity
+import org.mozilla.focus.activity.MainActivity
+import org.mozilla.focus.telemetry.startuptelemetry.AppStartReasonProvider
+import org.mozilla.focus.telemetry.startuptelemetry.AppStartReasonProvider.StartReason
+import org.mozilla.focus.telemetry.startuptelemetry.StartupActivityLog
+import org.mozilla.focus.telemetry.startuptelemetry.StartupActivityLog.LogEntry
+import org.mozilla.focus.telemetry.startuptelemetry.StartupStateProvider
+import org.mozilla.focus.telemetry.startuptelemetry.StartupStateProvider.StartupState
+
+class StartupStateProviderTest {
+
+ private lateinit var provider: StartupStateProvider
+ private var startupActivityLog: StartupActivityLog = mock()
+ private var startReasonProvider: AppStartReasonProvider = mock()
+
+ private lateinit var logEntries: MutableList<LogEntry>
+
+ private val mainActivityClass = MainActivity::class.java
+ private val irActivityClass = IntentReceiverActivity::class.java
+
+ @Before
+ fun setUp() {
+ provider = StartupStateProvider(startupActivityLog, startReasonProvider)
+
+ logEntries = mutableListOf()
+ Mockito.doReturn(logEntries).`when`(startupActivityLog).log
+ Mockito.doReturn(logEntries).`when`(startupActivityLog).log
+ Mockito.doReturn(StartReason.ACTIVITY).`when`(startReasonProvider).reason
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN is cold start THEN cold start is true`() {
+ forEachColdStartEntries { index ->
+ assertTrue("$index", provider.isColdStartForStartedActivity(mainActivityClass))
+ }
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN warm start THEN cold start is false`() {
+ forEachWarmStartEntries { index ->
+ assertFalse("$index", provider.isColdStartForStartedActivity(mainActivityClass))
+ }
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN hot start THEN cold start is false`() {
+ forEachHotStartEntries { index ->
+ assertFalse("$index", provider.isColdStartForStartedActivity(mainActivityClass))
+ }
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN is cold start THEN warm start is false`() {
+ forEachColdStartEntries { index ->
+ assertFalse("$index", provider.isWarmStartForStartedActivity(mainActivityClass))
+ }
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN is warm start THEN warm start is true`() {
+ forEachWarmStartEntries { index ->
+ assertTrue("$index", provider.isWarmStartForStartedActivity(mainActivityClass))
+ }
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN is hot start THEN warm start is false`() {
+ forEachHotStartEntries { index ->
+ assertFalse("$index", provider.isWarmStartForStartedActivity(mainActivityClass))
+ }
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN is cold start THEN hot start is false`() {
+ forEachColdStartEntries { index ->
+ assertFalse("$index", provider.isHotStartForStartedActivity(mainActivityClass))
+ }
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN is warm start THEN hot start is false`() {
+ forEachWarmStartEntries { index ->
+ assertFalse("$index", provider.isHotStartForStartedActivity(mainActivityClass))
+ }
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN is hot start THEN hot start is true`() {
+ forEachHotStartEntries { index ->
+ assertTrue("$index", provider.isHotStartForStartedActivity(mainActivityClass))
+ }
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN we launched HA through a drawing IntentRA THEN start up is not cold`() {
+ // These entries mimic observed behavior for local code changes.
+ logEntries.addAll(
+ listOf(
+ LogEntry.ActivityCreated(irActivityClass),
+ LogEntry.ActivityStarted(irActivityClass),
+ LogEntry.AppStarted,
+ LogEntry.ActivityCreated(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.ActivityStopped(irActivityClass),
+ ),
+ )
+ assertFalse(provider.isColdStartForStartedActivity(mainActivityClass))
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN we launched HA through a drawing IntentRA THEN start up is not warm`() {
+ // These entries mimic observed behavior for local code changes.
+ logEntries.addAll(
+ listOf(
+ LogEntry.AppStopped,
+ LogEntry.ActivityStopped(mainActivityClass),
+ LogEntry.ActivityCreated(irActivityClass),
+ LogEntry.ActivityStarted(irActivityClass),
+ LogEntry.AppStarted,
+ LogEntry.ActivityCreated(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.ActivityStopped(irActivityClass),
+ ),
+ )
+ assertFalse(provider.isWarmStartForStartedActivity(mainActivityClass))
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN we launched HA through a drawing IntentRA THEN start up is not hot`() {
+ // These entries mimic observed behavior for local code changes.
+ logEntries.addAll(
+ listOf(
+ LogEntry.AppStopped,
+ LogEntry.ActivityStopped(mainActivityClass),
+ LogEntry.ActivityCreated(irActivityClass),
+ LogEntry.ActivityStarted(irActivityClass),
+ LogEntry.AppStarted,
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.ActivityStopped(irActivityClass),
+ ),
+ )
+ assertFalse(provider.isHotStartForStartedActivity(mainActivityClass))
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN two MainActivities are created THEN start up is not cold`() {
+ // We're making an assumption about how this would work based on previous observed patterns.
+ // AIUI, we should never have more than one MainActivity.
+ logEntries.addAll(
+ listOf(
+ LogEntry.ActivityCreated(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.AppStarted,
+ LogEntry.ActivityCreated(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.ActivityStopped(mainActivityClass),
+ ),
+ )
+ assertFalse(provider.isColdStartForStartedActivity(mainActivityClass))
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN an activity hasn't been created yet THEN start up is not cold`() {
+ assertFalse(provider.isColdStartForStartedActivity(mainActivityClass))
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN an activity hasn't started yet THEN start up is not cold`() {
+ logEntries.addAll(
+ listOf(
+ LogEntry.ActivityCreated(mainActivityClass),
+ ),
+ )
+ assertFalse(provider.isColdStartForStartedActivity(mainActivityClass))
+ }
+
+ @Test
+ fun `GIVEN the app did not start for an activity WHEN is cold is checked THEN it returns false`() {
+ Mockito.doReturn(StartReason.NON_ACTIVITY).`when`(startReasonProvider).reason
+ assertFalse(provider.isColdStartForStartedActivity(mainActivityClass))
+
+ forEachColdStartEntries { index ->
+ assertFalse("$index", provider.isColdStartForStartedActivity(mainActivityClass))
+ }
+ }
+
+ @Test
+ fun `GIVEN the app has not been stopped WHEN an activity has not been created THEN it's not a warm start`() {
+ assertFalse(provider.isWarmStartForStartedActivity(mainActivityClass))
+ }
+
+ @Test
+ fun `GIVEN the app has been stopped WHEN an activity has not been created THEN it's not a warm start`() {
+ logEntries.add(LogEntry.AppStopped)
+ assertFalse(provider.isWarmStartForStartedActivity(mainActivityClass))
+ }
+
+ @Test
+ fun `GIVEN the app has been stopped WHEN an activity has not been started THEN it's not a warm start`() {
+ logEntries.addAll(
+ listOf(
+ LogEntry.AppStopped,
+ LogEntry.ActivityCreated(mainActivityClass),
+ ),
+ )
+ assertFalse(provider.isWarmStartForStartedActivity(mainActivityClass))
+ }
+
+ @Test
+ fun `GIVEN the app has not been stopped WHEN an activity has not been created THEN it's not a hot start`() {
+ assertFalse(provider.isHotStartForStartedActivity(mainActivityClass))
+ }
+
+ @Test
+ fun `GIVEN the app has been stopped WHEN an activity has not been created THEN it's not a hot start`() {
+ logEntries.add(LogEntry.AppStopped)
+ assertFalse(provider.isHotStartForStartedActivity(mainActivityClass))
+ }
+
+ @Test
+ fun `GIVEN the app has been stopped WHEN an activity has not been started THEN it's not a hot start`() {
+ logEntries.addAll(
+ listOf(
+ LogEntry.AppStopped,
+ LogEntry.ActivityCreated(mainActivityClass),
+ ),
+ )
+ assertFalse(provider.isHotStartForStartedActivity(mainActivityClass))
+ }
+
+ @Test
+ fun `GIVEN the app started for an activity WHEN it is a cold start THEN get startup state is cold`() {
+ forEachColdStartEntries { index ->
+ assertEquals("$index", StartupState.COLD, provider.getStartupStateForStartedActivity(mainActivityClass))
+ }
+ }
+
+ @Test
+ fun `WHEN it is a warm start THEN get startup state is warm`() {
+ forEachWarmStartEntries { index ->
+ assertEquals("$index", StartupState.WARM, provider.getStartupStateForStartedActivity(mainActivityClass))
+ }
+ }
+
+ @Test
+ fun `WHEN it is a hot start THEN get startup state is hot`() {
+ forEachHotStartEntries { index ->
+ assertEquals("$index", StartupState.HOT, provider.getStartupStateForStartedActivity(mainActivityClass))
+ }
+ }
+
+ @Test
+ fun `WHEN two activities are started THEN get startup state is unknown`() {
+ logEntries.addAll(
+ listOf(
+ LogEntry.ActivityCreated(irActivityClass),
+ LogEntry.ActivityStarted(irActivityClass),
+ LogEntry.AppStarted,
+ LogEntry.ActivityCreated(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.ActivityStopped(irActivityClass),
+ ),
+ )
+
+ assertEquals(StartupState.UNKNOWN, provider.getStartupStateForStartedActivity(mainActivityClass))
+ }
+
+ private fun forEachColdStartEntries(block: (index: Int) -> Unit) {
+ // These entries mimic observed behavior.
+ //
+ // MAIN: open HomeActivity directly.
+ val coldStartEntries = listOf(
+ listOf(
+ LogEntry.ActivityCreated(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.AppStarted,
+
+ // VIEW: open non-drawing IntentReceiverActivity, then HomeActivity.
+ ),
+ listOf(
+ LogEntry.ActivityCreated(irActivityClass),
+ LogEntry.ActivityCreated(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.AppStarted,
+ ),
+ )
+
+ forEachStartEntry(coldStartEntries, block)
+ }
+
+ private fun forEachWarmStartEntries(block: (index: Int) -> Unit) {
+ // These entries mimic observed behavior. We test both truncated (i.e. the current behavior
+ // with the optimization to prevent an infinite log) and untruncated (the behavior without
+ // such an optimization).
+ //
+ // truncated MAIN: open HomeActivity directly.
+ val warmStartEntries = listOf(
+ listOf(
+ LogEntry.AppStopped,
+ LogEntry.ActivityStopped(mainActivityClass),
+ LogEntry.ActivityCreated(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.AppStarted,
+
+ // untruncated MAIN: open MainActivity directly.
+ ),
+ listOf(
+ LogEntry.ActivityCreated(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.AppStarted,
+ LogEntry.AppStopped,
+ LogEntry.ActivityStopped(mainActivityClass),
+ LogEntry.ActivityCreated(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.AppStarted,
+
+ // truncated VIEW: open non-drawing IntentReceiverActivity, then MainActivity.
+ ),
+ listOf(
+ LogEntry.AppStopped,
+ LogEntry.ActivityStopped(mainActivityClass),
+ LogEntry.ActivityCreated(irActivityClass),
+ LogEntry.ActivityCreated(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.AppStarted,
+
+ // untruncated VIEW: open non-drawing IntentReceiverActivity, then MainActivity.
+ ),
+ listOf(
+ LogEntry.ActivityCreated(irActivityClass),
+ LogEntry.ActivityCreated(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.AppStarted,
+ LogEntry.AppStopped,
+ LogEntry.ActivityStopped(mainActivityClass),
+ LogEntry.ActivityCreated(irActivityClass),
+ LogEntry.ActivityCreated(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.AppStarted,
+ ),
+ )
+
+ forEachStartEntry(warmStartEntries, block)
+ }
+
+ private fun forEachHotStartEntries(block: (index: Int) -> Unit) {
+ // These entries mimic observed behavior. We test both truncated (i.e. the current behavior
+ // with the optimization to prevent an infinite log) and untruncated (the behavior without
+ // such an optimization).
+ //
+ // truncated MAIN: open HomeActivity directly.
+ val hotStartEntries = listOf(
+ listOf(
+ LogEntry.AppStopped,
+ LogEntry.ActivityStopped(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.AppStarted,
+
+ // untruncated MAIN: open HomeActivity directly.
+ ),
+ listOf(
+ LogEntry.ActivityCreated(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.AppStarted,
+ LogEntry.AppStopped,
+ LogEntry.ActivityStopped(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.AppStarted,
+
+ // truncated VIEW: open non-drawing IntentReceiverActivity, then HomeActivity.
+ ),
+ listOf(
+ LogEntry.AppStopped,
+ LogEntry.ActivityStopped(mainActivityClass),
+ LogEntry.ActivityCreated(irActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.AppStarted,
+
+ // untruncated VIEW: open non-drawing IntentReceiverActivity, then HomeActivity.
+ ),
+ listOf(
+ LogEntry.ActivityCreated(irActivityClass),
+ LogEntry.ActivityCreated(mainActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.AppStarted,
+ LogEntry.AppStopped,
+ LogEntry.ActivityStopped(mainActivityClass),
+ LogEntry.ActivityCreated(irActivityClass),
+ LogEntry.ActivityStarted(mainActivityClass),
+ LogEntry.AppStarted,
+ ),
+ )
+
+ forEachStartEntry(hotStartEntries, block)
+ }
+
+ private fun forEachStartEntry(entries: List<List<LogEntry>>, block: (index: Int) -> Unit) {
+ entries.forEachIndexed { index, startEntry ->
+ logEntries.clear()
+ logEntries.addAll(startEntry)
+ block(index)
+ }
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupTypeTelemetryTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupTypeTelemetryTest.kt
new file mode 100644
index 0000000000..2d37068eda
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/telemetry/StartupTypeTelemetryTest.kt
@@ -0,0 +1,152 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.telemetry
+
+import androidx.lifecycle.Lifecycle
+import kotlinx.coroutines.test.advanceUntilIdle
+import mozilla.components.support.ktx.kotlin.crossProduct
+import mozilla.components.support.test.any
+import mozilla.components.support.test.mock
+import mozilla.components.support.test.robolectric.testContext
+import mozilla.components.support.test.rule.MainCoroutineRule
+import mozilla.components.support.test.rule.runTestOnMain
+import mozilla.telemetry.glean.testing.GleanTestRule
+import org.junit.Assert.assertEquals
+import org.junit.Assert.assertNull
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.spy
+import org.mockito.Mockito.times
+import org.mockito.Mockito.verify
+import org.mozilla.focus.GleanMetrics.PerfStartup
+import org.mozilla.focus.activity.MainActivity
+import org.mozilla.focus.telemetry.startuptelemetry.StartupPathProvider
+import org.mozilla.focus.telemetry.startuptelemetry.StartupPathProvider.StartupPath
+import org.mozilla.focus.telemetry.startuptelemetry.StartupStateProvider
+import org.mozilla.focus.telemetry.startuptelemetry.StartupStateProvider.StartupState
+import org.mozilla.focus.telemetry.startuptelemetry.StartupTypeTelemetry
+import org.mozilla.focus.telemetry.startuptelemetry.StartupTypeTelemetry.StartupTypeLifecycleObserver
+import org.robolectric.RobolectricTestRunner
+
+private val validTelemetryLabels = run {
+ val allStates = listOf("cold", "warm", "hot", "unknown")
+ val allPaths = listOf("main", "view", "unknown")
+
+ allStates.crossProduct(allPaths) { state, path -> "${state}_$path" }.toSet()
+}
+
+private val activityClass = MainActivity::class.java
+
+@RunWith(RobolectricTestRunner::class)
+class StartupTypeTelemetryTest {
+
+ private lateinit var telemetry: StartupTypeTelemetry
+ private lateinit var callbacks: StartupTypeLifecycleObserver
+ private var stateProvider: StartupStateProvider = mock()
+ private var pathProvider: StartupPathProvider = mock()
+
+ @get:Rule
+ val coroutinesTestRule = MainCoroutineRule()
+
+ @get:Rule
+ val gleanTestRule = GleanTestRule(testContext)
+
+ @Before
+ fun setUp() {
+ telemetry = spy(StartupTypeTelemetry(stateProvider, pathProvider))
+ callbacks = telemetry.getTestCallbacks()
+ }
+
+ @Test
+ fun `WHEN attach is called THEN it is registered to the lifecycle`() {
+ val lifecycle = mock<Lifecycle>()
+
+ telemetry.attachOnMainActivityOnCreate(lifecycle)
+
+ verify(lifecycle).addObserver(any())
+ }
+
+ @Test
+ fun `GIVEN all possible path and state combinations WHEN record telemetry THEN the labels are incremented the appropriate number of times`() = runTestOnMain {
+ val allPossibleInputArgs = StartupState.values().toList().crossProduct(
+ StartupPath.values().toList(),
+ ) { state, path ->
+ Pair(state, path)
+ }
+
+ allPossibleInputArgs.forEach { (state, path) ->
+ doReturn(state).`when`(stateProvider).getStartupStateForStartedActivity(activityClass)
+ doReturn(path).`when`(pathProvider).startupPathForActivity
+
+ telemetry.record(coroutinesTestRule.testDispatcher)
+ advanceUntilIdle()
+ }
+
+ validTelemetryLabels.forEach { label ->
+ // Path == NOT_SET gets bucketed with Path == UNKNOWN so we'll increment twice for those.
+ val expected = if (label.endsWith("unknown")) 2 else 1
+ assertEquals("label: $label", expected, PerfStartup.startupType[label].testGetValue())
+ }
+
+ // All invalid labels go to a single bucket: let's verify it has no value.
+ assertNull(PerfStartup.startupType["__other__"].testGetValue())
+ }
+
+ @Test
+ fun `WHEN record is called THEN telemetry is recorded with the appropriate label`() = runTestOnMain {
+ doReturn(StartupState.COLD).`when`(stateProvider).getStartupStateForStartedActivity(activityClass)
+ doReturn(StartupPath.MAIN).`when`(pathProvider).startupPathForActivity
+
+ telemetry.record(coroutinesTestRule.testDispatcher)
+ advanceUntilIdle()
+
+ assertEquals(1, PerfStartup.startupType["cold_main"].testGetValue())
+ }
+
+ @Test
+ fun `GIVEN the activity is launched WHEN onResume is called THEN we record the telemetry`() {
+ launchApp()
+ verify(telemetry).record(any())
+ }
+
+ @Test
+ fun `GIVEN the activity is launched WHEN the activity is paused and resumed THEN record is not called`() {
+ // This part of the test duplicates another test but it's needed to initialize the state of this test.
+ launchApp()
+ verify(telemetry).record(any())
+
+ callbacks.onPause(mock())
+ callbacks.onResume(mock())
+
+ verify(telemetry).record(any()) // i.e. this shouldn't be called again.
+ }
+
+ @Test
+ fun `GIVEN the activity is launched WHEN the activity is stopped and resumed THEN record is called again`() {
+ // This part of the test duplicates another test but it's needed to initialize the state of this test.
+ launchApp()
+ verify(telemetry).record(any())
+
+ callbacks.onPause(mock())
+ callbacks.onStop(mock())
+ callbacks.onStart(mock())
+ callbacks.onResume(mock())
+
+ verify(telemetry, times(2)).record(any())
+ }
+
+ private fun launchApp() {
+ // What these return isn't important.
+ doReturn(StartupState.COLD).`when`(stateProvider).getStartupStateForStartedActivity(activityClass)
+ doReturn(StartupPath.MAIN).`when`(pathProvider).startupPathForActivity
+
+ callbacks.onCreate(mock())
+ callbacks.onStart(mock())
+ callbacks.onResume(mock())
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/topsites/DefaultTopSitesStorageTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/topsites/DefaultTopSitesStorageTest.kt
new file mode 100644
index 0000000000..27ff6a5378
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/topsites/DefaultTopSitesStorageTest.kt
@@ -0,0 +1,136 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.topsites
+
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.test.UnconfinedTestDispatcher
+import kotlinx.coroutines.test.runTest
+import mozilla.components.feature.top.sites.PinnedSiteStorage
+import mozilla.components.feature.top.sites.TopSite
+import mozilla.components.support.test.mock
+import mozilla.components.support.test.whenever
+import org.junit.Assert.assertEquals
+import org.junit.Assert.assertTrue
+import org.junit.Test
+import org.mockito.Mockito.verify
+
+@ExperimentalCoroutinesApi
+class DefaultTopSitesStorageTest {
+
+ private val pinnedSitesStorage: PinnedSiteStorage = mock()
+
+ @Test
+ fun `WHEN a top site is added THEN the pinned sites storage is called`() = runTest(UnconfinedTestDispatcher()) {
+ val defaultTopSitesStorage = DefaultTopSitesStorage(
+ pinnedSitesStorage,
+ coroutineContext,
+ )
+
+ defaultTopSitesStorage.addTopSite("Mozilla", "https://mozilla.com", isDefault = false)
+
+ verify(pinnedSitesStorage).addPinnedSite(
+ "Mozilla",
+ "https://mozilla.com",
+ isDefault = false,
+ )
+ }
+
+ @Test
+ fun `WHEN a top site is removed THEN the pinned sites storage is called`() = runTest(UnconfinedTestDispatcher()) {
+ val defaultTopSitesStorage = DefaultTopSitesStorage(
+ pinnedSitesStorage,
+ coroutineContext,
+ )
+
+ val pinnedSite = TopSite.Pinned(
+ id = 2,
+ title = "Firefox",
+ url = "https://firefox.com",
+ createdAt = 2,
+ )
+
+ defaultTopSitesStorage.removeTopSite(pinnedSite)
+
+ verify(pinnedSitesStorage).removePinnedSite(pinnedSite)
+ }
+
+ @Test
+ fun `WHEN a top site is updated THEN the pinned sites storage is called`() = runTest(UnconfinedTestDispatcher()) {
+ val defaultTopSitesStorage = DefaultTopSitesStorage(
+ pinnedSitesStorage,
+ coroutineContext,
+ )
+
+ val pinnedSite = TopSite.Pinned(
+ id = 2,
+ title = "Wikipedia",
+ url = "https://wikipedia.com",
+ createdAt = 2,
+ )
+ defaultTopSitesStorage.updateTopSite(
+ pinnedSite,
+ "Wiki",
+ "https://en.wikipedia.org/wiki/Wiki",
+ )
+
+ verify(pinnedSitesStorage).updatePinnedSite(
+ pinnedSite,
+ "Wiki",
+ "https://en.wikipedia.org/wiki/Wiki",
+ )
+ }
+
+ @Test
+ fun `WHEN getTopSites is called THEN the appropriate top sites are returned`() = runTest {
+ val defaultTopSitesStorage = DefaultTopSitesStorage(
+ pinnedSitesStorage,
+ coroutineContext,
+ )
+
+ val pinnedSite1 = TopSite.Pinned(
+ id = 2,
+ title = "Wikipedia",
+ url = "https://wikipedia.com",
+ createdAt = 2,
+ )
+ val pinnedSite2 = TopSite.Pinned(
+ id = 3,
+ title = "Example",
+ url = "https://example.com",
+ createdAt = 3,
+ )
+
+ whenever(pinnedSitesStorage.getPinnedSites()).thenReturn(
+ listOf(
+ pinnedSite1,
+ pinnedSite2,
+ ),
+ )
+
+ var topSites = defaultTopSitesStorage.getTopSites(
+ totalSites = 0,
+ frecencyConfig = null,
+ )
+
+ assertTrue(topSites.isEmpty())
+
+ topSites = defaultTopSitesStorage.getTopSites(totalSites = 1)
+
+ assertEquals(1, topSites.size)
+ assertEquals(pinnedSite1, topSites[0])
+
+ topSites = defaultTopSitesStorage.getTopSites(totalSites = 2)
+
+ assertEquals(2, topSites.size)
+ assertEquals(pinnedSite1, topSites[0])
+ assertEquals(pinnedSite2, topSites[1])
+
+ topSites = defaultTopSitesStorage.getTopSites(totalSites = 5)
+
+ assertEquals(2, topSites.size)
+ assertEquals(pinnedSite1, topSites[0])
+ assertEquals(pinnedSite2, topSites[1])
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/utils/IntentUtilsTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/utils/IntentUtilsTest.kt
new file mode 100644
index 0000000000..dcbfd876a4
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/utils/IntentUtilsTest.kt
@@ -0,0 +1,21 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.mozilla.focus.utils
+
+import android.app.PendingIntent
+import org.junit.Assert.assertEquals
+import org.junit.Test
+
+class IntentUtilsTest {
+
+ @Test
+ fun `given a build version lower than 23, when defaultIntentPendingFlags is called, then flag 0 should be returned`() {
+ assertEquals(0, IntentUtils.defaultIntentPendingFlags(22))
+ }
+
+ @Test
+ fun `given a build version bigger than 22, when defaultIntentPendingFlags is called, then flag FLAG_IMMUTABLE should be returned`() {
+ assertEquals(PendingIntent.FLAG_IMMUTABLE, IntentUtils.defaultIntentPendingFlags(23))
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/utils/SupportUtilsTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/utils/SupportUtilsTest.kt
new file mode 100644
index 0000000000..fe55d8d4f8
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/utils/SupportUtilsTest.kt
@@ -0,0 +1,64 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.focus.utils
+
+import org.junit.Assert.assertEquals
+import org.junit.Test
+import java.util.Locale
+
+class SupportUtilsTest {
+
+ @Test
+ fun cleanup() {
+ // Other tests might get confused by our locale fiddling, so lets go back to the default:
+ Locale.setDefault(Locale.ENGLISH)
+ }
+
+ /*
+ * Super simple sumo URL test - it exists primarily to verify that we're setting the language
+ * and page tags correctly. appVersion is null in tests, so we just test that there's a null there,
+ * which doesn't seem too useful...
+ */
+ @Test
+ @Throws(Exception::class)
+ fun getSumoURLForTopic() {
+ val versionName = "testVersion"
+
+ val testTopic = SupportUtils.SumoTopic.TRACKERS
+ val testTopicStr = testTopic.topicStr
+
+ Locale.setDefault(Locale.GERMANY)
+ assertEquals(
+ "https://support.mozilla.org/1/mobile/$versionName/Android/de-DE/$testTopicStr",
+ SupportUtils.getSumoURLForTopic(versionName, testTopic),
+ )
+
+ Locale.setDefault(Locale.CANADA_FRENCH)
+ assertEquals(
+ "https://support.mozilla.org/1/mobile/$versionName/Android/fr-CA/$testTopicStr",
+ SupportUtils.getSumoURLForTopic(versionName, testTopic),
+ )
+ }
+
+ /**
+ * This is a pretty boring tests - it exists primarily to verify that we're actually setting
+ * a langtag in the manfiesto URL.
+ */
+ @Test
+ @Throws(Exception::class)
+ fun getManifestoURL() {
+ Locale.setDefault(Locale.UK)
+ assertEquals(
+ "https://www.mozilla.org/en-GB/about/manifesto/",
+ SupportUtils.manifestoURL,
+ )
+
+ Locale.setDefault(Locale.KOREA)
+ assertEquals(
+ "https://www.mozilla.org/ko-KR/about/manifesto/",
+ SupportUtils.manifestoURL,
+ )
+ }
+}
diff --git a/mobile/android/focus-android/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/mobile/android/focus-android/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
new file mode 100644
index 0000000000..cf1c399ea8
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
@@ -0,0 +1,2 @@
+mock-maker-inline
+// This allows mocking final classes (classes are final by default in Kotlin)
diff --git a/mobile/android/focus-android/app/src/test/resources/robolectric.properties b/mobile/android/focus-android/app/src/test/resources/robolectric.properties
new file mode 100644
index 0000000000..4359826c57
--- /dev/null
+++ b/mobile/android/focus-android/app/src/test/resources/robolectric.properties
@@ -0,0 +1,3 @@
+# Needed until Robolectric supports SDK 29+
+sdk=28
+application=org.mozilla.focus.EmptyFocusApplication
diff --git a/mobile/android/focus-android/app/tags.yaml b/mobile/android/focus-android/app/tags.yaml
new file mode 100644
index 0000000000..dfaa86e4c6
--- /dev/null
+++ b/mobile/android/focus-android/app/tags.yaml
@@ -0,0 +1,175 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### This file was AUTOMATICALLY GENERATED by `./tools/update-glean-tags.py`
+### DO NOT edit it by hand.
+
+# Disable line-length rule because the links in the descriptions can be long
+# yamllint disable rule:line-length
+
+
+---
+$schema: moz://mozilla.org/schemas/glean/tags/1-0-0
+Accounts:
+ description: Corresponds to the [Feature:Accounts](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AAccounts)
+ label on GitHub.
+AndroidIntegration:
+ description: Corresponds to the [Feature:AndroidIntegration](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AAndroidIntegration)
+ label on GitHub.
+Battery:
+ description: Corresponds to the [Feature:Battery](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ABattery)
+ label on GitHub.
+Bookmarks:
+ description: Corresponds to the [Feature:Bookmarks](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ABookmarks)
+ label on GitHub.
+Browsing:
+ description: Issues related to browsing experience, browser navigation, not web
+ issues. Corresponds to the [Feature:Browsing](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ABrowsing)
+ label on GitHub.
+Collections:
+ description: Corresponds to the [Feature:Collections](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ACollections)
+ label on GitHub.
+ContextMenu:
+ description: Menu that appears when long-pressing on website content. Corresponds
+ to the [Feature:ContextMenu](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AContextMenu)
+ label on GitHub.
+CrashReporting:
+ description: Corresponds to the [Feature:CrashReporting](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ACrashReporting)
+ label on GitHub.
+CustomTabs:
+ description: Corresponds to the [Feature:CustomTabs](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ACustomTabs)
+ label on GitHub.
+Download:
+ description: Corresponds to the [Feature:Download](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ADownload)
+ label on GitHub.
+ErrorMessages:
+ description: Corresponds to the [Feature:ErrorMessages](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AErrorMessages)
+ label on GitHub.
+Experiments:
+ description: A category for experiment-related features.. Corresponds to the [Feature:Experiments](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AExperiments)
+ label on GitHub.
+FindBar:
+ description: Corresponds to the [Feature:FindBar](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AFindBar)
+ label on GitHub.
+Forms:
+ description: Corresponds to the [Feature:Forms](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AForms)
+ label on GitHub.
+Gesture:
+ description: Corresponds to the [Feature:Gesture](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AGesture)
+ label on GitHub.
+History:
+ description: Corresponds to the [Feature:History](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AHistory)
+ label on GitHub.
+HomeScreen:
+ description: Corresponds to the [Feature:HomeScreen](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AHomeScreen)
+ label on GitHub.
+IME:
+ description: Text entry and keyboards. Corresponds to the [Feature:IME](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AIME)
+ label on GitHub.
+Logins:
+ description: Corresponds to the [Feature:Logins](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ALogins)
+ label on GitHub.
+MainMenu:
+ description: The three-dot menu that is seen on the browser and homescreen.. Corresponds
+ to the [Feature:MainMenu](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AMainMenu)
+ label on GitHub.
+Media:
+ description: Corresponds to the [Feature:Media](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AMedia)
+ label on GitHub.
+Migration:
+ description: Corresponds to the [Feature:Migration](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AMigration)
+ label on GitHub.
+Notifications:
+ description: Corresponds to the [Feature:Notifications](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ANotifications)
+ label on GitHub.
+Offline:
+ description: Corresponds to the [Feature:Offline](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AOffline)
+ label on GitHub.
+Onboarding:
+ description: First Run, Contextual Feature Recommendation/Recommender CFR. Corresponds
+ to the [Feature:Onboarding](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AOnboarding)
+ label on GitHub.
+OpenInApp:
+ description: intents. Corresponds to the [Feature:OpenInApp](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AOpenInApp)
+ label on GitHub.
+PWA:
+ description: Corresponds to the [Feature:PWA](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3APWA)
+ label on GitHub.
+Performance:
+ description: Used for data reviews to label metrics related to performance. Corresponds
+ to the [Feature:Performance](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3APerformance)
+ label on GitHub.
+Privacy&Security:
+ description: Corresponds to the [Feature:Privacy&Security](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3APrivacy%26Security)
+ label on GitHub.
+Push:
+ description: WebPush or Marketing push related features.. Corresponds to the [Feature:Push](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3APush)
+ label on GitHub.
+QRCode:
+ description: Corresponds to the [Feature:QRCode](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AQRCode)
+ label on GitHub.
+QuickSettings:
+ description: Corresponds to the [Feature:QuickSettings](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AQuickSettings)
+ label on GitHub.
+ReaderMode:
+ description: Corresponds to the [Feature:ReaderMode](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AReaderMode)
+ label on GitHub.
+Search:
+ description: Corresponds to the [Feature:Search](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ASearch)
+ label on GitHub.
+SearchProvider:
+ description: Corresponds to the [Feature:SearchProvider](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ASearchProvider)
+ label on GitHub.
+SearchWidget:
+ description: Issues related to the search widget. Corresponds to the [Feature:SearchWidget](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ASearchWidget)
+ label on GitHub.
+SendTab:
+ description: Corresponds to the [Feature:SendTab](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ASendTab)
+ label on GitHub.
+Settings:
+ description: Corresponds to the [Feature:Settings](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ASettings)
+ label on GitHub.
+Sharing:
+ description: Corresponds to the [Feature:Sharing](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ASharing)
+ label on GitHub.
+Shortcuts:
+ description: Top Sites on the Focus home page. Corresponds to the [Feature:Shortcuts](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AShortcuts)
+ label on GitHub.
+SitePermissions:
+ description: Corresponds to the [Feature:SitePermissions](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ASitePermissions)
+ label on GitHub.
+Snackbar:
+ description: Corresponds to the [Feature:Snackbar](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ASnackbar)
+ label on GitHub.
+Sync:
+ description: Corresponds to the [Feature:Sync](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ASync)
+ label on GitHub.
+SyncTabs:
+ description: Corresponds to the [Feature:SyncTabs](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ASyncTabs)
+ label on GitHub.
+Tabs:
+ description: Corresponds to the [Feature:Tabs](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ATabs)
+ label on GitHub.
+Telemetry:
+ description: Corresponds to the [Feature:Telemetry](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ATelemetry)
+ label on GitHub.
+TextSelection:
+ description: Corresponds to the [Feature:TextSelection](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ATextSelection)
+ label on GitHub.
+Themes:
+ description: Dark mode, light mode. Corresponds to the [Feature:Themes](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AThemes)
+ label on GitHub.
+Toolbar:
+ description: Address bar, see also Feature:Search. Corresponds to the [Feature:Toolbar](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AToolbar)
+ label on GitHub.
+TrackingProtection:
+ description: Corresponds to the [Feature:TrackingProtection](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3ATrackingProtection)
+ label on GitHub.
+Voice:
+ description: Corresponds to the [Feature:Voice](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AVoice)
+ label on GitHub.
+WebExtensions:
+ description: Corresponds to the [Feature:WebExtensions](https://github.com/mozilla-mobile/focus-android/issues?q=label%3AFeature%3AWebExtensions)
+ label on GitHub.
diff --git a/mobile/android/focus-android/automation/taskcluster/androidTest/copy-robo-crash-artifacts.py b/mobile/android/focus-android/automation/taskcluster/androidTest/copy-robo-crash-artifacts.py
new file mode 100644
index 0000000000..9945f08ef6
--- /dev/null
+++ b/mobile/android/focus-android/automation/taskcluster/androidTest/copy-robo-crash-artifacts.py
@@ -0,0 +1,273 @@
+#!/usr/bin/env python3
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+"""
+This script is designed to automate the process of fetching crash logs from Google Cloud Storage (GCS) for failed devices in a Robo test.
+It is intended to be run as part of a Taskcluster job following a scheduled test task.
+The script requires the presence of a `matrix_ids.json` artifact in the results directory and the availability of the `gsutil` command in the environment.
+
+The script performs the following operations:
+- Loads the `matrix_ids.json` artifact to identify the GCS paths for the crash logs.
+- Identifies failed devices based on the outcomes specified in the `matrix_ids.json` artifact.
+- Fetches crash logs for the failed devices from the specified GCS paths.
+- Copies the fetched crash logs to the current worker artifact results directory.
+
+The script is configured to log its operations and errors, providing visibility into its execution process.
+It uses the `gsutil` command-line tool to interact with GCS, ensuring compatibility with the GCS environment.
+
+Usage:
+ python3 script_name.py
+
+Requirements:
+ - The `matrix_ids.json` artifact must be present in the results directory.
+ - The `gsutil` command must be available in the environment.
+ - The script should be run after a scheduled test task in a Taskcluster job.
+
+Output:
+ - Crash logs for failed devices are copied to the current worker artifact results directory.
+"""
+
+import json
+import logging
+import os
+import re
+import subprocess
+import sys
+from enum import Enum
+
+
+def setup_logging():
+ """Configure logging for the script."""
+ log_format = "%(message)s"
+ logging.basicConfig(level=logging.INFO, format=log_format)
+
+
+class Worker(Enum):
+ """
+ Worker paths
+ """
+
+ RESULTS_DIR = "/builds/worker/artifacts/results"
+ ARTIFACTS_DIR = "/builds/worker/artifacts"
+
+
+class ArtifactType(Enum):
+ """
+ Artifact types for fetching crash logs and matrix IDs artifact.
+ """
+
+ CRASH_LOG = "data_app_crash*.txt"
+ MATRIX_IDS = "matrix_ids.json"
+
+
+def load_matrix_ids_artifact(matrix_file_path):
+ """Load the matrix IDs artifact from the specified file path.
+
+ Args:
+ matrix_file_path (str): The file path to the matrix IDs artifact.
+ Returns:
+ dict: The contents of the matrix IDs artifact.
+ """
+ try:
+ with open(matrix_file_path, "r") as f:
+ return json.load(f)
+ except FileNotFoundError:
+ logging.error(f"Could not find matrix file: {matrix_file_path}")
+ sys.exit(1)
+ except json.JSONDecodeError:
+ logging.error(f"Error decoding matrix file: {matrix_file_path}")
+ sys.exit(1)
+
+
+def get_gcs_path(matrix_artifact_file):
+ """
+ Extract the root GCS path from the matrix artifact file.
+
+ Args:
+ matrix_artifact_file (dict): The matrix artifact file contents.
+ Returns:
+ str: The root GCS path extracted from the matrix artifact file.
+ """
+ for matrix in matrix_artifact_file.values():
+ gcs_path = matrix.get("gcsPath")
+ if gcs_path:
+ return gcs_path
+ return None
+
+
+def check_gsutil_availability():
+ """
+ Check the availability of the `gsutil` command in the environment.
+ Exit the script if `gsutil` is not available.
+ """
+ try:
+ result = subprocess.run(["gsutil", "--version"], capture_output=True, text=True)
+ if result.returncode != 0:
+ logging.error(f"Error executing gsutil: {result.stderr}")
+ sys.exit(1)
+ except Exception as e:
+ logging.error(f"Error executing gsutil: {e}")
+ sys.exit(1)
+
+
+def fetch_artifacts(root_gcs_path, device, artifact_pattern):
+ """
+ Fetch artifacts from the specified GCS path pattern for the given device.
+
+ Args:
+ root_gcs_path (str): The root GCS path for the artifacts.
+ device (str): The device name for which to fetch artifacts.
+ artifact_pattern (str): The pattern to match the artifacts.
+ Returns:
+ list: A list of artifacts matching the specified pattern.
+ """
+ gcs_path_pattern = f"gs://{root_gcs_path.rstrip('/')}/{device}/{artifact_pattern}"
+
+ try:
+ result = subprocess.run(
+ ["gsutil", "ls", gcs_path_pattern], capture_output=True, text=True
+ )
+ if result.returncode == 0:
+ return result.stdout.splitlines()
+ else:
+ if "AccessDeniedException" in result.stderr:
+ logging.error(f"Permission denied for GCS path: {gcs_path_pattern}")
+ elif "network error" in result.stderr.lower():
+ logging.error(f"Network error accessing GCS path: {gcs_path_pattern}")
+ else:
+ logging.error(f"Failed to list files: {result.stderr}")
+ return []
+ except Exception as e:
+ logging.error(f"Error executing gsutil: {e}")
+ return []
+
+
+def fetch_failed_device_names(matrix_artifact_file):
+ """
+ Fetch the names of devices that failed based on the outcomes specified in the matrix artifact file.
+
+ Args:
+ matrix_artifact_file (dict): The matrix artifact file contents.
+ Returns:
+ list: A list of device names that failed in the test.
+ """
+ failed_devices = []
+ for matrix in matrix_artifact_file.values():
+ axes = matrix.get("axes", [])
+ for axis in axes:
+ if axis.get("outcome") == "failure":
+ device = axis.get("device")
+ if device:
+ failed_devices.append(device)
+ return failed_devices
+
+
+def gsutil_cp(artifact, dest):
+ """
+ Copy the specified artifact to the destination path using `gsutil`.
+
+ Args:
+ artifact (str): The path to the artifact to copy.
+ dest (str): The destination path to copy the artifact to.
+ Returns:
+ None
+ """
+ logging.info(f"Copying {artifact} to {dest}")
+ try:
+ result = subprocess.run(
+ ["gsutil", "cp", artifact, dest], capture_output=True, text=True
+ )
+ if result.returncode != 0:
+ if "AccessDeniedException" in result.stderr:
+ logging.error(f"Permission denied for GCS path: {artifact}")
+ elif "network error" in result.stderr.lower():
+ logging.error(f"Network error accessing GCS path: {artifact}")
+ else:
+ logging.error(f"Failed to list files: {result.stderr}")
+ except Exception as e:
+ logging.error(f"Error executing gsutil: {e}")
+
+
+def parse_crash_log(log_path):
+ crashes_reported = 0
+ if os.path.isfile(log_path):
+ with open(log_path) as f:
+ contents = f.read()
+ proc = "unknown"
+ match = re.search(r"Process: (.*)\n", contents, re.MULTILINE)
+ if match and len(match.groups()) == 1:
+ proc = match.group(1)
+ # Isolate the crash stack and reformat it for treeherder.
+ # Variation in stacks makes the regex tricky!
+ # Example:
+ # java.lang.NullPointerException
+ # at org.mozilla.fenix.library.bookmarks.BookmarkFragment.getBookmarkInteractor(BookmarkFragment.kt:72)
+ # at org.mozilla.fenix.library.bookmarks.BookmarkFragment.refreshBookmarks(BookmarkFragment.kt:297) ...
+ # Example:
+ # java.lang.IllegalStateException: pending state not allowed
+ # at org.mozilla.fenix.onboarding.OnboardingFragment.onCreate(OnboardingFragment.kt:83)
+ # at androidx.fragment.app.Fragment.performCreate(Fragment.java:3094) ...
+ # Example:
+ # java.lang.IllegalArgumentException: No handler given, and current thread has no looper!
+ # at android.hardware.camera2.impl.CameraDeviceImpl.checkHandler(CameraDeviceImpl.java:2380)
+ # at android.hardware.camera2.impl.CameraDeviceImpl.checkHandler(CameraDeviceImpl.java:2395)
+ match = re.search(
+ r"\n([\w\.]+[:\s\w\.,!?#^\'\"]+)\s*(at\s.*\n)", contents, re.MULTILINE
+ )
+ if match and len(match.groups()) == 2:
+ top_frame = match.group(1).rstrip() + " " + match.group(2)
+ remainder = contents[match.span()[1] :]
+ logging.error(f"PROCESS-CRASH | {proc} | {top_frame}{remainder}")
+ crashes_reported = 1
+ return crashes_reported
+
+
+def process_artifacts(artifact_type):
+ """
+ Process the artifacts based on the specified artifact type.
+
+ Args:
+ artifact_type (ArtifactType): The type of artifact to process.
+ Returns:
+ Number of crashes reported in treeherder format.
+ """
+ matrix_ids_artifact = load_matrix_ids_artifact(
+ Worker.RESULTS_DIR.value + "/" + ArtifactType.MATRIX_IDS.value
+ )
+ failed_device_names = fetch_failed_device_names(matrix_ids_artifact)
+ root_gcs_path = get_gcs_path(matrix_ids_artifact)
+
+ if not root_gcs_path:
+ logging.error("Could not find root GCS path in matrix file.")
+ return 0
+
+ if not failed_device_names:
+ return 0
+
+ crashes_reported = 0
+ for device in failed_device_names:
+ artifacts = fetch_artifacts(root_gcs_path, device, artifact_type.value)
+ if not artifacts:
+ logging.info(f"No artifacts found for device: {device}")
+ continue
+
+ for artifact in artifacts:
+ gsutil_cp(artifact, Worker.RESULTS_DIR.value)
+ crashes_reported += parse_crash_log(
+ os.path.join(Worker.RESULTS_DIR.value, os.path.basename(artifact))
+ )
+
+ return crashes_reported
+
+
+def main():
+ setup_logging()
+ check_gsutil_availability()
+ return process_artifacts(ArtifactType.CRASH_LOG)
+
+
+if __name__ == "__main__":
+ sys.exit(main())
diff --git a/mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm-beta.yml b/mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm-beta.yml
new file mode 100644
index 0000000000..8a3fea6dd4
--- /dev/null
+++ b/mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm-beta.yml
@@ -0,0 +1,36 @@
+# Google Cloud Documentation: https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run
+# Flank Documentation: https://flank.github.io/flank/
+gcloud:
+ results-bucket: focus_android_test_artifacts
+ record-video: true
+
+ timeout: 30m
+ async: false
+ num-flaky-test-attempts: 1
+
+ app: /app/path
+ test: /test/path
+
+ auto-google-login: false
+ use-orchestrator: true
+ environment-variables:
+ clearPackageData: true
+ directories-to-pull:
+ - /sdcard/screenshots
+ performance-metrics: true
+
+ test-targets:
+ - class org.mozilla.focus.activity.SearchTest#testBlankSearchDoesNothing
+ - class org.mozilla.focus.activity.EraseBrowsingDataTest#deleteHistoryOnRestartTest
+
+ device:
+ - model: Pixel2.arm
+ version: 30
+ locale: en_US
+
+flank:
+ project: GOOGLE_PROJECT
+ max-test-shards: 1
+ num-test-runs: 1
+ output-style: compact
+ full-junit-result: true
diff --git a/mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm-start-test-robo.yml b/mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm-start-test-robo.yml
new file mode 100644
index 0000000000..dda08757fc
--- /dev/null
+++ b/mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm-start-test-robo.yml
@@ -0,0 +1,27 @@
+# Google Cloud Documentation: https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run
+# Flank Documentation: https://flank.github.io/flank/
+gcloud:
+ results-bucket: focus_android_test_artifacts
+ record-video: false
+ timeout: 5m
+ async: false
+
+ app: /app/path
+
+ auto-google-login: false
+ use-orchestrator: true
+ environment-variables:
+ clearPackageData: true
+
+ device:
+ - model: MediumPhone.arm
+ version: 30
+ locale: en_US
+
+ type: robo
+
+flank:
+ project: GOOGLE_PROJECT
+ num-test-runs: 1
+ output-style: compact
+ full-junit-result: true
diff --git a/mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm-start-test.yml b/mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm-start-test.yml
new file mode 100644
index 0000000000..8a3fea6dd4
--- /dev/null
+++ b/mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm-start-test.yml
@@ -0,0 +1,36 @@
+# Google Cloud Documentation: https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run
+# Flank Documentation: https://flank.github.io/flank/
+gcloud:
+ results-bucket: focus_android_test_artifacts
+ record-video: true
+
+ timeout: 30m
+ async: false
+ num-flaky-test-attempts: 1
+
+ app: /app/path
+ test: /test/path
+
+ auto-google-login: false
+ use-orchestrator: true
+ environment-variables:
+ clearPackageData: true
+ directories-to-pull:
+ - /sdcard/screenshots
+ performance-metrics: true
+
+ test-targets:
+ - class org.mozilla.focus.activity.SearchTest#testBlankSearchDoesNothing
+ - class org.mozilla.focus.activity.EraseBrowsingDataTest#deleteHistoryOnRestartTest
+
+ device:
+ - model: Pixel2.arm
+ version: 30
+ locale: en_US
+
+flank:
+ project: GOOGLE_PROJECT
+ max-test-shards: 1
+ num-test-runs: 1
+ output-style: compact
+ full-junit-result: true
diff --git a/mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm64-v8a.yml b/mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm64-v8a.yml
new file mode 100644
index 0000000000..1439d6c761
--- /dev/null
+++ b/mobile/android/focus-android/automation/taskcluster/androidTest/flank-arm64-v8a.yml
@@ -0,0 +1,36 @@
+# Google Cloud Documentation: https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run
+# Flank Documentation: https://flank.github.io/flank/
+gcloud:
+ results-bucket: focus_android_test_artifacts
+ record-video: true
+
+ timeout: 30m
+ async: false
+ num-flaky-test-attempts: 1
+
+ app: /app/path
+ test: /test/path
+
+ auto-google-login: false
+ use-orchestrator: true
+ environment-variables:
+ clearPackageData: true
+ directories-to-pull:
+ - /sdcard/screenshots
+ performance-metrics: true
+
+ test-targets:
+ - package org.mozilla.focus.activity
+ - package org.mozilla.focus.privacy
+
+ device:
+ - model: Pixel2.arm
+ version: 30
+ locale: en_US
+
+flank:
+ project: GOOGLE_PROJECT
+ max-test-shards: 50
+ num-test-runs: 1
+ output-style: compact
+ full-junit-result: true
diff --git a/mobile/android/focus-android/automation/taskcluster/androidTest/flank-x86.yml b/mobile/android/focus-android/automation/taskcluster/androidTest/flank-x86.yml
new file mode 100644
index 0000000000..83a745928a
--- /dev/null
+++ b/mobile/android/focus-android/automation/taskcluster/androidTest/flank-x86.yml
@@ -0,0 +1,36 @@
+# Google Cloud Documentation: https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run
+# Flank Documentation: https://flank.github.io/flank/
+gcloud:
+ results-bucket: focus_android_test_artifacts
+ record-video: true
+
+ timeout: 30m
+ async: false
+ num-flaky-test-attempts: 1
+
+ app: /app/path
+ test: /test/path
+
+ auto-google-login: false
+ use-orchestrator: true
+ environment-variables:
+ clearPackageData: true
+ directories-to-pull:
+ - /sdcard/screenshots
+ performance-metrics: true
+
+ test-targets:
+ - package org.mozilla.focus.activity
+ - package org.mozilla.focus.privacy
+
+ device:
+ - model: Pixel2
+ version: 30
+ locale: en_US
+
+flank:
+ project: GOOGLE_PROJECT
+ max-test-shards: -1
+ num-test-runs: 1
+ output-style: compact
+ full-junit-result: true
diff --git a/mobile/android/focus-android/automation/taskcluster/androidTest/parse-ui-test-fromfile.py b/mobile/android/focus-android/automation/taskcluster/androidTest/parse-ui-test-fromfile.py
new file mode 100644
index 0000000000..7b853d5e9c
--- /dev/null
+++ b/mobile/android/focus-android/automation/taskcluster/androidTest/parse-ui-test-fromfile.py
@@ -0,0 +1,97 @@
+#!/usr/bin/python3
+
+import argparse
+import sys
+import xml
+from pathlib import Path
+
+from beautifultable import BeautifulTable
+from junitparser import Attr, Failure, JUnitXml, TestSuite
+
+
+def parse_args(cmdln_args):
+ parser = argparse.ArgumentParser(
+ description="Parse and print UI test JUnit results"
+ )
+ parser.add_argument(
+ "--results",
+ type=Path,
+ help="Directory containing task artifact results",
+ required=True,
+ )
+ return parser.parse_args(args=cmdln_args)
+
+
+class test_suite(TestSuite):
+ flakes = Attr()
+
+
+def parse_print_failure_results(results):
+ table = BeautifulTable(maxwidth=256)
+ table.columns.header = ["UI Test", "Outcome", "Details"]
+ table.columns.alignment = BeautifulTable.ALIGN_LEFT
+ table.set_style(BeautifulTable.STYLE_GRID)
+
+ failure_count = 0
+ for suite in results:
+ cur_suite = test_suite.fromelem(suite)
+ if cur_suite.flakes != "0":
+ for case in suite:
+ for entry in case.result:
+ if case.result:
+ table.rows.append(
+ [
+ "%s#%s" % (case.classname, case.name),
+ "Flaky",
+ entry.text.replace("\t", " "),
+ ]
+ )
+ break
+ else:
+ for case in suite:
+ for entry in case.result:
+ if isinstance(entry, Failure):
+ test_id = "%s#%s" % (case.classname, case.name)
+ details = entry.text.replace("\t", " ")
+ table.rows.append(
+ [
+ test_id,
+ "Failure",
+ details,
+ ]
+ )
+ print(f"TEST-UNEXPECTED-FAIL | {test_id} | {details}")
+ failure_count += 1
+ break
+ print(table)
+ return failure_count
+
+
+def load_results_file(filename):
+ ret = None
+ try:
+ f = open(filename, "r")
+ try:
+ ret = JUnitXml.fromfile(f)
+ except xml.etree.ElementTree.ParseError as e:
+ print(f"Error parsing {filename} file: {e}")
+ finally:
+ f.close()
+ except IOError as e:
+ print(e)
+
+ return ret
+
+
+def main():
+ args = parse_args(sys.argv[1:])
+
+ failure_count = 0
+ junitxml = load_results_file(args.results.joinpath("FullJUnitReport.xml"))
+ if junitxml:
+ failure_count = parse_print_failure_results(junitxml)
+ return failure_count
+
+
+if __name__ == "__main__":
+ sys.exit(main())
diff --git a/mobile/android/focus-android/automation/taskcluster/androidTest/parse-ui-test.py b/mobile/android/focus-android/automation/taskcluster/androidTest/parse-ui-test.py
new file mode 100644
index 0000000000..de41a6c7e7
--- /dev/null
+++ b/mobile/android/focus-android/automation/taskcluster/androidTest/parse-ui-test.py
@@ -0,0 +1,89 @@
+#!/usr/bin/python3
+
+from __future__ import print_function
+
+import argparse
+import json
+import sys
+from pathlib import Path
+
+import yaml
+
+
+def parse_args(cmdln_args):
+ parser = argparse.ArgumentParser(description="Parse UI test logs an results")
+ parser.add_argument(
+ "--output-md",
+ type=argparse.FileType("w", encoding="utf-8"),
+ help="Output markdown file.",
+ required=True,
+ )
+ parser.add_argument(
+ "--log",
+ type=argparse.FileType("r", encoding="utf-8"),
+ help="Log output of flank.",
+ required=True,
+ )
+ parser.add_argument(
+ "--results", type=Path, help="Directory containing flank results", required=True
+ )
+ parser.add_argument(
+ "--exit-code", type=int, help="Exit code of flank.", required=True
+ )
+ parser.add_argument("--device-type", help="Type of device ", required=True)
+ parser.add_argument(
+ "--report-treeherder-failures",
+ help="Report failures in treeherder format.",
+ required=False,
+ action="store_true",
+ )
+ return parser.parse_args(args=cmdln_args)
+
+
+def extract_android_args(log):
+ return yaml.safe_load(log.split("AndroidArgs\n")[1].split("RunTests\n")[0])
+
+
+def main():
+ args = parse_args(sys.argv[1:])
+
+ log = args.log.read()
+ matrix_ids = json.loads(args.results.joinpath("matrix_ids.json").read_text())
+
+ android_args = extract_android_args(log)
+
+ print = args.output_md.write
+
+ print("# Devices\n")
+ print(yaml.safe_dump(android_args["gcloud"]["device"]))
+
+ print("# Results\n")
+ print("| Matrix | Result | Firebase Test Lab | Details\n")
+ print("| --- | --- | --- | --- |\n")
+ for matrix, matrix_result in matrix_ids.items():
+ for axis in matrix_result["axes"]:
+ print(
+ f"| {matrix_result['matrixId']} | {matrix_result['outcome']}"
+ f"| [Firebase Test Lab]({matrix_result['webLink']}) | {axis['details']}\n"
+ )
+ if (
+ args.report_treeherder_failures
+ and matrix_result["outcome"] != "success"
+ and matrix_result["outcome"] != "flaky"
+ ):
+ # write failures to test log in format known to treeherder logviewer
+ sys.stdout.write(
+ f"TEST-UNEXPECTED-FAIL | {matrix_result['outcome']} | {matrix_result['webLink']} | {axis['details']}\n"
+ )
+ print("---\n")
+ print("# References & Documentation\n")
+ print(
+ "* [Automated UI Testing Documentation](https://github.com/mozilla-mobile/shared-docs/blob/main/android/ui-testing.md)\n"
+ )
+ print(
+ "* Mobile Test Engineering on [Confluence](https://mozilla-hub.atlassian.net/wiki/spaces/MTE/overview) | [Slack](https://mozilla.slack.com/archives/C02KDDS9QM9) | [Alerts](https://mozilla.slack.com/archives/C0134KJ4JHL)\n"
+ )
+
+
+if __name__ == "__main__":
+ main()
diff --git a/mobile/android/focus-android/automation/taskcluster/androidTest/robo-test.sh b/mobile/android/focus-android/automation/taskcluster/androidTest/robo-test.sh
new file mode 100755
index 0000000000..c2b6ee76f9
--- /dev/null
+++ b/mobile/android/focus-android/automation/taskcluster/androidTest/robo-test.sh
@@ -0,0 +1,101 @@
+#!/usr/bin/env bash
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This script does the following:
+# 1. Retrieves gcloud service account token
+# 2. Activates gcloud service account
+# 3. Connects to Google's Firebase Test Lab (using Flank)
+# 4. Executes Robo test
+# 5. Puts any artifacts into the test_artifacts folder
+
+# If a command fails then do not proceed and fail this script too.
+set -e
+
+get_abs_filename() {
+ relative_filename="$1"
+ echo "$(cd "$(dirname "$relative_filename")" && pwd)/$(basename "$relative_filename")"
+}
+
+# Basic parameter check
+if [[ $# -lt 1 ]]; then
+ echo "Error: please provide a Flank configuration"
+ display_help
+ exit 1
+fi
+
+device_type="$1" # flank-arm-robo-test.yml | flank-x86-robo-test.yml
+APK_APP="$2"
+JAVA_BIN="/usr/bin/java"
+PATH_TEST="./automation/taskcluster/androidTest"
+FLANK_BIN="/builds/worker/test-tools/flank.jar"
+ARTIFACT_DIR="/builds/worker/artifacts"
+RESULTS_DIR="${ARTIFACT_DIR}/results"
+
+echo
+echo "ACTIVATE SERVICE ACCT"
+echo
+gcloud config set project "$GOOGLE_PROJECT"
+gcloud auth activate-service-account --key-file "$GOOGLE_APPLICATION_CREDENTIALS"
+echo
+echo
+echo
+
+set +e
+
+flank_template="${PATH_TEST}/flank-${device_type}.yml"
+if [ -f "$flank_template" ]; then
+ echo "Using Flank template: $flank_template"
+else
+ echo "Error: Flank template not found: $flank_template"
+ exit 1
+fi
+
+APK_APP="$(get_abs_filename $APK_APP)"
+
+function failure_check() {
+ echo
+ echo
+ if [[ $exitcode -ne 0 ]]; then
+ echo "FAILURE: Robo test run failed, please check above URL"
+ else
+ echo "Robo test was successful!"
+ fi
+
+ echo
+ echo "RESULTS"
+ echo
+
+ mkdir -p /builds/worker/artifacts/github
+ chmod +x $PATH_TEST/parse-ui-test.py
+ $PATH_TEST/parse-ui-test.py \
+ --exit-code "${exitcode}" \
+ --log flank.log \
+ --results "${RESULTS_DIR}" \
+ --output-md "${ARTIFACT_DIR}/github/customCheckRunText.md" \
+ --device-type "${device_type}"
+}
+
+echo
+echo "FLANK VERSION"
+echo
+$JAVA_BIN -jar $FLANK_BIN --version
+echo
+echo
+
+echo
+echo "EXECUTE ROBO TEST"
+echo
+set -o pipefail && $JAVA_BIN -jar $FLANK_BIN android run \
+ --config=$flank_template \
+ --app=$APK_APP \
+ --local-result-dir="${RESULTS_DIR}" \
+ --project=$GOOGLE_PROJECT \
+ --client-details=commit=${MOBILE_HEAD_REV:-None},pullRequest=${PULL_REQUEST_NUMBER:-None} \
+ | tee flank.log
+
+exitcode=$?
+failure_check
+
+exit $exitcode
diff --git a/mobile/android/focus-android/automation/taskcluster/androidTest/ui-test.sh b/mobile/android/focus-android/automation/taskcluster/androidTest/ui-test.sh
new file mode 100755
index 0000000000..362d528b3d
--- /dev/null
+++ b/mobile/android/focus-android/automation/taskcluster/androidTest/ui-test.sh
@@ -0,0 +1,147 @@
+#!/usr/bin/env bash
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This script does the following:
+# 1. Retrieves gcloud service account token
+# 2. Activates gcloud service account
+# 3. Connects to google Firebase (using TestArmada's Flank tool)
+# 4. Executes UI tests
+# 5. Puts test artifacts into the test_artifacts folder
+
+# NOTE:
+# Flank supports sharding across multiple devices at a time, but gcloud API
+# only supports 1 defined APK per test run.
+
+
+# If a command fails then do not proceed and fail this script too.
+set -e
+
+#########################
+# The command line help #
+#########################
+display_help() {
+ echo "Usage: $0 Build_Variant [Number_Shards...]"
+ echo
+ echo "Examples:"
+ echo "To run UI tests on ARM device shard (1 test / shard)"
+ echo "$ ui-test.sh arm64-v8a -1"
+ echo
+ echo "To run UI tests on X86 device (on 3 shards)"
+ echo "$ ui-test.sh x86 3"
+ echo
+}
+
+get_abs_filename() {
+ relative_filename="$1"
+ echo "$(cd "$(dirname "$relative_filename")" && pwd)/$(basename "$relative_filename")"
+}
+
+
+# Basic parameter check
+if [[ $# -lt 1 ]]; then
+ echo "Error: please provide at least one build variant (arm|x86)"
+ display_help
+ exit 1
+fi
+
+device_type="$1" # arm64-v8a | armeabi-v7a | x86_64 | x86
+APK_APP="$2"
+APK_TEST="$3"
+if [[ ! -z "$4" ]]; then
+ num_shards=$4
+fi
+
+JAVA_BIN="/usr/bin/java"
+PATH_TEST="./automation/taskcluster/androidTest"
+FLANK_BIN="/builds/worker/test-tools/flank.jar"
+ARTIFACT_DIR="/builds/worker/artifacts"
+RESULTS_DIR="${ARTIFACT_DIR}/results"
+
+echo
+echo "ACTIVATE SERVICE ACCT"
+echo
+# this is where the Google Testcloud project ID is set
+gcloud config set project "$GOOGLE_PROJECT"
+echo
+
+gcloud auth activate-service-account --key-file "$GOOGLE_APPLICATION_CREDENTIALS"
+echo
+echo
+
+# Disable exiting on error. If the tests fail we want to continue
+# and try to download the artifacts. We will exit with the actual error code later.
+set +e
+
+if [[ "${device_type}" =~ ^(arm64-v8a|armeabi-v7a|x86_64|x86)$ ]]; then
+ flank_template="${PATH_TEST}/flank-${device_type}.yml"
+elif [[ "${device_type}" == "arm-start-test" ]]; then
+ flank_template="${PATH_TEST}/flank-arm-start-test.yml"
+elif [[ "${device_type}" == "arm-beta-tests" ]]; then
+ flank_template="${PATH_TEST}/flank-arm-beta.yml"
+else
+ echo "FAILURE: flank config file not found!"
+ exitcode=1
+fi
+
+APK_APP="$(get_abs_filename $APK_APP)"
+APK_TEST="$(get_abs_filename $APK_TEST)"
+echo "device_type: ${device_type}"
+echo "APK_APP: ${APK_APP}"
+echo "APK_TEST: ${APK_TEST}"
+
+# function to exit script with exit code from test run.
+# (Only 0 if all test executions passed)
+function failure_check() {
+ echo
+ echo
+ if [[ $exitcode -ne 0 ]]; then
+ echo "FAILURE: UI test run failed, please check above URL"
+ else
+ echo "All UI test(s) have passed!"
+ fi
+ echo
+ echo "RESULTS"
+ echo
+
+ mkdir -p /builds/worker/artifacts/github
+ chmod +x $PATH_TEST/parse-ui-test.py
+ $PATH_TEST/parse-ui-test.py \
+ --exit-code "${exitcode}" \
+ --log flank.log \
+ --results "${RESULTS_DIR}" \
+ --output-md "${ARTIFACT_DIR}/github/customCheckRunText.md" \
+ --device-type "${device_type}"
+
+ chmod +x $PATH_TEST/parse-ui-test-fromfile.py
+ $PATH_TEST/parse-ui-test-fromfile.py \
+ --results "${RESULTS_DIR}"
+
+}
+
+echo
+echo "FLANK VERSION"
+echo
+$JAVA_BIN -jar $FLANK_BIN --version
+echo
+echo
+
+echo
+echo "EXECUTE TEST(S)"
+echo
+# Note that if --local-results-dir is "results", timestamped sub-directory will
+# contain the results. For any other value, the directory itself will have the results.
+set -o pipefail && $JAVA_BIN -jar $FLANK_BIN android run \
+ --config=$flank_template \
+ --max-test-shards=$num_shards \
+ --app=$APK_APP --test=$APK_TEST \
+ --local-result-dir="${RESULTS_DIR}" \
+ --project=$GOOGLE_PROJECT \
+ --client-details=commit=${MOBILE_HEAD_REV:-None},pullRequest=${PULL_REQUEST_NUMBER:-None} \
+ | tee flank.log
+
+exitcode=$?
+failure_check
+
+exit $exitcode
diff --git a/mobile/android/focus-android/build.gradle b/mobile/android/focus-android/build.gradle
new file mode 100644
index 0000000000..528b1f93cb
--- /dev/null
+++ b/mobile/android/focus-android/build.gradle
@@ -0,0 +1,181 @@
+import io.gitlab.arturbosch.detekt.Detekt
+import io.gitlab.arturbosch.detekt.DetektCreateBaselineTask
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
+
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+ repositories {
+ gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
+ maven {
+ url repository
+ if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) {
+ allowInsecureProtocol = true
+ }
+ }
+ }
+ }
+
+ dependencies {
+ classpath ComponentsDependencies.tools_androidgradle
+ classpath ComponentsDependencies.tools_kotlingradle
+ classpath FocusDependencies.osslicenses_plugin
+ classpath "org.mozilla.telemetry:glean-gradle-plugin:${Versions.mozilla_glean}"
+ classpath "${ApplicationServicesConfig.groupId}:tooling-nimbus-gradle:${ApplicationServicesConfig.version}"
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ }
+
+ // Variables in plugins {} aren't directly supported. Hack around it by setting an
+ // intermediate variable which can pull from FocusDependenciesPlugin.kt and be used later.
+ ext {
+ detekt_plugin = Versions.detekt
+ python_envs_plugin = Versions.python_envs_plugin
+ ksp_plugin = Versions.ksp_plugin
+ }
+}
+
+plugins {
+ id "io.gitlab.arturbosch.detekt" version "$detekt_plugin"
+ id("com.google.devtools.ksp").version("$ksp_plugin")
+}
+
+detekt {
+ input = files("$projectDir/app")
+ config = files("$projectDir/quality/detekt.yml")
+ baseline = file("$projectDir/quality/detekt-baseline.xml")
+
+ reports {
+ html {
+ enabled = true
+ destination = file("$projectDir/build/reports/detekt.html")
+ }
+ xml {
+ enabled = false
+ }
+ txt {
+ enabled = false
+ }
+ }
+}
+
+tasks.withType(Detekt).configureEach() {
+ autoCorrect = true
+
+ exclude "**/test/**"
+ exclude "**/androidTest/**"
+ exclude "**/build/**"
+ exclude "**/resources/**"
+ exclude "**/tmp/**"
+}
+
+// Apply same path exclusions as for the main task
+tasks.withType(DetektCreateBaselineTask).configureEach() {
+ exclude "**/test/**"
+ exclude "**/androidTest/**"
+ exclude "**/build/**"
+ exclude "**/resources/**"
+ exclude "**/tmp/**"
+}
+
+allprojects {
+ repositories {
+ gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
+ maven {
+ url repository
+ if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) {
+ allowInsecureProtocol = true
+ }
+ }
+ }
+
+ maven {
+ url "${gradle.mozconfig.topobjdir}/gradle/maven"
+ }
+ }
+}
+
+subprojects {
+ afterEvaluate {
+ kotlin {
+ jvmToolchain(config.jvmTargetCompatibility)
+ }
+ }
+
+ tasks.withType(KotlinCompile).configureEach { task ->
+ // Translate Kotlin messages like "w: ..." and "e: ..." into
+ // "...: warning: ..." and "...: error: ...", to make Treeherder understand.
+ def listener = {
+
+ if (it.startsWith("e: warnings found")) {
+ return
+ }
+
+ if (it.startsWith('w: ') || it.startsWith('e: ')) {
+ def matches = (it =~ /([ew]): (.+):(\d+):(\d+) (.*)/)
+ if (!matches) {
+ logger.quiet "kotlinc message format has changed!"
+ if (it.startsWith('w: ')) {
+ // For warnings, don't continue because we don't want to throw an
+ // exception. For errors, we want the exception so that the new error
+ // message format gets translated properly.
+ return
+ }
+ }
+ def (_, type, file, line, column, message) = matches[0]
+ type = (type == 'w') ? 'warning' : 'error'
+ // Use logger.lifecycle, which does not go through stderr again.
+ logger.lifecycle "$file:$line:$column: $type: $message"
+ }
+ } as StandardOutputListener
+
+ doFirst {
+ logging.addStandardErrorListener(listener)
+ }
+ doLast {
+ logging.removeStandardErrorListener(listener)
+ }
+ }
+}
+
+tasks.register('clean', Delete) {
+ delete rootProject.layout.buildDirectory
+}
+
+
+configurations {
+ ktlint
+}
+
+dependencies {
+ ktlint("com.pinterest:ktlint:${Versions.ktlint}") {
+ attributes {
+ attribute(Bundling.BUNDLING_ATTRIBUTE, getObjects().named(Bundling, Bundling.EXTERNAL))
+ }
+ }
+}
+
+tasks.register('ktlint', JavaExec) {
+ description = "Check Kotlin code style."
+ classpath = configurations.ktlint
+ mainClass.set("com.pinterest.ktlint.Main")
+ args "app/**/*.kt", "!**/build/**/*.kt", "buildSrc/**/*.kt"
+}
+
+
+tasks.register('ktlintFormat', JavaExec) {
+ description = "Fix Kotlin code style deviations."
+ classpath = configurations.ktlint
+ mainClass.set("com.pinterest.ktlint.Main")
+ args "-F", "app/**/*.kt", "!**/build/**/*.kt", "buildSrc/**/*.kt"
+ jvmArgs("--add-opens", "java.base/java.lang=ALL-UNNAMED")
+}
+
+tasks.register("listRepositories") {
+ doLast {
+ println "Repositories:"
+ project.repositories.each { println "Name: " + it.name + "; url: " + it.url }
+ }
+}
diff --git a/mobile/android/focus-android/codecov.yml b/mobile/android/focus-android/codecov.yml
new file mode 100644
index 0000000000..d5c28d1afb
--- /dev/null
+++ b/mobile/android/focus-android/codecov.yml
@@ -0,0 +1,22 @@
+codecov:
+ max_report_age: off
+
+comment: false
+
+coverage:
+ precision: 2
+ round: down
+ status:
+ project:
+ default:
+ threshold: 0.1
+ if_not_found: success
+ patch:
+ default:
+ enabled: yes
+ threshold: 0.1
+ if_not_found: success
+ changes:
+ default:
+ enabled: no
+ if_not_found: success
diff --git a/mobile/android/focus-android/docs/Adjust-Usage.md b/mobile/android/focus-android/docs/Adjust-Usage.md
new file mode 100644
index 0000000000..03d85363f1
--- /dev/null
+++ b/mobile/android/focus-android/docs/Adjust-Usage.md
@@ -0,0 +1,66 @@
+# Adjust Usage
+
+> **If there is anything in this document that is not clear, is incorrect, or that requires more detail, please file a request through a [Github](https://github.com/mozilla-mobile/focus-android/issues) or [Bugzilla](https://bugzilla.mozilla.org/enter_bug.cgi?product=Focus&component=General). Also feel free to submit corrections or additional information.**
+
+Firefox Focus (but not Firefox Klar) tracks certain types of installs using a third-party install tracking framework called Adjust. The intention is to determine the origin of Firefox Focus installs by answering the question, “Did this user on this device install Firefox Focus in response to a specific advertising campaign performed by Mozilla?”
+
+The framework consists of a software development kit (SDK) linked into Firefox Focus and a data-collecting Internet service backend run by the German company [adjust GmbH](https://www.adjust.com). The Adjust SDK is open source and MIT licensed. It is hosted at [https://github.com/adjust/android_sdk](https://github.com/adjust/android_sdk). Firefox Focus pulls in an unmodified copy of the SDK using Gradle. The [build.gradle](https://github.com/mozilla-mobile/focus-android/blob/master/app/build.gradle) contains the version of the framework that is being used. The SDK is documented at [https://docs.adjust.com](https://docs.adjust.com).
+
+## Adjust Integration
+
+The Adjust framework is abstracted via the [AdjustHelper](https://github.com/mozilla-mobile/focus-android/blob/master/app/src/focusRelease/java/org/mozilla/focus/utils/AdjustHelper.java) class. All interaction with Adjust happens via this class.
+
+## Adjust Messages
+
+The Adjust SDK collects and sends one type of message to the Adjust backend:
+
+* At the start of a new application session, a *Session Message* is sent with basic system info and how often the app has been used since the last time.
+
+The message is documented below in more detail of what is sent in each HTTP request. All messages are posted to a secure endpoint at `https://app.adjust.com`. They are all `application/x-www-form-urlencoded` HTTP `POST` requests.
+
+### Session Message
+
+#### Request
+
+```
+bundle_id: org.mozilla.focus
+tracking_enabled: 0
+language: en
+country: CA
+app_version: 4.2
+device_name: Pixel 2
+app_version_short: 2.0
+needs_response_details: 0
+attribution_deeplink: 1
+session_count: 1
+os_name: android
+event_buffering_enabled: 0
+idfv: 8D452BFB-0692-4E8C-9DE0-7578486A872E
+hardware_name: J127AP
+app_token: xxxxxxxxxxxx
+os_version: 10.1
+environment: production
+created_at: 2016-11-10T20:34:39.720Z-0500
+device_type: phone
+idfa: 00000000-0000-0000-0000-000000000000
+sent_at: 2016-11-10T20:34:39.787Z-0500
+```
+
+These parameters (including ones not exposed to Mozilla) are documented at [https://partners.adjust.com/placeholders/](https://partners.adjust.com/placeholders/)
+
+#### Response
+
+If the application was successfully attributed to a specific campaign, details for that campaign are sent back as a JSON response:
+
+```
+{ "app_token": "xxxxxxxxxxxx",
+ "adid": "00000000000000000000",
+ "attribution" { "tracker_token": "xxxxxx",
+ "tracker_name": "Network::CAMPAIGN::ADGROUP::CREATIVE",
+ "network": "Network",
+ "campaign":"CAMPAIGN",
+ "adgroup":"ADGROUP",
+ "creative":"CREATIVE" } }
+```
+
+The application has no use for this information and ignores it.
diff --git a/mobile/android/focus-android/docs/Architecture-Decisions.md b/mobile/android/focus-android/docs/Architecture-Decisions.md
new file mode 100644
index 0000000000..f42a5431c5
--- /dev/null
+++ b/mobile/android/focus-android/docs/Architecture-Decisions.md
@@ -0,0 +1,92 @@
+# Architecture Decisions
+
+This is a collection of records for "architecturally significant" decisions. [Why?](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions)
+
+---
+
+## Observing state (LiveData)
+
+* **ADR-3**
+* Status: Accepted
+* Affected version: 2.0+
+
+### Context
+
+During the refactoring of Focus for Android to support multitasking it became apparent that our callback-based approach wasn't good enough anymore. Previously the current browser state was used to update the UI only. Now with multiple concurrent sessions this state needed to be preserved and restored while the user switched between tabs. In addition to that we wanted to update multiple UI components based on the current state (partially) for which a single callback implementation became very complex fast.
+
+Having observers for small chunks of data and a "reactive style" seemed to be a better approach. There are a lot of libraries that offer this functionality already, namely: RxJava, event buses (e.g. Otto and EventBus), Architecture Components (LiveData), Agera and others.
+
+### Decision
+
+LiveData objects from Android's Architecture Components library are used to wrap data that updates asynchronously. UI components that depend on this data can either get the current state or subscribe in order to get updates whenever the data changes.
+
+Reasons:
+
+* The Architecture Components library is written and maintained by the core Android team at Google (-> high quality and visibility)
+* Parts of the library are going to be used by the support libraries. Therefore they will get included into Focus for Android sooner or later anyways.
+* The library is pretty small.
+* The library takes care of the Activity/Fragment lifecycle (Avoids common errors).
+
+### Consequences
+
+* LiveData was designed to be used with `ViewModel` instances. So far we do not use `ViewModel`s and are also observing LiveData objects from non-UI components. This is not problematic but can cause problems in future versions of the library - although unlikely.
+
+---
+
+## Browser engine: GeckoView vs. WebView
+
+* **ADR-2**
+* Status: Accepted
+* Affected app versions: 1.0+
+
+### Context
+
+To render web content Firefox Focus needs to use a "web browser engine". So far all browsers from Mozilla, and Firefox for Android in particular, are using the [Gecko engine](https://en.wikipedia.org/wiki/Gecko_(software)).
+
+Android itself ships with a [WebView](https://developer.android.com/guide/webapps/webview.html) component that is (on new Android versions) based on Chromium/Chrome ([Blink engine](https://en.wikipedia.org/wiki/Blink_(web_engine))).
+
+A number of existing Android browsers (e.g. Opera, Brave) are built on top of the Blink rendering engine or are a direct fork of Chromium.
+
+### Decision
+
+Firefox Focus is going to be build on top of Android's WebView.
+
+Reasons for using WebView:
+* At the time of writing the Focus for Android prototype GeckoView already existed but it wasn't in a state that it could be used outside of Firefox for Android reliably. In addition to that there wasn't a stable API comparable offering the feature set of WebView.
+* APK size has been a long-term concern of the Firefox for Android team. A large APK size has been problematic for partnership deals and distribution in countries where bandwidth is limited or expensive. GeckoView is roughly 30 MB in size, while WebView is part of the Android system and is basically "free". Prototype builds of Focus for Android based on WebView were less than 3 MB in size.
+
+In addition to that there will be a build configuration that uses GeckoView. The GeckoView version will be guaranteed to compile; but keeping feature parity or keeping the build bug free is not a goal of the team. At this time the GeckoView version is a tech demo to explore its future potential only.
+
+Forking Chromium (or using Blink) was considered a too large investment in the prototype stage.
+
+### Consequences
+
+WebView has a complex API. Nevertheless it doesn't allow us to do heavy low-level customization that we could do if we would own the web browser engine (e.g. GeckoView). It remains to be seen whether this limitation will prevent feature development in a way that forces us to ship a browser engine with Focus for Android.
+
+---
+
+## Minimum supported Android version: 5.0+ (API 21+)
+
+* **ADR-1**
+* Status: Accepted
+* Affected app versions: 1.0+
+
+### Context
+
+Every app needs to define a minimum supported SDK version. This is usually a trade-off between how many users can be reached ([Android version distribution](https://developer.android.com/about/dashboards/index.html)) and what platform features the app needs to support ([Android API level overview](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)).
+
+### Decision
+
+Focus will support Android versions 5 and higher (API 21+). This decisions is primarily driven by the following platform features that are not available on earlier versions of Android:
+
+* [WebView.shouldInterceptRequest()](shouldInterceptRequest): Our content blocking content uses the implementation of the callback that lets us inspect the request object. This implementation is only available on Android 21+.
+
+* [UI features](https://developer.android.com/training/material/shadows-clipping.html) like `elevation` allow us to build and prototype a "material" UI without needing to backport functionality.
+
+### Consequences
+
+* At the point of writing this ADR we will cover 73.4% of the Android market with that decision [(*)](https://developer.android.com/about/dashboards/index.html).
+
+* Android 4.4 (KitKat) still covers 17.1%. Those users can't install and use Focus. While UI features can be backported, the extended WebView APIs can not. Only a GeckoView based version of Focus would be able to support Android 4.4 or lower.
+
+---
diff --git a/mobile/android/focus-android/docs/Battery-Debugging.md b/mobile/android/focus-android/docs/Battery-Debugging.md
new file mode 100644
index 0000000000..e24e22e22a
--- /dev/null
+++ b/mobile/android/focus-android/docs/Battery-Debugging.md
@@ -0,0 +1,37 @@
+# Battery Debugging
+
+Android Performance Profiling can be quite tricky in spite of the wealth of good tools available. This doc is to explain how to track down battery and performance issues.
+
+## Battery Historian
+
+Whenever battery issues arise on Android, the first Google suggestion is to use the Battery Historian tool to parse an Android bug report and show what caused the battery drain.
+
+While this is a good option for most Android apps, it proves next to useless for analyzing most battery issues in Focus and Klar. This is because Focus and Klar uses a foreground service that remains running as long as your web pages are open. The service is required to keep the app in the foreground so data can remain in memory rather than being persisted to disk. This keeps the app from being killed by the OS and sending all your precious web session and page data to the garbage collector.
+
+Battery Historian starts from the premise that most battery problems are caused by excessive wake locks. It helps the programmer by showing wake locks, when the WiFi or cellular radio is being kept awake, and the rate of battery drain at different times. Focus and Klar do not require wake locks and they wouldn't be interesting, since the apps remain in the foreground most of the time the app is running.
+
+Analyzing Battery Historian results can still prove interesting. [Here are the instructions](https://developer.android.com/studio/profile/battery-historian) to try.
+
+## Android Studio Profiler
+
+If Battery Historian does not point at the radio or screen being kept alive as the issue, the next thing is to look for excessive CPU activity. There are several tools to look into this, but the easiest to get started is the profiler built into Android Studio.
+
+Open the project in Android Studio. If there is no Android Profiler tab on the bottom of the screen, open it from View -> Tool Windows -> Android Profiler.
+
+Make sure you're running a debug version of the app and choose the device and debuggable process from the dropdowns at the top of the Profiler.
+
+Click the CPU graph to get additional CPU detail. Choose instrumented to increase the resolution of the data. If the battery drain is happening while the phone is idle, you can easily check to find out what is causing the CPU activity, since there shouldn't be much at all.
+
+[Here's more](https://developer.android.com/studio/profile/android-profiler) on how to use the Android Profiler in general. [Here's more on the CPU Profiler](https://developer.android.com/studio/profile/cpu-profiler) specifically.
+
+## Systrace
+
+Systrace does not add that much to what Android Studio's Profiler already provides and the interface is a clunky webpage. You can still try it if you like. [Here are the instructions](https://developer.android.com/studio/command-line/systrace).
+
+## Traceview
+
+While you can get a lot of useful and interesting information from the Android Profiler and Systrace, it's helpful to get full call stacks. The easiest way to do this is to use the older Android profiling tool, Traceview. You can select from the code when to start and stop tracing with "Debug.startMethodTracing("name")" and "Debug.stopMethodTracing()"
+
+When you run the code, it'll generate a trace file in the files folder on the SDcard. You can read the trace file either by double-clicking it in Android Studio's Device File Explorer or even better by opening it in Android Device Monitor. You can start Android Device Monitor in recent Android Studio versions by running $ANDROID_SDK/tools/monitor.
+
+[Here's more detail on using TraceView](https://developer.android.com/studio/profile/traceview).
diff --git a/mobile/android/focus-android/docs/Content-blocking.md b/mobile/android/focus-android/docs/Content-blocking.md
new file mode 100644
index 0000000000..0b1bf45a26
--- /dev/null
+++ b/mobile/android/focus-android/docs/Content-blocking.md
@@ -0,0 +1,58 @@
+# Content blocking
+
+## Outdated Content.
+Focus is using the same technology as Firefox for desktop, all the content blocking is happening inside of the Gecko engine web engine. content blocking list can be seen here https://github.com/mozilla-services/shavar-prod-lists.
+
+## Tracking protection: lists and general overview
+
+We use the disconnect tracking protection lists, these consist of:
+
+- The deny-list: a list of domains to block
+- The entitylist: an override list to unblock certain domains for certain other domains.
+- The google_mapping: a list of modifications for the deny-list.
+
+### The deny-list
+
+The deny-list contains list of domains that should be blocked. Any resources that are hosted
+on these domains should be blocked.
+
+The source lists contain multiple categories, we use **Advertising**, **Social**, **Analytics**, **Content** (aka. "other content trackers").
+We use some items from the **Disconnect** list, those items are moved into the **Social** list when parsing. We ignore **Legacy Disconnect** and
+**Legacy Social**. You can see the code parsing these lists at
+[BlockListProcessor.java](../app/src/webkit/java/org/mozilla/focus/webkit/matcher/BlocklistProcessor.java).
+
+The google_mapping is similar to the main list - these items are simply addded to the existing categories mentioned above. (The google entries
+in the main **Disconnect** list are discarded since we use those from google_mapping.json.)
+
+Note: each category contains a list of site owners: those names are discarded, we insert every single domain for every owner into the same list.
+
+### Entitylist: the override list
+
+Some domains need to be unblocked when visiting another domain belonging to the same owner. E.g. we usually block "googleapis.com", but when visiting e.g. google.de,
+we unblock "googleapis.com". This is done in the entitylist: for every domain that belongs to a "property" in the entitylist, we unblock all domains listed in
+"resources".
+
+## Implementation
+
+WebView calls the WebViewClient.shouldInterceptRequest() callback every time a resource is to be loaded - this permits us to intercept resource loading, and is how we
+can perform content blocking on Android. (See [BlockListProcessor.java](../app/src/webkit/java/org/mozilla/focus/webkit/TrackingProtectionWebViewClient.java) ).
+
+We then just need to verify every resource URL to determine whether it can be loaded in that callback: we use a custom trie-based domain matching implementation for
+Focus for Android. This is different from Focus iOS: Focus for iOS was originally a content blocking safari plugin, and used the iOS content blocking API
+( https://developer.apple.com/library/content/documentation/Extensions/Conceptual/ContentBlockingRules/Introduction/Introduction.html ).
+That API uses a specific blocklist format, therefore firefox-ios converts the disconnect lists into the iOS format at build-time.
+
+Focus-ios browser was implemented later, and reuses the iOS content blocking list format (iOS webview was unable to make use of the content blocking API
+at that time, and therefore implemented its own URL matching). This is a regex based format: Focus-ios (browser) therefore stores a list of regexes, and iterates
+over that list to check whether a given resource URL matches. That approach means that focus-ios only needs one copy of the blocklists, however this isn't ideal for performance.
+
+As mentioned, Focus for Android uses a custom Trie implementation instead of iterating over regexes. This does mean that we aren't reusing iOS's blocklist
+format, but it also permits for ~140x faster domain lookup when compared to a port of the iOS domain lookup implementation. The entitylist is similar,
+and we use extended versions of the same Trie for the domain overrides. See [UrlMatcher](../app/src/webkit/java/org/mozilla/focus/webkit/matcher/UrlMatcher.java) for
+the actual matcher implementation.
+
+
+## Miscellaneous notes
+- We do not make any internet connection because every blocklist is built into Firefox Focus. When you enable a blocklsit in settings, our app will load the selected blocklist from disk. We will provide updated lists as an "App update".
+- We discard the site owners and names when parsing the blocklists, that makes it harder to keep track of which trackers have been blocked for a given site. That data would probably have to be added to the blocklist trie if we want a better breakdown of trackers.
+- Our Trie search is recursive, and uses a slightly silly "TrieString" to take care of string reversal and substrings. An iterative implementation would probably be better, and would avoid substrings. Such an implementation would be slightly more complex since we would have to keep track of string indexes, but reduces overhead. Given that current performance is acceptable, there isn't huge value in actually working on this.
diff --git a/mobile/android/focus-android/docs/Crash-Reporting-with-Sentry.md b/mobile/android/focus-android/docs/Crash-Reporting-with-Sentry.md
new file mode 100644
index 0000000000..2e6f5d4f6c
--- /dev/null
+++ b/mobile/android/focus-android/docs/Crash-Reporting-with-Sentry.md
@@ -0,0 +1,147 @@
+# Crash Reporting with Sentry
+
+> **If there is anything in this document that is not clear, is incorrect, or that requires more detail, please file a request through a [Github](https://github.com/mozilla-mobile/focus-android/issues).**
+
+Focus Android uses [Sentry](https://sentry.io) for crash and exception reporting. This kind of reporting gives Mozilla invaluable insight as to why Focus crashes or incorrectly behaves. It is one of the key methods we use to improve the product in terms of stability.
+
+This page explains how Sentry works, how the various parts interact and what kind of data it sends back to Mozilla.
+
+## High-Level Summary
+[Sentry](https://sentry.io) is an open source crash reporting and aggregation platform. Both the client SDK, [github.com/getsentry/sentry-java](https://github.com/getsentry/sentry-java), and the server, [github.com/getsentry/sentry](https://github.com/getsentry/sentry), are open source.
+
+The server is hosted and maintained by Mozilla. There are no third-parties involved, all crash reports to directly from Focus Android to the Sentry server hosted by Mozilla.
+
+On the client side Sentry is invisible. There are no parts to interact with. It reports crashes and fatal errors back to Mozilla in the background. Sentry is enabled when the *Send Usage Data* switch in the *Focus* settings is enabled by the user. By default this switch is enabled in Focus and is an *opt-out* mechanism. In Klar, by default this switch is disabled and is an *opt-in* mechanism.
+
+On the server side there is a dashboard that the Focus team uses to look at incoming crash reports. The dashboard lets us inspect the crash report in detail and for example see where in the application the crash happened, what version of the application was used and what version of Android OS was active. Below is an overview of all the attributes that are part of a crash report.
+
+## Sentry Reports
+
+A typical Sentry crash report contains three categories of data: device, application, crash. It also contains some metadata about the crash report:
+```
+ "id": "6ae18611d6c649529a5eda0e48f42cb4",
+// ...
+ "datetime": "2018-03-30T23:55:03.000000Z",
+// ...
+ "received": 1522454183.0,
+```
+
+To clarify, `id` is a unique identifier for this crash report, *not a unique identifier for the user sending the report.* We explicitly disable the ability to uniquely identify users from their crash reports.
+
+### Device Information
+
+Sentry collects basic information about the device the application is running on. Both static (device type) and dynamic (memory in use, device orientation).
+
+```
+"contexts": {
+ "device": {
+ "screen_resolution": "1920x1080",
+ "battery_level": 100.0,
+ "orientation": "landscape",
+ "family": "AFTN",
+ "model_id": "NS6212",
+ "type": "device",
+ "low_memory": false,
+ "simulator": false,
+ "free_storage": 3967590400,
+ "storage_size": 5735825408,
+ "screen_dpi": 320,
+ "free_memory": 543588352,
+ "memory_size": 1392164864,
+ "online": true,
+ "charging": true,
+ "model": "AFTN",
+ "screen_density": 2.0,
+ "arch": "armeabi-v7a",
+ "brand": "Amazon",
+ "manufacturer": "Amazon"
+ },
+// ...
+ "os": {
+ "rooted": false,
+ "kernel_version": "Linux version 3.14.29 (build@14-use1b-b-42) (gcc version 4.9.2 20140904 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09) ) #1 SMP PREEMPT Fri Jan 19 00:36:45 UTC 2018",
+ "version": "7.1.2",
+ "build": "NS6212",
+ "type": "os",
+ "name": "Android"
+ }
+},
+```
+
+### Application Information
+
+Sentry collects basic information about the Focus app.
+
+```
+ "app": {
+ "app_identifier": "org.mozilla.focus",
+ "app_name": "Focus",
+ "app_start_time": "2018-03-30T16:55:03Z",
+ "app_version": "2.1",
+ "type": "app",
+ "app_build": 11
+// ...
+ "sdk": {
+ "client_ip": "63.245.222.193",
+ "version": "1.7.2-02be9",
+ "name": "sentry-java"
+```
+
+### Crash Information
+
+#### Stack trace
+
+Every crash report contains a *stack trace*, which shows what functions in the Focus code led to this crash. It includes names of Android framework functions and Focus functions. Here's an excerpt of three lines from the stack trace:
+
+```
+ "sentry.interfaces.Exception": {
+ "exc_omitted": null,
+ "values": [
+ {
+ "stacktrace": {
+ "frames": [
+ {
+ "function": "main",
+ "abs_path": "ZygoteInit.java",
+ "module": "com.android.internal.os.ZygoteInit",
+ "in_app": false,
+ "lineno": 801,
+ "filename": "ZygoteInit.java"
+ },
+ {
+ "function": "run",
+ "abs_path": "ZygoteInit.java",
+ "module": "com.android.internal.os.ZygoteInit$MethodAndArgsCaller",
+ "in_app": false,
+ "lineno": 911,
+ "filename": "ZygoteInit.java"
+ },
+ {
+ "function": "invoke",
+ "abs_path": "Method.java",
+ "in_app": false,
+ "module": "java.lang.reflect.Method",
+ "filename": "Method.java"
+},
+```
+
+#### Exception message
+The first line of every stack trace in every crash report contains a *reason* - why did this crash happen. This reason is provided by the developers who wrote the code that decide the app is in an error state. These developers include the Focus team at Mozilla, the Android framework, the Java programming language, and any libraries Mozilla bundles to develop Focus.
+
+Java, the Android framework, and Mozilla are diligent about making sure that no personally identifiable information is put in any of these messages. We keep them technical and to the point. We at Mozilla stay on top of our dependencies to ensure they're not including personally identifiable information as well.
+
+Here's an example message generated by Java:
+```
+java.lang.StringIndexOutOfBoundsException: length=0; regionStart=20; regionLength=20
+```
+
+Example of a Focus generated message:
+```
+java.lang.StringIndexOutOfBoundsException: Cannot create negative-length String
+```
+
+#### Raw data dump
+In the explanations above, some redundant fields and field considered less important were omitted for brevity. To review these omissions, [this is an example of the raw data the server receives](https://gist.github.com/mcomella/50622aef817b40a20714b8550fb19991). This is up-to-date as of March 30, 2018.
+
+## For developers
+For developer documentation such as how to enable Sentry in your builds, see [`SentryWrapper.kt`](https://github.com/mozilla-mobile/focus-android/blob/master/app/src/main/java/org/mozilla/focus/telemetry/SentryWrapper.kt) in the code base.
diff --git a/mobile/android/focus-android/docs/Development-Custom-GeckoView.md b/mobile/android/focus-android/docs/Development-Custom-GeckoView.md
new file mode 100644
index 0000000000..81525b7595
--- /dev/null
+++ b/mobile/android/focus-android/docs/Development-Custom-GeckoView.md
@@ -0,0 +1,90 @@
+# Development with Custom GeckoView
+
+If you are an engineer working on Gecko(View) then you might be interested in building Focus/Klar with your own build of GeckoView.
+
+For this you will need to:
+
+* Checkout mozilla-central (or another branch)
+* Setup your system to build Firefox for Android
+* Package a GeckoView [AAR](https://developer.android.com/studio/projects/android-library.html)
+* Modify your Focus gradle configuration to use your custom GeckoView AAR.
+
+## Setup build system
+
+Follow the [Build instructions](https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Simple_Firefox_for_Android_build) to setup a Firefox for Android build (ARM or x86).
+
+A minimal `mozconfig` for GeckoView development might look like this (ARM):
+
+```
+ac_add_options --enable-application=mobile/android
+ac_add_options --target=arm-linux-androideabi
+# For x86 use: ac_add_options --target=i386-linux-android
+
+ac_add_options --with-android-sdk="<path-to-android-SDK>"
+ac_add_options --with-android-ndk="<path-to-android-NDK>"
+```
+
+## Package GeckoView AAR
+
+After setting up your build system you should be able to build and package Firefox for Android:
+
+```bash
+./mach build
+./mach package
+```
+
+Now you can create the GeckoView AAR from the compiled code:
+
+```bash
+./mach android archive-geckoview
+```
+
+This should create a file named `geckoview-*.aar` in your build output folder (MOZ_OBJDIR):
+
+```bash
+$ ls <your-output-directory>/gradle/build/mobile/android/geckoview/outputs/aar
+geckoview-official-withGeckoBinaries-noMinApi-release.aar
+```
+
+## Point your Focus/Klar build to your AAR
+
+In your Focus/Klar checkout open `app/build.gradle` (__not__ the build.gradle file in the root directory!) and locate the `repositories` block. This block defines where gradle will look for dependencies. Add the absolute path to your AAR as follows:
+
+```groovy
+repositories {
+ // ...
+
+ flatDir(
+ name: 'localBuild',
+ dirs: '<absolute path to AAR>'
+ )
+}
+```
+
+Now locate the ```dependencies``` block. This block defines which dependencies are needed to compile the application. Locate the already existing `armImplementation` and `x86Implementation` statements. Those are currently pointing to AARs that are pulled from our build servers. Replace the correct one (x86 / ARM) to use the name of your local AAR:
+
+```groovy
+dependencies {
+ // ...
+
+ // armImplementation "org.mozilla:geckoview-nightly-armeabi-v7a:60.0a1"
+ armImplementation (
+ name: 'geckoview-official-withGeckoBinaries-noMinApi-release',
+ ext: 'aar'
+ )
+ x86Implementation "org.mozilla:geckoview-nightly-x86:60.0a1"
+
+ // ...
+}
+```
+
+Now either build the `klarArmDebug` or `klarX86Debug` build variant from Android Studio (Running "Sync Project with Gradle files" once might be needed) or build and install from the command line:
+
+```bash
+./gradlew installKlarArmDebug
+./gradlew installKlarX86Debug
+```
+
+Finally, the default renderer might be set as Webview. You can check for the presence or absence of the Gecko logo at `focus:about` to verify. You may change rendering engine settings at `focus:test` and then press back for the app to restart. This should store your engine preference until you uninstall or clear data.
+
+You can also change the default engine at `focus-android/app/src/debug/java/org/mozilla/focus/web/Config.kt`. Setting `DEFAULT_NEW_RENDERER` to `true` will use GeckoView.
diff --git a/mobile/android/focus-android/docs/Feature-&-Issue-workflow.md b/mobile/android/focus-android/docs/Feature-&-Issue-workflow.md
new file mode 100644
index 0000000000..02c43f2ed7
--- /dev/null
+++ b/mobile/android/focus-android/docs/Feature-&-Issue-workflow.md
@@ -0,0 +1,54 @@
+# Feature & Issue workflow
+
+## High-Level Steps
+
+| Issue opened| ➡️ |Triaged| ➡️ |Ready in/for Backlog| ➡️ | Ready for UX | ➡️ | Ready for Eng| ➡️ |Eng done| ➡️ |Ready for review| ➡️ |Ready for QA| ➡️ |Done
+|------|------|------|------|------|------|------|------|------|------|------|------|------|------|------|------|------
+
+## Details
+
+**Issue opened**
+- Issue is created (by anybody)
+- Ready for triage, where the issue gets either closed, commented on, left in triage for more info, assigned labels, and milestones
+
+**Triaged**
+- Is triaged, which means issue has a P label, has a milestone assigned (can be backlog)
+- Issue if possible can already get estimation, T-shirt size
+
+**Ready in/for Backlog**
+- Issue is in Backlog milestone
+- Issue includes enough information (follows template) that allows team members to estimate, understand the scope, user benefit, the what, and acceptance criteria
+- Request for probes/KPIs reviewed and approved by product and data analyst
+- Once estimated, it's ready to be moved into a sprint
+
+**Ready for UX**
+- When UX picks up issue, assigns themselves to the issue
+- UX to provide mocks, attach to Github issue
+- Once UX is done, ready for eng, UX resource to unassign themselves, and use "ready for eng breakdown" label
+- Can be skipped if no UX is needed
+
+**Ready for Eng**
+- Eng should only pick up issues that are ready for Eng and assigned to a sprint/milestone (not Backlog)
+- Copy/content strategist has provided strings
+
+**Eng done**
+- Issue is eng done only if PR was submitted AND PR was reviewed
+- PR is closed but not issue
+- Issue will be assigned by eng to product manager (PM assigns it to other stakeholders where appropriate)
+- Strings exported
+
+**Ready for Review**
+- During sprints: Once PR is closed, the next day Nightly should have the changes and stakeholders can verify
+- During sprint review: everyone can review, comment
+- Once stakeholders(Marketing, PM) are happy with result, PM assigns "ready for QA" label
+
+**Ready for QA**
+- QA to watch for issues with "ready for QA" label AND in current sprint or major milestone
+- QA to assign the ticket they are currently working on to themselves
+- Once QA verified and completed issue, un-assign themselves from issue
+- Outline and record test steps in TestRail
+- Identify new test(s) for automation and create github issue with "automation" label
+- Closes issue
+
+**Done**
+- Issue is closed, no assignees and assigned sprint or major milestone
diff --git a/mobile/android/focus-android/docs/GeckoView-(In-Progress).md b/mobile/android/focus-android/docs/GeckoView-(In-Progress).md
new file mode 100644
index 0000000000..1691579ab1
--- /dev/null
+++ b/mobile/android/focus-android/docs/GeckoView-(In-Progress).md
@@ -0,0 +1,6 @@
+# Running GeckoView in a debug environment
+
+Currently there are two ways to use GeckoView in development.
+
+1. You can navigate to `focus:test` and flip the toggle to switch to the new engine
+2. In [`Config.kt`](https://github.com/mozilla-mobile/focus-android/blob/master/app/src/debug/java/org/mozilla/focus/web/Config.kt) you can set `DEFAULT_NEW_RENDERER` to `true`.
diff --git a/mobile/android/focus-android/docs/Home.md b/mobile/android/focus-android/docs/Home.md
new file mode 100644
index 0000000000..b5daab333f
--- /dev/null
+++ b/mobile/android/focus-android/docs/Home.md
@@ -0,0 +1,40 @@
+# Firefox Focus for Android
+
+> Browse like no one’s watching. The new Firefox Focus automatically blocks a wide range of ads and online trackers — from the moment you launch it to the second you leave it. Easily erase your history, passwords and cookies, so you won’t get followed by things like unwanted ads.
+
+https://www.mozilla.org/firefox/focus/
+
+*Don't see what you're looking for? Check out our shared docs: https://github.com/mozilla-mobile/firefox-android/tree/main/docs/shared.*
+
+## User support
+
+* Support articles: https://support.mozilla.org/en-US/products/focus-firefox/firefox-focus-android
+* Support forum: https://support.mozilla.org/en-US/questions/focus-firefox?show=all
+
+## Download
+
+* Google Play - Firefox Focus: https://play.google.com/store/apps/details?id=org.mozilla.focus
+* Google Play - Firefox Klar: https://play.google.com/store/apps/details?id=org.mozilla.klar
+* APKs: https://github.com/mozilla-mobile/firefox-android/releases
+
+## Contribute
+
+* [Contributing (Writing code, translating the app, testing the app)](https://github.com/mozilla-mobile/firefox-android/blob/main/docs/shared/android/CONTRIBUTING.md)
+* [List of issues](https://bugzilla.mozilla.org/describecomponents.cgi?product=Focus)
+* [Mozilla Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/)
+
+## Communication
+* Send an email to our [public Firefox Focus mailing list](https://mail.mozilla.org/listinfo/firefox-focus-public): firefox-focus-public@mozilla.com
+* Send an email to our internal Firefox Focus mailing list (mozilla.com email required): firefox-focus@mozilla.com
+
+## Developer Documentation
+
+* [Architecture decisions](https://github.com/mozilla-mobile/firefox-android/blob/main/focus-android/docs/Architecture-Decisions.md)
+* [Automation](https://github.com/mozilla-mobile/firefox-android/blob/main/docs/shared/android/automation.md)
+* [Content blocking](https://github.com/mozilla-mobile/firefox-android/blob/main/focus-android/docs/Content-blocking.md)
+* [Multisession architecture](https://github.com/mozilla-mobile/firefox-android/blob/main/focus-android/docs/Multisession-architecture.md)
+* [Localization](https://github.com/mozilla-mobile/focus-android/wiki/Localization)
+* [Telemetry](https://github.com/mozilla-mobile/firefox-android/blob/main/focus-android/docs/Telemetry.md)
+
+## Product Management
+* [Release schedule 2018](https://wiki.mozilla.org/Mobile/Focus/Android/Train_Schedule)
diff --git a/mobile/android/focus-android/docs/Homescreen-Tips.md b/mobile/android/focus-android/docs/Homescreen-Tips.md
new file mode 100644
index 0000000000..ce4ebb4ec0
--- /dev/null
+++ b/mobile/android/focus-android/docs/Homescreen-Tips.md
@@ -0,0 +1,35 @@
+# Homescreen Tips
+
+## Homescreen Tips Explained 💡
+
+Homescreen tips launched in Firefox Focus 7.0 in October 2018. They allow users to get more information about the product without having to research on their own or dig around in settings. Tips also enable users to _quickly_ access portions of the settings menu they may not know how to navigate otherwise. All tips have either a deep link to settings or a link to their corresponding SUMO article (if available).
+
+<img width="300" src="https://user-images.githubusercontent.com/4400286/43972144-4dbf9508-9c88-11e8-8660-3e16030cdc45.png">
+
+## How Tips are Displayed
+Currently, tips are shown based on the following constraints:
+1. We will never show a user a tip from a feature they have _already engaged with_
+2. Tips are shown in a random order, and all have an equal chance of being shown
+3. Only three tips are displayed per session before we revert back to showing "Browse. Erase. Repeat."
+4. Tips are displayed on the home screen after launch, and are refreshed after each erase.
+
+Some notes to keep in mind:
+* clicking a SUMO link does not count as engaging with the feature
+* the "disable tips" tip is shown less frequently and is _guaranteed_ to show on the third launch of the app.
+* a "session" is defined as every time the app is loaded into memory (i.e. has not been force quit).
+
+## List of Tips
+Below is a list of tips available with their corresponding deep links:
+
+* "Open every link in Firefox Focus. Set Firefox Focus as default browser" -> Settings deep link
+* "Turn off tips on the Firefox Focus start screen" -> Settings deep link
+* "Turn off tips on the start screen" -> Settings deep link
+* "Trusted site? Allowlist disables Tracking Protection for sites you know and trust." -> Settings deep link
+* "Site behaving unexpectedly? Try turning off Tracking Protection" -> None
+* "Get one-tap access to sites you use most. Menu > Add to Home screen" -> [SUMO article](https://support.mozilla.org/en-US/kb/add-web-page-shortcuts-your-home-screen)
+* "Autocomplete URLs for sites you use most. Long-press any URL in the address bar" -> [SUMO article](https://support.mozilla.org/en-US/kb/autocomplete-settings-firefox-focus-address-bar)
+* "Open a link in a new tab. Long-press any link on a page" -> [SUMO article](https://support.mozilla.org/en-US/kb/open-new-tab-firefox-focus-android)
+* "Rather see the full desktop site? Menu > Request desktop site" -> [SUMO article](https://support.mozilla.org/en-US/kb/switch-desktop-view-firefox-focus-android)
+
+## The Future of Tips
+If tips are received well, there are plans to update them in the future. A major change in consideration is hosting them server-side so they can be updated on the fly, rather than having to push an update to the app in order to change them. An android component for this feature is also being investigated.
diff --git a/mobile/android/focus-android/docs/Multisession-architecture.md b/mobile/android/focus-android/docs/Multisession-architecture.md
new file mode 100644
index 0000000000..465f4249ac
--- /dev/null
+++ b/mobile/android/focus-android/docs/Multisession-architecture.md
@@ -0,0 +1,19 @@
+# Multisession Architecture
+
+To support multiple simultaneous browsing sessions the architecture of Focus has been refactored to strictly separate sessions (and associated data) from the UI that displays this data.
+
+Sessions are managed by a global `SessionManager` instance. UI components display data hold by `Session` objects.
+
+The new multisession architecture makes use of Android's [Architecture Components](https://developer.android.com/topic/libraries/architecture/index.html). The list of sessions in the `SessionManager` and the data inside a `Session` is returned as [LiveData](https://developer.android.com/topic/libraries/architecture/livedata.html) objects. UI components can observe those LiveData objects for changes and update the UI state if needed.
+
+![](http://i.imgur.com/CUb5ZLW.png)
+
+* _BrowserFragment_ is the fragment that displays the browser chrome and web content. A _BrowserFragment_ is always connected to a _Session_ (1:1).
+
+* _IWebView_ is a generic interface for the view that renders web content. At runtime it's implemented by either [WebView](https://developer.android.com/reference/android/webkit/WebView.html) or GeckoView. State changes will be reported to a class that implements _IWebView.Callback_.
+
+* With the multisession architecture _IWebView.Callback_ is implemented by _SessionCallbackProxy_. The purpose of this class is to update the _Session_ object for this browsing session. Currently _SessionCallbackProxy_ will still delegate some callback methods to the BrowserFragment. This is expected to be removed in a follow-up refactoring eventually.
+
+* _BrowserFragment_ displays data hold by the _Session_ object. Data that changes periodically (e.g. URL, progress, ..) are represented as [LiveData](https://developer.android.com/topic/libraries/architecture/livedata.html) objects and can be observed so that the UI can be updated whenever the state changes.
+
+* Sessions are switched by displaying a new _BrowserFragment_ for a different _Session_ object.
diff --git a/mobile/android/focus-android/docs/Recommended-pre-push-hook.md b/mobile/android/focus-android/docs/Recommended-pre-push-hook.md
new file mode 100644
index 0000000000..a9d377205c
--- /dev/null
+++ b/mobile/android/focus-android/docs/Recommended-pre-push-hook.md
@@ -0,0 +1,30 @@
+# Recommended pre-push hook
+
+If you want to reduce your PR turn-around time, I'd recommend adding a
+pre-push hook: this script will stop a push if the unit tests or linters
+fail, finding the failures before it hits TaskCluster (which takes
+forever to dig through the logs):
+```sh
+#!/bin/sh
+
+./gradlew -q \
+ checkstyle \
+ ktlint \
+ pmd \
+ detektCheck \
+ app:assembleFocusArmDebug
+
+
+# Tasks omitted because they take a long time to run:
+# - unit test on all variants
+# - UI tests
+# - lint (compiles all variants)
+```
+
+To use it:
+1. Create a file with these ^ contents (exclude the "\`") at `<repo>/.git/hooks/pre-push`
+1. Make it executable: `chmod 755 <repo>/.git/hooks/pre-push`
+
+And it will run before pushes. Notes:
+- Run `git push ... --no-verify` to push without making the check
+- It takes ~30 seconds to run. If you think this hook takes too long, you can remove the unit test line and it becomes almost instant.
diff --git a/mobile/android/focus-android/docs/Release-Process.md b/mobile/android/focus-android/docs/Release-Process.md
new file mode 100644
index 0000000000..e39789ba31
--- /dev/null
+++ b/mobile/android/focus-android/docs/Release-Process.md
@@ -0,0 +1,58 @@
+# Release Process
+
+## Creating a new Release Branch
+
+1. Create a branch name with the format `releases_v[version]` (for example: `releases_v87.0`).
+2. Pin the Android Components version to the final release version with the format `[version].0.0`.
+
+ For example:
+
+ | FILE | CURRENT VERSION | RELEASE VERSION |
+ |--------------------|--------------------|-----------------|
+ | AndroidComponents | 73.0.20210223143117| 73.0.0 |
+
+ For reference, the AC release checklist can be found at https://mozac.org/contributing/release-checklist.
+ Instead of updating the AC version manually, you could also wait for automation to update the [ac version](https://github.com/mozilla-mobile/focus-android/actions/workflows/update-ac.yml).
+
+3. In the GitHub UI, create a branch on the upstream with the format `releases_v[version]`.
+4. Push the `releases_v[version]` branch as a PR with the commit message "Set version to [version]" and commit into the upstream `releases_v[version]` branch.
+6. Create a new [milestone](https://github.com/mozilla-mobile/focus-android/milestones) for the next release and close the existing milestone.
+7. Announce the new `releases_v[version]` branch on Slack in #releaseduty-mobile.
+
+Automation should take over after you land your PR into the upstream `releases_v[version]` branch. You can verify by clicking on the branch in the UI, and looking for the green/yellow dot that will list links to the running build tasks.
+
+## After the Beta release
+
+ Update the `versionName` from `build.gradle(Module:focus-android.app)` to the next Focus beta release version.This should be the `[version + 1]`.
+ For example, if the release cut was for `90`, we're looking to prepare the latest nightly for `91`.
+ For example:
+
+ | FILE | CURRENT VERSION | RELEASE VERSION |
+ |--------------------|--------------------|-----------------|
+ | build.gradle | 90 | 91 |
+
+## Renew telemetry
+
+After the Beta cut, another task is to renew/remove all soon to expire telemetry probes. What we're looking for is to create a list of telemetry that will expire in `[release_version add 2]`. See [Firefox Release Calendar](https://wiki.mozilla.org/Release_Management/Calendar) for the current Release version. There is a script that will help with finding these soon to expire telemetry.
+
+1. Use the helper `python3 tools/data_renewal_generate.py release_version+2` to detected and generate files that will help create the following files:
+ - `[release_version add 2]`_expiry_list.csv
+ - `[release_version add 2]`_renewal_request.txt
+2. Upload the `[release_version add 2]`_expiry_list.csv to Google sheet in this [shared Google Drive](https://drive.google.com/drive/folders/1_ertMvn59eE9JmN721RqOjW6nNtxq9oS?usp=sharing) and contact product to review. For each telemetry listed answer decide for:
+ - Renew the metric (for how long? Add 12 versions?)
+ - Choose not to renew (but not delete)
+ - Choose to remove the metric
+ - Renew the metric and set to never expire (this should only be for business critical metrics)
+3. Note that `metrics.yaml` is also modified. Once the review is over, continue to modify `metrics.yaml` to match the decision made in the Google sheet. Make sure to add the PR link and if the telemetry never expires, add the email of the owner as contact.
+4. Create a PR for review. Modify `[release_version add 2]`_renewal_request.txt and paste it to the PR for data review. Make sure to add the answers for:
+ - When will this collection now expire?
+ - Why was the initial period of collection insufficient?
+
+
+## Ask for Help
+
+If you run into any problems, please ask any questions on Slack in #releaseduty-mobile.
+
+References:
+- https://github.com/mozilla-mobile/focus-android/tree/releases_v96.0
+- https://github.com/mozilla-mobile/focus-android/pull/6012
diff --git a/mobile/android/focus-android/docs/Release-tracks.md b/mobile/android/focus-android/docs/Release-tracks.md
new file mode 100644
index 0000000000..ad0c147901
--- /dev/null
+++ b/mobile/android/focus-android/docs/Release-tracks.md
@@ -0,0 +1,53 @@
+# Release tracks
+
+![](https://raw.githubusercontent.com/mozilla-mobile/focus-android/master/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png)
+
+We have three public release tracks for Focus/Klar:
+
+* **Production**: That's the version everyone sees on Google Play. We rollout releases gradually in stages.
+
+* **Beta**: This track is for Beta builds. We use this track to test builds with a wider audience and to uncover problems/crashes that may prevent us from releasing the build. We may push multiple releases to this track until we feel positive about publishing to the *production* track.
+
+* **Nightly**: We publish automated builds on this track every 24 hours. Those builds reflect the latest state of the repository (master). This track allows users to experience the newest Firefox Focus/Klar innovations in an unstable environment and provide feedback on features and performance to help determine what makes the final release. Nightly builds can be unstable and contain incomplete or defect features.
+
+
+## Nightly
+
+![](https://raw.githubusercontent.com/mozilla-mobile/focus-android/master/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher.png)
+
+* Updates every 24 hours.
+* Latest development state
+* Can be unstable and contain incomplete or defect features
+
+### How to sign up for Nightly
+
+To get Focus Nightly on your device, follow these steps:
+
+1) Visit https://groups.google.com/g/firefox-focus-pre-release and join the Google Group
+2) After you have joined the group opt-in to receive Nightly builds, again with the same Google account: https://play.google.com/apps/testing/org.mozilla.focus.nightly
+3) Download Firefox Focus (Nightly) from Google Play: https://play.google.com/store/apps/details?id=org.mozilla.focus.nightly
+
+Make sure you use the same Google Account for both steps.
+
+
+## Beta
+
+
+![](https://raw.githubusercontent.com/mozilla-mobile/focus-android/master/app/src/focusBeta/res/mipmap-xxxhdpi/ic_launcher.png)
+* Updates to the Beta track will typically be 1-2 times weekly.
+
+### How to sign up for beta
+To get Focus Beta on your device, follow these steps:
+1) Visit https://groups.google.com/g/firefox-focus-pre-release and join the Google Group
+2) After you have joined the group opt-in to receive Beta builds, again with the same Google account: https://play.google.com/apps/testing/org.mozilla.focus.beta
+3) Download Firefox Focus (Beta) from Google Play: https://play.google.com/store/apps/details?id=org.mozilla.focus.beta
+
+Make sure you use the same Google Account for both steps.
+
+
+### Manual downloads
+
+The latest Beta/Release builds can be downloaded manually from:
+https://github.com/mozilla-mobile/focus-android/releases
+
+Note that manually downloaded builds **do not update automatically**.
diff --git a/mobile/android/focus-android/docs/Removing-strings.md b/mobile/android/focus-android/docs/Removing-strings.md
new file mode 100644
index 0000000000..02a3cd86c5
--- /dev/null
+++ b/mobile/android/focus-android/docs/Removing-strings.md
@@ -0,0 +1,29 @@
+# Removing strings
+
+## Marking an unused string to be removed
+
+Removing strings manually could cause crashes in **Beta** and **Release** versions 💥 , as the removed strings could be uplifted to release branches by mistake, where strings are still needed. For this reason, we need a special process to remove them.
+
+Any landed string that is not removed while in development in Nightly will persist through 3 Firefox releases (Nightly, Beta, Release) before we can remove them from our code base. For example,
+if you want to remove a string that has already shipped prior to **Firefox Nightly 93**, the same string will still be in-use in **Firefox Beta 92** and **Firefox Release 91**. This means the string will be marked as unused and removed in 93 while still riding the train, and it can be removed safely when **Firefox Release 93** no longer ships, for instance, **Firefox Release 94** and beyond.
+
+To keep us safe when you want to remove strings from nightly:
+
+1. Add these attribute to the target strings `moz:removedIn="<<ACTUAL_NIGHTLY_VERSION>>"` and `tools:ignore="UnusedResources"`.
+
+```xml
+ <string name="onboarding_close" moz:removedIn="93" tools:ignore="UnusedResources">Close</string>
+```
+Example commit https://github.com/mozilla-mobile/focus-android/pull/6291/files
+
+## When to remove an unused string and how
+
+Strings that have been tagged with `moz:removedIn` attributes are safe to be removed after the marked version is no longer shipping and no longer in-use or needed.
+
+Consult the [Firefox release calendar](https://wiki.mozilla.org/Release_Management/Calendar). Let's say the Beta cut just happened and we are at Firefox Nightly 109, Firefox Beta 108 and Firefox Release 107. Everything marked with `moz:removedIn` <= 106 can now be removed.
+
+You only need to remove the en-US strings within [values/strings.xml](https://github.com/mozilla-mobile/focus-android/blob/main/app/src/main/res/values/strings.xml), and this change will propagate to the other locales.
+
+## Future
+
+It would be nice to add some automatization to delete the strings that have the `moz:removedIn` attributes where a full cycle has happen (3 releases versions from the actual release version).
diff --git a/mobile/android/focus-android/docs/Sprint-Process.md b/mobile/android/focus-android/docs/Sprint-Process.md
new file mode 100644
index 0000000000..7f51230fe4
--- /dev/null
+++ b/mobile/android/focus-android/docs/Sprint-Process.md
@@ -0,0 +1,47 @@
+# Sprint Process
+
+Focus follows a 2-week sprint cycle with 6-week milestone releases. Dot-releases with bugfixes are released every two weeks. Our upcoming train schedule is [here](https://wiki.mozilla.org/Mobile/Focus/Android/Train_Schedule).
+
+## Issue naming and labels
+
+### Labels
+Priority labels are based on the [Bugzilla triage process][triage priority] and set during triage to determine when they'll be worked on:
+* `P1`: Issues for the current 2-week sprint.
+ * [Open engineering issues](https://github.com/mozilla-mobile/focus-android/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3AP1%20NOT%20%5Bux%5D%20in%3Atitle%20)
+ * [Open UX issues](https://github.com/mozilla-mobile/focus-android/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3AP1%20ux%20in%3Atitle%20)
+* `P2`: Issues for the 6-week milestone release.
+ * [Open engineering issues](https://github.com/mozilla-mobile/focus-android/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3AP2%20NOT%20%5Bux%5D%20in%3Atitle%20)
+ * [Open UX issues](https://github.com/mozilla-mobile/focus-android/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3AP2%20ux%20in%3Atitle%20)
+* `P3`: Backlog
+* `P5`: Will not fix but will accept a patch
+
+Other labels:
+* `addressed`: Label for excluding items from triage. Should be used for [meta] items.
+
+### Issue Prefixes
+* `[meta]`: larger issues that need to be broken down, into a `[breakdown]` issue and issues for its smaller parts. This should include a checklist of all the issues (including the `[breakdown]` issue).
+
+ These do NOT get a P* label, but should be in a milestone.
+* `[breakdown]`: issue to track the work of breaking down a larger bug
+
+## Triage - Weekly
+- ([Link](https://github.com/mozilla-mobile/focus-android/issues?q=is%3Aissue+is%3Aopen+-label%3AP1+-label%3AP2+-label%3AP3+-label%3AP4+-label%3AP5+-label%3Aaddressed+-label%3Ablocked+sort%3Aupdated-desc+no%3Amilestone)) Assign priority labels (P1, P2, ...) to bugs without priority labels or the `addressed` label
+- ([Link](https://github.com/mozilla-mobile/focus-android/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3AP1+no%3Amilestone+)) Ensure all P1 labels are assigned a milestone
+- ([Link](https://github.com/mozilla-mobile/focus-android/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3AP2+no%3Amilestone+)) Ensure all P2 labels are assigned a milestone
+
+## Weekly Bug management (alternating)
+
+### Sprint planning
+Deciding what goes into a sprint, promote P2 issues to P1. After every release, this meeting is for deciding what goes into the upcoming milestone - add issues to the milestone and set them as P2.
+
+### Backlog grooming
+Handling Triage overflow, adding to the contributor bug lists, looking at milestone lists.
+
+[triage priority]: https://wiki.mozilla.org/Bugmasters/Process/Triage#Weekly_or_More_Frequently_.28depending_on_the_component.29
+## Monthly Roadmap Planning
+Plan and prioritize features for upcoming milestones - an update will be emailed out.
+
+Plan and facilitate workweeks
+release schedule
+trying to work with things without proper training
+too much observing
diff --git a/mobile/android/focus-android/docs/Telemetry.md b/mobile/android/focus-android/docs/Telemetry.md
new file mode 100644
index 0000000000..a6d202a93e
--- /dev/null
+++ b/mobile/android/focus-android/docs/Telemetry.md
@@ -0,0 +1,345 @@
+# Telemetry
+For clients that have "send anonymous usage data" enabled Focus sends a "core" ping and an "event" ping to Mozilla's telemetry service. Sending telemetry can be disabled in the app's settings. Builds of "Focus for Android" have telemetry enabled by default ("opt-out") while builds of "Klar for Android" have telemetry disabled by default.
+
+## Core ping
+
+Focus for Android creates and tries to send a "core" ping whenever the app goes to the background. This core ping uses the same format as Firefox for Android and is [documented on firefox-source-docs.mozilla.org](https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/data/core-ping.html).
+
+## Event ping
+
+In addition to the core ping an event ping for UI telemetry is generated and sent as soon as the app is sent to the background.
+
+### Settings
+
+As part of the event ping the most recent state of the user's setting is sent (default values in **bold**):
+
+| Setting | Key | Value(*)
+|--------------------------|---------------------------------|----------------------
+| Default search engine | pref_search_engine | **bundled engine name**/`custom`(**)
+| Block ad trackers | pref_privacy_block_ads | **true**/false
+| Block analytics trackers | pref_privacy_block_analytics | **true**/false
+| Block social trackers | pref_privacy_block_social | **true**/false
+| Block content trackers | pref_privacy_block_other | true/**false**
+| Block web fonts | pref_performance_block_webfonts | true/**false**
+| Block images | pref_performance_block_images | true/**false**
+| Locale override | pref_locale | **empty string**/`locale-code`(***)
+| Default browser | pref_default_browser | true/**false**
+| Stealth mode | pref_secure | **true**/false
+| Autocomplete (Default) | pref_autocomplete_preinstalled | true/false
+| Autocomplete (Custom) | pref_autocomplete_custom | true/false
+| Show tips on Firefox Focus home screen | pref_key_tips | **true**/false
+
+(*) All values are sent as a `String`.
+
+(**) If the default is one of the bundled engines, the name of the engine. Otherwise, just `custom`.
+
+(***) An **empty string** value indicates "System Default" locale is selected.
+
+### Events
+
+The event ping contains a list of events ([see event format on readthedocs.io](https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/collection/events.html)) for the following actions:
+
+#### Sessions
+
+| Event | category | method | object | value |
+|------------------------------------------|----------|------------|--------|--------|
+| Start session (App is in the foreground) | action | foreground | app | |
+| Stop session (App is in the background) | action | background | app | |
+
+#### Browsing
+
+| Event | category | method | object | value | extras. |
+|----------------------------------------|----------|-----------------------|------------|--------|------------|
+| URL entered | action | type_url | search_bar | | |
+| Search entered | action | type_query | search_bar | | |
+| Search hint clicked ("Search for ..") | action | select_query | search_bar | | |
+| Link from third-party app | action | intent_url | app | | |
+| Text selection action from app | action | text_selection_intent | app | | |
+| Long press on image / link | action | long_press | browser | | |
+| "Pull to refresh" | action | swipe | browser | reload | |
+| Autofill popup is shown | action | show | autofill | | |
+| Autofill performed | action | click | autofill | | |
+| Enable Search Suggestion from prompt | action | click | search_suggestion_prompt | true/false | |
+
+#### Custom Tabs
+
+| Event | category | method | object | value | extra |
+|---------------------------|----------|-------------------|----------------------|------------|------------|
+| Custom tab opened | action | intent_custom_tab | app | | `options`* |
+| "Close" button clicked | action | click | custom_tab_close_bu | | `tabs`* |
+| "Action" button clicked | action | click | custom_tab_action_bu | | |
+| Custom menu item selected | action | open | menu | custom_tab | |
+
+(*) `options` is a JSON map of enabled custom tab options as requested by the third-party app, e.g. [hasToolbarColor, hasCloseButton]
+
+(*) `tabs` is a JSON map containing the position of the currently selected tab and the total number of open tabs:
+
+```JavaScript
+{
+ "selected": "2" // Currently selected tab (Zero-based numbering; -1 if no tab is selected)
+ "total": "5" // Total number of open tabs
+}
+```
+
+#### Context Menu
+
+| Event | category | method | object | value |
+|----------------------------------------|----------|--------|---------------------|------------|
+| Link context menu dismissed | action | cancel | browser_contextmenu | link |
+| Share Link menu item selected | action | share | browser_contextmenu | link |
+| Copy link menu item selected | action | copy | browser_contextmenu | link |
+| Image context menu dismissed | action | cancel | browser_contextmenu | image |
+| Share Image menu item selected | action | share | browser_contextmenu | image |
+| Copy Image menu item selected | action | copy | browser_contextmenu | image |
+| Save Image menu item selected | action | save | browser_contextmenu | image |
+| Image with Link context menu dismissed | action | cancel | browser_contextmenu | image+link |
+| Open link in new tab | action | open | browser_contextmenu | tab |
+| Open new tab in Focus from customtab context menu | action | open | browser_contextmenu | full_browser |
+
+
+
+#### Erasing session
+
+| Event | category | method | object | value | extras |
+|----------------------------------------|----------|-------------|---------------------|------------|---------|
+| Floating action button clicked | action | click | erase_button | | `tabs`* |
+| Back button clicked: Home screen | action | click | back_button | erase_home | `tabs`* |
+| Back button clicked: Previous app | action | click | back_button | erase_app | `tabs`* |
+| Notification clicked | action | click | notification | erase | `tabs`* |
+| Notification "Erase and Open" click | action | click | notification_action | erase_open | `tabs`* |
+| Home screen shortcut clicked | action | click | shortcut | erase | `tabs`* |
+| Erase history in tabs tray | action | click | tabs_tray | erase | `tabs`* |
+| App removed by user from "recent apps" | action | click | recent_apps | erase | `tabs`* |
+
+(*) `tabs` is a JSON map containing the position of the currently selected tab and the total number of open tabs:
+
+```JavaScript
+{
+ "selected": "2" // Currently selected tab (Zero-based numbering; -1 if no tab is selected)
+ "total": "5" // Total number of open tabs
+}
+```
+
+#### Menu
+
+| Event | category | method | object | value | extras |
+|---------------------------------------------|----------|----------|-----------------|--------------|----------|
+| Enable/Disable content blocking for session | action | click | blocking_switch | true/false | |
+| Share URL with third-party app | action | share | menu | | |
+| Open default app for URL | action | open | menu | default | |
+| Open Firefox | action | open | menu | firefox | |
+| Open with ... (Show app chooser) | action | open | menu | selection | |
+| Open full browser from custom tab | action | click | menu | full_browser | |
+| "Download Firefox" clicked (in app chooser) | action | install | app | firefox | |
+| "What's new" | action | click | menu | whats_new | `state`* |
+| Reload current page | action | click | menu | reload | |
+| Report site issue | action | click | menu | report_issue | |
+| Find in Page | action | click | menu | find_in_page | |
+| Request desktop site | action | click | desktop_request_check| true/false | |
+
+(*) `state` is a JSON map containing information about whether the menu item was highlighted:
+
+```JavaScript
+{
+ "highlighted": "true" // Whether the menu item was highlighted or not
+}
+```
+
+#### Notification
+
+| Event | category | method | object | value | extras |
+|---------------------------------------|----------|----------|---------------------|------------|---------|
+| Notification clicked (Erase) | action | click | notification | erase | |
+| Action "Open" clicked | action | click | notification_action | open | |
+| Action "Erase and Open" clicked | action | click | notification_action | erase_open | `tabs`* |
+
+(*) `tabs` is a JSON map containing the position of the currently selected tab and the total number of open tabs:
+
+```JavaScript
+{
+ "selected": "2" // Currently selected tab (Zero-based numbering; -1 if no tab is selected)
+ "total": "5" // Total number of open tabs
+}
+```
+#### Page Load Time Histogram
+
+
+| Event | category | method | object | extras|
+|-----------------|----------|--------------|---------| ----- |
+| Histogram for Page Load Times for Foreground Session | histogram | foreground | browser | histogram*|
+
+(*) There are 200 extras attached to this event, each a bucket of 100 ms each, with the key as the minimum value in the bucket and the value as the corresponding number of events in the bucket. Anything over 20,000 is put in the last bucket. For example:
+```
+{”0":"2"}
+{“100”:"3"}
+...
+{"19900", "4"}
+```
+
+#### URI Count
+
+| Event | category | method | object | extra |
+|---------------------------------------------|----------|----------|---------------------|-----------------|
+| The count of the total non-unique http(s) URIs visited in a subsession, including page reloads, after the session has been restored. This does not include background page requests and URIs from embedded pages or private browsing | action | open | browser | `{"total_uri_count": num }` |
+| The count of the unique domains visited in a subsession, after the session has been restored. Subdomains under eTLD are aggregated after the first level (i.e. test.example.com and other.example.com are only counted once). This does not include background page requests and domains from embedded pages or private browsing. | action | open | browser | `{"unique_domains_count": num }` |
+
+
+#### Downloads
+
+| Event | category | method | object | value |
+|---------------------------------------------|----------|----------|---------------------|-----------------|
+| Clicked "Download" | action | click | download_dialog | download |
+| Clicked "Cancel" | action | click | download_dialog | cancel |
+
+#### Open Focus From Icon
+
+| Event | category | method | object | value |
+|---------------------------------------------|----------|----------|---------------------|-----------------|
+| Launched Focus From Icon | action | click | app_icon | open |
+| Resume Focus From Icon | action | click | app_icon | resume |
+
+#### Add to Home screen
+
+| Event | category | method | object | value |
+|-----------------------------------------|----------|----------|--------------------------|-------------------|
+| Clicked "Add to Home screen" in dialog | action | click | add_to_homescreen_dialog | add_to_homescreen |
+| Clicked "Cancel" in dialog | action | click | add_to_homescreen_dialog | cancel |
+| Open Focus from Home screen shortcut | action | click | homescreen_shortcut | open |
+
+#### Share to Focus Event
+
+| Event | category | method | object | value |
+|---------------------------------------------|----------|----------|---------------------|-----------------|
+| Shared URL to Focus | action | share_intent | app | url |
+| Shared Search Terms to Focus | action | share_intent | app | search |
+
+#### Settings
+
+| Event | category | method | object | value | extras |
+|--------------------------------|----------|----------|-------------------------|-------|--------------------------
+| Setting changed | action | change | setting | <key> | `{ "to": <value> }`
+| Autocomplete domain added | action | save | autocomplete_domain | | `{ "source": <value> }`
+| Autocomplete domain removed | action | remove | autocomplete_domain | | `{ "total": 5 }`
+| Autocomplete domain reordered | action | reorder | autocomplete_domain | | `options*`
+| Open Exceptions Setting | action | open | allowlist | |
+| Remove Exceptions Domains | action | remove | allowlist | |`{ "total": 5 }`
+| Remove All Exceptions Domains | action | remove_all |allowlist | |
+| Default search engine clicked | action | open | search_engine_setting | |
+| Change default search engine | action | save | search_engine_setting | | `{"source": src* }`
+| Select "Remove" engines screen | action | remove | search_engine_setting | |
+| Delete search engines | remove | remove | remove_search_engines | |`{"selected": num* }`
+| Restore bundled engines | action | restore | search_engine_setting | |
+| Select "Add another engine" | action | show | custom_search_engine | |
+| Save custom search engine | action | save | custom_search_engine | | `{"success": bool* }`
+| Click "Add search engine" ℹ️ | action | click | search_engine_learn_more| |
+| Open with default browser prompt| action | show | make_default_browser_open_with| |
+| Settings default browser prompt| action | show | make_default_browser_settings| |
+
+
+(*) `options` is a JSON map containing:
+
+```JavaScript
+{
+ "from": 5
+ "to": 2
+}
+```
+
+(*) `src` can be either `bundled` or `custom`
+
+(*) `num` number of engines selected for deletion
+
+(*) `bool` true if successfully saved, false if validation error
+
+#### Firstrun
+
+| Event | category | method | object | value |
+|---------------------------------------------|----------|----------|---------------------|--------------|
+| Showing a first run page | action | show | firstrun | `page`* |
+| Skip button pressed | action | click | firstrun | skip |
+| Finish button pressed | action | click | firstrun | finish |
+
+(*) Page numbers start at 0. Initially when the firstrun tour is shown an event for the first page (0) is fired.
+
+#### Multitasking / Tabs
+
+| Event | category | method | object | value | extras |
+|--------------------------------------------|----------|----------|---------------------|-------|---------|
+| Context menu: Open link in new tab | action | open | browser_contextmenu | tab | `tabs`* |
+| Open the tabs tray | action | show | tabs_tray | | |
+| Close the tabs tray (back / click outside) | action | hide | tabs_tray | | |
+| Switch to tab in tabs tray | action | click | tabs_tray | tab | `tabs`* |
+| Erase history in tabs tray | action | click | tabs_tray | erase | `tabs`* |
+
+(*) `tabs` is a JSON map containing the position of the currently selected tab and the total number of open tabs:
+
+```JavaScript
+{
+ "selected": "2" // Currently selected tab (Zero-based numbering; -1 if no tab is selected)
+ "total": "5" // Total number of open tabs
+}
+```
+
+#### Homescreen Tips
+
+| Event | category | method | object | value |
+|------------------------------------------|----------|------------|--------|--------|
+| Open in new tab tip displayed | action | show | tip | open_in_new_tab_tip | |
+| Add to homescreen tip displayed | action | show | tip | add_to_homescreen_tip | |
+| Disable tracking protection tip displayed | action | show | tip | disable_tracking_protection_tip | |
+| Disable tips on home screen tip displayed | action | show | tip | disable_tips_tip | |
+| Set default browser tip displayed | action | show | tip | default_browser_tip | |
+| Autocomplete URL tip displayed | action | show | tip | add_autocomplete_url_tip | |
+| Open in new tab tip tapped | action | click | tip | open_in_new_tab_tip | |
+| Add to homescreen tip tapped | action | click | tip | add_to_homescreen_tip | |
+| Disable tips tip tapped | action | click | tip | disable_tips_tip | | |
+| Set default browser tip tapped | action | click | tip | default_browser_tip | |
+| Autocomplete URL tip tapped | action | click | tip | add_autocomplete_url_tip | |
+| Homescreen tips enabled/disabled | action | click | tip | add_to_homescreen_tip | |
+| Survey tip displayed | action | show | tip | survey_tip | |
+| Survey tip tapped | action | click | tip | survey_tip | |
+| Survey (es) tip displayed | action | show | tip | survey_tip_es | |
+| Survey (es) tip tapped | action | click | tip | survey_tip_es | |
+| Survey (fr) tip displayed | action | show | tip | survey_tip_fr | |
+| Survey (fr) tip tapped | action | click | tip | survey_tip_fr | |
+
+#### SSL Errors
+
+| Event | category | method | object | extras |
+|--------------------------------------------|----------|----------|---------|---------|
+| SSL Error From Page | error | page | browser |`error`*|
+| SSL Error From Resource | error | resource | browser |`error`* |
+
+(*)`error` is a JSON map containing the primary SSL Error
+
+```JavaScript
+{
+ "error_code": "SSL_DATE_INVALID" // Primary SSL Error
+}
+```
+
+| Possible Error Codes |
+|----------------------|
+| SSL_DATE_INVALID |
+| SSL_EXPIRED |
+|SSL_IDMISMATCH |
+|SSL_NOTYETVALID |
+|SSL_UNTRUSTED |
+|SSL_INVALID |
+|Undefined SSL Error |
+
+### Limits
+
+* An event ping will contain up to but no more than 500 events
+* No more than 40 pings per type (core/event) are stored on disk for upload at a later time
+* No more than 100 pings are sent per day
+
+## Implementation notes
+
+* Event pings are generated (and stored on disk) whenever the onStop() callback of the main activity is triggered. This happens whenever the main screen of the app is no longer visible (The app is in the background or another screen is displayed on top of the app).
+
+* Whenever we are storing pings we are also scheduling an upload. We are using Android’s JobScheduler API for that. This allows the system to run the background task whenever it is convenient and certain criterias are met. The only criteria we are specifying is that we require an active network connection. In most cases this job is executed immediately after the app is in the background.
+
+* Whenever an upload fails we are scheduling a retry. The first retry will happen after 30 seconds (or later if there’s no active network connection at this time). For further retries a exponential backoff policy is used: [30 seconds] * 2 ^ (num_failures - 1)
+
+* An earlier retry of the upload can happen whenever the app is coming to the foreground and sent to the background again (the previous scheduled job is reset and we are starting all over again).
diff --git a/mobile/android/focus-android/docs/UI-Test.md b/mobile/android/focus-android/docs/UI-Test.md
new file mode 100644
index 0000000000..a6b126297b
--- /dev/null
+++ b/mobile/android/focus-android/docs/UI-Test.md
@@ -0,0 +1,54 @@
+# UI Test
+
+To run automated tests on firefox focus, you will need a few things to get started.
+1. Working installation of git and a local clone of the this Focus repository. You can do:
+
+ git clone https://github.com/mozilla-mobile/focus-android.git
+
+2. For this walkthrough, you will also need Android Studio, which can be found at [android website](https://developer.android.com/studio) . Follow the instructions. For the most part, Android Studio is going to set itself up with the repository all you have to do is open the directory. You may also need to install JDK as well.
+
+3. From there you will need either an android device (Preferably Nexus 4 or more recent) or setup emulators in Android Studio
+To create an emulator:
+ 1. Open **Android Studio**, and navigate to the **Tools** drop down menu
+ 2. Navigate to **Android** pop out selection on the list and select "**AVD Manager**". A window will open from which you can manage your virtual devices
+ 3. select "**Create Virtual Device**"
+ 4. Select the phone tab for devices and select either the nexus devices or Google Pixel (preferably)
+ 5. you will need to select images with API level 22 ~ 26, download and install them by selecting download next to their names.
+ 6. Select the images to be installed, and click next.
+ 7. You can set the name of the device and the configuration, but is recommended to set following configurations changed:
+ * **Camera: None (For both Front and Back)**
+ * **Graphics: Automatic**
+ * **Multi-Core CPU: Unchecked**
+
+ 8. **Device Testing**: If you wish to run tests on device, you need to enable Developer Options in the Settings menu (this is usually achieved by tapping **About Phone** -> **Build Number** 7 times), and enable '**USB Debugging**.' Then connect the phone to PC via USB cable.
+
+ Our CI currently uses the following HW/SW configuration:
+
+ _Firefox Focus_
+ * Nexus 6, API 23 simulator
+ * Pixel 2, API 26 simulator
+
+ _Firefox Klar_
+ * Nexus 9, virtual, API Level 26
+
+4. You are now ready to run the automated tests!
+ 1. Click the bottom left corner of Android Studio, and enable "**Build Variants**." The Build Variants value should be set to one of the following:
+
+ on device: '**focusArmDebug**' or '**klarArmDebug**'
+
+ simulator: '**focusX86Debug**' or '**klarX86Debug**'
+
+ 2. Click on the drop down on the top left of Android Studio below the path view, and select '**Tests**'
+ 3. navigate the sub-directories to the folder locations of the tests to be run. For example, UI Tests are located in **focus-android/app/src/androidTest/java/org.mozilla.focus.activity**
+ 4. To run all tests in folder right click on the folder and select run. For individual tests you will do the same but right click on the specific test.
+ 5. select your simulator or device (connected via ADB).
+
+From there Android Studio will compile and install Focus on the simulator or device and start running the tests.
+
+If you just need to run Focus, select '**app**' from the **Configurations** pull-down menu and press Run button.
+
+You may need to follow along the first time to grant the app permissions to access the different parts of android such as storage access or the tests will fail, or manually turn on Storage permissions for Focus.
+
+It should be noted that not all tests will pass in simulator environment. Those tests are designed to run on our CI setup, and while most will not have issues, **BadURLTest** will fail on vanilla simulator environment where no Google Play store is installed, because it'll try to decode market:// url. Also, **AdBlockingTest** is suppressed, because while it passed locally, it was failing on our CI due to the network setup. I have left the test script intact for future references.
+
+(Drafted by [1Jamie](https://github.com/1jamie))
diff --git a/mobile/android/focus-android/docs/index.rst b/mobile/android/focus-android/docs/index.rst
new file mode 100644
index 0000000000..2243097b6a
--- /dev/null
+++ b/mobile/android/focus-android/docs/index.rst
@@ -0,0 +1,28 @@
+=================================
+Focus for Android
+=================================
+
+Specific documentation on a few topics is available at:
+
+.. toctree::
+ :maxdepth: 1
+
+ Adjust Usage <Adjust-Usage.md>
+ Architecture Decisions <Architecture-Decisions.md>
+ Battery Debugging <Battery-Debugging.md>
+ Content blocking <Content-blocking.md>
+ Crash Reporting with Sentry <Crash-Reporting-with-Sentry.md>
+ Development Custom GeckoView <Development-Custom-GeckoView.md>
+ Feature & Issue workflow <Feature-&-Issue-workflow.md>
+ Running GeckoView in a debug environment <GeckoView-(In-Progress).md>
+ Home <Home.md>
+ Homescreen Tips <Homescreen-Tips.md>
+ Multisession architecture <Multisession-architecture.md>
+ Recommended pre-push hook <Recommended-pre-push-hook.md>
+ Release Process <Release-Process.md>
+ Release tracks <Release-tracks.md>
+ Removing strings<Removing-strings.md>
+ Sprint Process <Sprint-Process.md>
+ Telemetry <Telemetry.md>
+ UI Test <UI-Test.md>
+ l10n Screenshot Generation <l10n-Screenshot-Generation.md>
diff --git a/mobile/android/focus-android/docs/l10n-Screenshot-Generation.md b/mobile/android/focus-android/docs/l10n-Screenshot-Generation.md
new file mode 100644
index 0000000000..432358dd59
--- /dev/null
+++ b/mobile/android/focus-android/docs/l10n-Screenshot-Generation.md
@@ -0,0 +1,29 @@
+# l10n Screenshot Generation
+
+This wiki describes the steps to generate l10n screenshots on a device.
+
+## Prerequisites
+You need to install [Fastlane Screengrab](https://docs.fastlane.tools/getting-started/android/screenshots/) in order to run screenshots test. Make sure all dependencies are installed as well. Gradle dependencies and screengrab config file is in the root folder of the repo.
+
+Open a console, go to Focus folder, and type ```export LC_ALL="en_US.UTF-8"``` . Fastlane needs this value to be set, otherwise the test will crash on some locales.
+
+Enable [this](https://github.com/mozilla-mobile/focus-android/blob/master/app/src/androidTest/java/org/mozilla/focus/screenshots/ScreenshotTest.java#L71) line and disable the line below. Make sure the import is properly added. ```HostScreencapScreenshotStrategy``` was developed to generate screenshots on Taskcluster, but it is currently not being used. In order to take device screenshots, you need ```UiAutomatorScreenshotStrategy```.
+
+## Build
+Build test runner and apk by executing ```./gradlew assembleFocusArmDebug assembleFocusArmDebugAndroidTest```
+
+## Configure Screengrabfile
+```Screengrabfile``` contains the configuration for Screengrab execution, including locale list. The locale list can be found in: https://pontoon.mozilla.org/projects/focus-for-android/. Make sure the locales array is up to date.
+
+Note, that, ``` clear_previous_screenshots``` is set to true initially, but if you ran the tests and a handful of locales have failed, instead of rerunning the whole test, you should update locales array to only contain failed locales, and set this value to false. This way you won't lose successful locale screenshots.
+
+## Execute Test
+Make sure the device is connected via USB, and run ```bundle exec fastlane screengrab run``` command. Currently, this will take about 3 hours to run through all locales.
+
+## Compress outputs
+The screenshots are located in ```fastlane/metadata/android``` folder. Go to this folder, and resize the image to reduce the file size by running ```find . -name "*.png" | xargs mogrify -resize 50%```
+
+On OS X, you can compress the file size further by using [ImageOptim](https://imageoptim.com/mac). ImageOptim has a bug where too many files are loaded, it slows down and eventually cannot process images. To circumvent this issue, ```find . -type f -iname \*png -print0 | xargs -0 -t -n 100 /Applications/ImageOptim.app/Contents/MacOS/ImageOptim``` command can be run on ```android``` folder, where it'll open only 100 images, close, and reopen with next 100 images.
+
+Rename ```screenshots.html``` to ```index.html```
+Upload the screenshots to https://github.com/npark-mozilla/npark-mozilla.github.io repo, if needed for general viewing. Or you can choose to upload to Google drive and share link.
diff --git a/mobile/android/focus-android/gradle.properties b/mobile/android/focus-android/gradle.properties
new file mode 100644
index 0000000000..c94089f8d9
--- /dev/null
+++ b/mobile/android/focus-android/gradle.properties
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+android.useAndroidX=true
+org.gradle.jvmargs=-Xmx7g -Xms2g -XX:MaxMetaspaceSize=6g -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParallelGC
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+
+libUrl=https://github.com/mozilla-mobile/firefox-android/tree/main/focus-android
+libVcsUrl=https://github.com/mozilla-mobile/firefox-android.git
+libLicense=MPL-2.0
+libLicenseUrl=https://www.mozilla.org/en-US/MPL/2.0/
+android.nonTransitiveRClass=false
+android.nonFinalResIds=false
+android.enableR8.fullMode=false
+
+# Disable problematic AGP 8.3 optimization
+android.enableNewResourceShrinker.preciseShrinking=false
diff --git a/mobile/android/focus-android/gradle/wrapper/gradle-wrapper.jar b/mobile/android/focus-android/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000..e6441136f3
--- /dev/null
+++ b/mobile/android/focus-android/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/mobile/android/focus-android/gradle/wrapper/gradle-wrapper.properties b/mobile/android/focus-android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000000..b82aa23a4f
--- /dev/null
+++ b/mobile/android/focus-android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,7 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
+networkTimeout=10000
+validateDistributionUrl=true
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/mobile/android/focus-android/gradlew b/mobile/android/focus-android/gradlew
new file mode 100755
index 0000000000..1aa94a4269
--- /dev/null
+++ b/mobile/android/focus-android/gradlew
@@ -0,0 +1,249 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+# This is normally unused
+# shellcheck disable=SC2034
+APP_BASE_NAME=${0##*/}
+# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
+APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ if ! command -v java >/dev/null 2>&1
+ then
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Collect all arguments for the java command:
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# and any embedded shellness will be escaped.
+# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
+# treated as '${Hostname}' itself on the command line.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/mobile/android/focus-android/gradlew.bat b/mobile/android/focus-android/gradlew.bat
new file mode 100644
index 0000000000..7101f8e467
--- /dev/null
+++ b/mobile/android/focus-android/gradlew.bat
@@ -0,0 +1,92 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%"=="" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo. 1>&2
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo. 1>&2
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if %ERRORLEVEL% equ 0 goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/mobile/android/focus-android/l10n.toml b/mobile/android/focus-android/l10n.toml
new file mode 100644
index 0000000000..d354ade04e
--- /dev/null
+++ b/mobile/android/focus-android/l10n.toml
@@ -0,0 +1,118 @@
+basepath = "."
+
+locales = [
+ "ace",
+ "af",
+ "am",
+ "an",
+ "anp",
+ "ar",
+ "ast",
+ "ay",
+ "az",
+ "be",
+ "bg",
+ "bn",
+ "bo",
+ "bs",
+ "ca",
+ "cak",
+ "co",
+ "cs",
+ "cy",
+ "da",
+ "de",
+ "dsb",
+ "el",
+ "en-CA",
+ "en-GB",
+ "eo",
+ "es-AR",
+ "es-CL",
+ "es-ES",
+ "es-MX",
+ "et",
+ "eu",
+ "fa",
+ "fi",
+ "fr",
+ "fur",
+ "fy-NL",
+ "ga-IE",
+ "gl",
+ "gu-IN",
+ "he",
+ "hi-IN",
+ "hr",
+ "hsb",
+ "hu",
+ "hus",
+ "hy-AM",
+ "ia",
+ "id",
+ "is",
+ "it",
+ "ixl",
+ "ja",
+ "jv",
+ "ka",
+ "kaa",
+ "kab",
+ "kk",
+ "ko",
+ "kw",
+ "lo",
+ "lt",
+ "meh",
+ "mix",
+ "mr",
+ "ms",
+ "my",
+ "nb-NO",
+ "ne-NP",
+ "nl",
+ "nn-NO",
+ "nv",
+ "oc",
+ "pa-IN",
+ "pai",
+ "pl",
+ "ppl",
+ "pt-BR",
+ "quc",
+ "quy",
+ "ro",
+ "ru",
+ "si",
+ "sk",
+ "skr",
+ "sl",
+ "sn",
+ "sq",
+ "sr",
+ "su",
+ "sv-SE",
+ "ta",
+ "te",
+ "tg",
+ "th",
+ "tr",
+ "trs",
+ "tsz",
+ "tt",
+ "uk",
+ "ur",
+ "vi",
+ "wo",
+ "yua",
+ "zam",
+ "zh-CN",
+ "zh-HK",
+ "zh-TW",
+]
+
+[env]
+
+[[paths]]
+ reference = "app/src/main/res/values/strings.xml"
+ l10n = "app/src/main/res/values-{android_locale}/strings.xml"
diff --git a/mobile/android/focus-android/plugins/focusdependencies/build.gradle b/mobile/android/focus-android/plugins/focusdependencies/build.gradle
new file mode 100644
index 0000000000..7b9006f55c
--- /dev/null
+++ b/mobile/android/focus-android/plugins/focusdependencies/build.gradle
@@ -0,0 +1,25 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+plugins {
+ id "org.gradle.kotlin.kotlin-dsl" version "4.2.1"
+}
+
+repositories {
+ gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
+ maven {
+ url repository
+ if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) {
+ allowInsecureProtocol = true
+ }
+ }
+ }
+}
+
+gradlePlugin {
+ plugins.register("FocusDependenciesPlugin") {
+ id = "FocusDependenciesPlugin"
+ implementationClass = "FocusDependenciesPlugin"
+ }
+}
diff --git a/mobile/android/focus-android/plugins/focusdependencies/settings.gradle b/mobile/android/focus-android/plugins/focusdependencies/settings.gradle
new file mode 100644
index 0000000000..16701d4aac
--- /dev/null
+++ b/mobile/android/focus-android/plugins/focusdependencies/settings.gradle
@@ -0,0 +1,19 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+// Prevents gradle builds from looking for a root settings.gradle
+pluginManagement {
+ apply from: file('../../../gradle/mozconfig.gradle')
+
+ repositories {
+ gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
+ maven {
+ url repository
+ if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) {
+ allowInsecureProtocol = true
+ }
+ }
+ }
+ }
+}
diff --git a/mobile/android/focus-android/plugins/focusdependencies/src/main/java/FocusDependenciesPlugin.kt b/mobile/android/focus-android/plugins/focusdependencies/src/main/java/FocusDependenciesPlugin.kt
new file mode 100644
index 0000000000..ecc69fe4f1
--- /dev/null
+++ b/mobile/android/focus-android/plugins/focusdependencies/src/main/java/FocusDependenciesPlugin.kt
@@ -0,0 +1,68 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import org.gradle.api.Plugin
+import org.gradle.api.initialization.Settings
+
+// If you ever need to force a toolchain rebuild (taskcluster) then edit the following comment.
+// FORCE REBUILD 2023-05-05
+
+class FocusDependenciesPlugin : Plugin<Settings> {
+ override fun apply(settings: Settings) = Unit
+}
+
+object FocusVersions {
+ object Adjust {
+ const val adjust = "4.38.2"
+ const val install_referrer = "2.2"
+ }
+
+ object AndroidX {
+ const val constraint_layout_compose = "1.0.1"
+ const val splashscreen = "1.0.1"
+ const val transition = "1.4.1"
+ }
+
+ object Google {
+ const val play = "1.10.3"
+ }
+
+ object Testing {
+ const val androidx_espresso = "3.5.1"
+ const val androidx_orchestrator = "1.4.2"
+ const val falcon = "2.2.0"
+ const val fastlane = "2.1.1"
+ const val junit = "5.10.2"
+ }
+
+ object ThirdParty {
+ const val osslicenses_plugin = "0.10.4"
+ }
+}
+
+object FocusDependencies {
+ const val androidx_constraint_layout_compose =
+ "androidx.constraintlayout:constraintlayout-compose:${FocusVersions.AndroidX.constraint_layout_compose}"
+
+ const val androidx_splashscreen = "androidx.core:core-splashscreen:${FocusVersions.AndroidX.splashscreen}"
+ const val androidx_transition = "androidx.transition:transition:${FocusVersions.AndroidX.transition}"
+
+ const val google_play = "com.google.android.play:core:${FocusVersions.Google.play}"
+
+ const val adjust = "com.adjust.sdk:adjust-android:${FocusVersions.Adjust.adjust}"
+ const val install_referrer = "com.android.installreferrer:installreferrer:${FocusVersions.Adjust.install_referrer}"
+ const val osslicenses_plugin = "com.google.android.gms:oss-licenses-plugin:${FocusVersions.ThirdParty.osslicenses_plugin}"
+
+ const val androidx_orchestrator = "androidx.test:orchestrator:${FocusVersions.Testing.androidx_orchestrator}"
+ const val espresso_contrib = "androidx.test.espresso:espresso-contrib:${FocusVersions.Testing.androidx_espresso}"
+ const val espresso_idling_resource = "androidx.test.espresso:espresso-idling-resource:${FocusVersions.Testing.androidx_espresso}"
+ const val espresso_intents = "androidx.test.espresso:espresso-intents:${FocusVersions.Testing.androidx_espresso}"
+ const val espresso_web = "androidx.test.espresso:espresso-web:${FocusVersions.Testing.androidx_espresso}"
+ const val falcon = "com.jraska:falcon:${FocusVersions.Testing.falcon}"
+ const val fastlane = "tools.fastlane:screengrab:${FocusVersions.Testing.fastlane}"
+
+ const val testing_junit_api = "org.junit.jupiter:junit-jupiter-api:${FocusVersions.Testing.junit}"
+ const val testing_junit_engine = "org.junit.jupiter:junit-jupiter-engine:${FocusVersions.Testing.junit}"
+ const val testing_junit_params = "org.junit.jupiter:junit-jupiter-params:${FocusVersions.Testing.junit}"
+}
diff --git a/mobile/android/focus-android/quality/checkstyle.xml b/mobile/android/focus-android/quality/checkstyle.xml
new file mode 100644
index 0000000000..b1728aebc1
--- /dev/null
+++ b/mobile/android/focus-android/quality/checkstyle.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!DOCTYPE module PUBLIC
+ "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
+ "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
+<module name="Checker">
+ <property name="charset" value="UTF-8"/>
+
+ <module name="FileTabCharacter">
+ <property name="eachLine" value="true"/>
+ </module>
+
+ <module name="RegexpSingleline">
+ <property name="format" value="\s+$"/>
+ <property name="message" value="Trailing whitespace"/>
+ </module>
+
+ <module name="TreeWalker">
+ <module name="GenericWhitespace"/>
+ <module name="NoLineWrap">
+ <property name="tokens" value="IMPORT,PACKAGE_DEF"/>
+ </module>
+ <module name="OuterTypeFilename"/>
+ <module name="WhitespaceAfter" />
+ <module name="WhitespaceAround">
+ <property name="allowEmptyConstructors" value="true"/>
+ <property name="allowEmptyMethods" value="true"/>
+ <property name="allowEmptyTypes" value="true"/>
+ </module>
+ <module name="NeedBraces" />
+ <module name="LeftCurly" />
+ <module name="RightCurly" />
+ <module name="OneStatementPerLine" />
+ <module name="FallThrough" />
+
+ <!-- Imports -->
+ <module name="AvoidStarImport" />
+ <module name="IllegalImport" />
+ <module name="RedundantImport" />
+ <module name="UnusedImports" />
+ </module>
+
+</module>
diff --git a/mobile/android/focus-android/quality/detekt-baseline.xml b/mobile/android/focus-android/quality/detekt-baseline.xml
new file mode 100644
index 0000000000..91d986d5cb
--- /dev/null
+++ b/mobile/android/focus-android/quality/detekt-baseline.xml
@@ -0,0 +1,406 @@
+<?xml version="1.0" ?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<SmellBaseline>
+ <ManuallySuppressedIssues></ManuallySuppressedIssues>
+ <CurrentIssues>
+ <ID>AbsentOrWrongFileLicense:LocalesList.kt$org.mozilla.focus.generated.LocalesList.kt</ID>
+ <ID>CollapsibleIfStatements:MainActivity.kt$MainActivity$if (!isTaskRoot) { if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) &amp;&amp; Intent.ACTION_MAIN == intent.action) { finish() return } }</ID>
+ <ID>CollapsibleIfStatements:UrlInputFragment.kt$UrlInputFragment.&lt;no name provided&gt;$if (reverse) { if (isOverlay) { dismiss() } }</ID>
+ <ID>EmptyFunctionBlock:AutocompleteListFragment.kt$AutocompleteListFragment.&lt;no name provided&gt;${}</ID>
+ <ID>EmptyFunctionBlock:ExceptionsListFragment.kt$ExceptionsListFragment.&lt;no name provided&gt;${}</ID>
+ <ID>EmptyFunctionBlock:FirstrunFragment.kt$FirstrunFragment.&lt;no name provided&gt;${}</ID>
+ <ID>MayBeConst:CrashReporterFragment.kt$CrashReporterFragment.Companion$val FRAGMENT_TAG = "crash-reporter"</ID>
+ <ID>MayBeConst:IconGenerator.kt$IconGenerator.Companion$private val DEFAULT_ICON_CHAR = '?'</ID>
+ <ID>MayBeConst:IconGenerator.kt$IconGenerator.Companion$private val TEXT_SIZE_DP = 36f</ID>
+ <ID>MayBeConst:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference.Companion$private val SEARCH_ENGINE_NAME_KEY = "search-engine-name"</ID>
+ <ID>MayBeConst:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference.Companion$private val SEARCH_QUERY_KEY = "search-query"</ID>
+ <ID>MayBeConst:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference.Companion$private val SUPER_STATE_KEY = "super-state"</ID>
+ <ID>OutdatedDocumentation:AppAdapter.kt$AppAdapter : Adapter</ID>
+ <ID>OutdatedDocumentation:AppReviewUtils.kt$AppReviewUtils.Companion$fun addAppOpenings(context: Context)</ID>
+ <ID>OutdatedDocumentation:AppReviewUtils.kt$AppReviewUtils.Companion$fun showAppReview(activity: Activity)</ID>
+ <ID>OutdatedDocumentation:AppState.kt$AppState : State</ID>
+ <ID>OutdatedDocumentation:AppState.kt$Screen</ID>
+ <ID>OutdatedDocumentation:AppState.kt$Screen$Locked : Screen</ID>
+ <ID>OutdatedDocumentation:DefaultTopSitesStorage.kt$DefaultTopSitesStorage : TopSitesStorageObservable</ID>
+ <ID>OutdatedDocumentation:FocusDialog.kt$@Suppress("LongParameterList") @Composable fun FocusDialog( dialogTitle: String, dialogTextComposable: @Composable (() -&gt; Unit)? = null, dialogText: String = "", onConfirmRequest: () -&gt; Unit, onDismissRequest: () -&gt; Unit, confirmButtonText: String = "null", dismissButtonText: String = "null", isConfirmButtonEnabled: Boolean = true, isDismissButtonEnabled: Boolean = true, isConfirmButtonVisible: Boolean = true, isDismissButtonVisible: Boolean = true, )</ID>
+ <ID>OutdatedDocumentation:HtmlLoader.kt$HtmlLoader$fun loadResourceFile( context: Context, @RawRes resourceID: Int, substitutionTable: Map&lt;String, String&gt;, ): String</ID>
+ <ID>OutdatedDocumentation:Language.kt$Language</ID>
+ <ID>OutdatedDocumentation:LanguageListItem.kt$LanguageListItem</ID>
+ <ID>OutdatedDocumentation:LanguageStorage.kt$LanguageStorage$fun saveCurrentLanguageInSharePref(languageTag: String)</ID>
+ <ID>OutdatedDocumentation:PrivateNotificationFeature.kt$PrivateNotificationFeature : LifecycleAwareFeature</ID>
+ <ID>OutdatedDocumentation:SitePermissionOptionsFragmentCompose.kt$@Composable fun OptionsPermissionList( optionsListItems: List&lt;SitePermissionOptionListItem&gt;, state: MutableState&lt;Int&gt;, permissionLabel: String?, goToPhoneSettings: () -&gt; Unit, componentPermissionBlockedByAndroidVisibility: Boolean, )</ID>
+ <ID>UndocumentedPublicClass:AboutFragment.kt$AboutFragment : BaseSettingsLikeFragment</ID>
+ <ID>UndocumentedPublicClass:AdvancedSettingsFragment.kt$AdvancedSettingsFragment : BaseSettingsFragmentOnSharedPreferenceChangeListener</ID>
+ <ID>UndocumentedPublicClass:AppAction.kt$AppAction$NavigateUp : AppAction</ID>
+ <ID>UndocumentedPublicClass:AppAction.kt$AppAction$OpenSettings : AppAction</ID>
+ <ID>UndocumentedPublicClass:AppAction.kt$AppAction$OpenSitePermissionOptionsScreen : AppAction</ID>
+ <ID>UndocumentedPublicClass:AppConstants.kt$AppConstants</ID>
+ <ID>UndocumentedPublicClass:AppContentInterceptor.kt$AppContentInterceptor : RequestInterceptor</ID>
+ <ID>UndocumentedPublicClass:AppReviewStep.kt$AppReviewStep</ID>
+ <ID>UndocumentedPublicClass:AppReviewUtils.kt$AppReviewUtils</ID>
+ <ID>UndocumentedPublicClass:AppStartReasonProvider.kt$AppStartReasonProvider$StartReason</ID>
+ <ID>UndocumentedPublicClass:AppState.kt$Screen$Settings : Screen</ID>
+ <ID>UndocumentedPublicClass:AppState.kt$Screen$SitePermissionOptionsScreen : Screen</ID>
+ <ID>UndocumentedPublicClass:AppState.kt$Screen.Settings$Page</ID>
+ <ID>UndocumentedPublicClass:AutocompleteDomainFormatter.kt$AutocompleteDomainFormatter</ID>
+ <ID>UndocumentedPublicClass:AutocompleteRemoveFragment.kt$AutocompleteRemoveFragment : AutocompleteListFragmentCoroutineScope</ID>
+ <ID>UndocumentedPublicClass:BaseFragment.kt$BaseFragment : Fragment</ID>
+ <ID>UndocumentedPublicClass:BaseSettingsFragment.kt$BaseSettingsFragment : PreferenceFragmentCompatMenuProvider</ID>
+ <ID>UndocumentedPublicClass:BrowserMenuController.kt$BrowserMenuController</ID>
+ <ID>UndocumentedPublicClass:BrowserToolbarIntegration.kt$BrowserToolbarIntegration : LifecycleAwareFeature</ID>
+ <ID>UndocumentedPublicClass:Config.kt$Config</ID>
+ <ID>UndocumentedPublicClass:ConnectionDetailsPanel.kt$ConnectionDetailsPanel : BottomSheetDialog</ID>
+ <ID>UndocumentedPublicClass:ContextMenuCandidates.kt$ContextMenuCandidates</ID>
+ <ID>UndocumentedPublicClass:CookieBannerExceptionDetailsSwitch.kt$CookieBannerExceptionDetailsSwitch : ConstraintLayout</ID>
+ <ID>UndocumentedPublicClass:CookieBannerFragment.kt$CookieBannerFragment : BaseSettingsFragment</ID>
+ <ID>UndocumentedPublicClass:CookieBannerOption.kt$CookieBannerOption</ID>
+ <ID>UndocumentedPublicClass:CookieBannerOption.kt$CookieBannerOption$CookieBannerDisabled : CookieBannerOption</ID>
+ <ID>UndocumentedPublicClass:CookieBannerOption.kt$CookieBannerOption$CookieBannerRejectAll : CookieBannerOption</ID>
+ <ID>UndocumentedPublicClass:CookieBannerRejectAllPreference.kt$CookieBannerRejectAllPreference : LearnMoreSwitchPreference</ID>
+ <ID>UndocumentedPublicClass:CrashListActivity.kt$CrashListActivity : AbstractCrashListActivity</ID>
+ <ID>UndocumentedPublicClass:CrashReporterFragment.kt$CrashReporterFragment : Fragment</ID>
+ <ID>UndocumentedPublicClass:CustomTabMenu.kt$CustomTabMenu : ToolbarMenu</ID>
+ <ID>UndocumentedPublicClass:CustomTabsService.kt$CustomTabsService : AbstractCustomTabsService</ID>
+ <ID>UndocumentedPublicClass:DebugFocusApplication.kt$DebugFocusApplication : FocusApplication</ID>
+ <ID>UndocumentedPublicClass:DefaultBrowserPreference.kt$DefaultBrowserPreference : Preference</ID>
+ <ID>UndocumentedPublicClass:DefaultLanguageScreenInteractor.kt$DefaultLanguageScreenInteractor</ID>
+ <ID>UndocumentedPublicClass:DefaultSitePermissionOptionsScreenInteractor.kt$DefaultSitePermissionOptionsScreenInteractor</ID>
+ <ID>UndocumentedPublicClass:DownloadService.kt$DownloadService : AbstractFetchDownloadService</ID>
+ <ID>UndocumentedPublicClass:EngineProvider.kt$EngineProvider</ID>
+ <ID>UndocumentedPublicClass:EngineSharedPreferencesListener.kt$EngineSharedPreferencesListener$ChangeSource</ID>
+ <ID>UndocumentedPublicClass:EngineSharedPreferencesListener.kt$EngineSharedPreferencesListener$TrackerChanged</ID>
+ <ID>UndocumentedPublicClass:EraseAndOpenShortcutActivity.kt$EraseAndOpenShortcutActivity : Activity</ID>
+ <ID>UndocumentedPublicClass:EraseShortcutActivity.kt$EraseShortcutActivity : Activity</ID>
+ <ID>UndocumentedPublicClass:ExceptionsRemoveFragment.kt$ExceptionsRemoveFragment : ExceptionsListFragment</ID>
+ <ID>UndocumentedPublicClass:FenixProductDetector.kt$FenixProductDetector</ID>
+ <ID>UndocumentedPublicClass:FenixProductDetector.kt$FenixProductDetector$FenixVersion</ID>
+ <ID>UndocumentedPublicClass:FindInPageIntegration.kt$FindInPageIntegration : LifecycleAwareFeatureUserInteractionHandler</ID>
+ <ID>UndocumentedPublicClass:FirstrunCardView.kt$FirstrunCardView : CardView</ID>
+ <ID>UndocumentedPublicClass:FirstrunFragment.kt$FirstrunFragment : FragmentOnClickListener</ID>
+ <ID>UndocumentedPublicClass:FirstrunPagerAdapter.kt$FirstrunPagerAdapter : PagerAdapter</ID>
+ <ID>UndocumentedPublicClass:FocusApplication.kt$FocusApplication : LocaleAwareApplicationProviderCoroutineScope</ID>
+ <ID>UndocumentedPublicClass:FocusSnackbar.kt$FocusSnackbar : BaseTransientBottomBar</ID>
+ <ID>UndocumentedPublicClass:FocusSnackbarDelegate.kt$FocusSnackbarDelegate : SnackbarDelegate</ID>
+ <ID>UndocumentedPublicClass:FullScreenIntegration.kt$FullScreenIntegration : LifecycleAwareFeatureUserInteractionHandler</ID>
+ <ID>UndocumentedPublicClass:GeneralSettingsFragment.kt$GeneralSettingsFragment : BaseSettingsFragment</ID>
+ <ID>UndocumentedPublicClass:HardwarePermissionCheckFeature.kt$HardwarePermissionCheckFeature : DefaultLifecycleObserver</ID>
+ <ID>UndocumentedPublicClass:HomeMenuItem.kt$HomeMenuItem</ID>
+ <ID>UndocumentedPublicClass:HomeMenuItem.kt$HomeMenuItem$Help : HomeMenuItem</ID>
+ <ID>UndocumentedPublicClass:HomeMenuItem.kt$HomeMenuItem$Settings : HomeMenuItem</ID>
+ <ID>UndocumentedPublicClass:IconGenerator.kt$IconGenerator</ID>
+ <ID>UndocumentedPublicClass:InputToolbarIntegration.kt$InputToolbarIntegration : LifecycleAwareFeature</ID>
+ <ID>UndocumentedPublicClass:InstalledSearchEnginesSettingsFragment.kt$InstalledSearchEnginesSettingsFragment : BaseSettingsFragment</ID>
+ <ID>UndocumentedPublicClass:IntentProcessor.kt$IntentProcessor$Result</ID>
+ <ID>UndocumentedPublicClass:IntentProcessor.kt$IntentProcessor.Result$CustomTab : Result</ID>
+ <ID>UndocumentedPublicClass:IntentProcessor.kt$IntentProcessor.Result$None : Result</ID>
+ <ID>UndocumentedPublicClass:IntentProcessor.kt$IntentProcessor.Result$Tab : Result</ID>
+ <ID>UndocumentedPublicClass:IntentUtils.kt$IntentUtils</ID>
+ <ID>UndocumentedPublicClass:LanguageFragment.kt$LanguageFragment : BaseComposeFragment</ID>
+ <ID>UndocumentedPublicClass:LanguageMiddleware.kt$LanguageMiddleware : Middleware</ID>
+ <ID>UndocumentedPublicClass:LanguageScreenStore.kt$LanguageScreenAction$InitLanguages : LanguageScreenAction</ID>
+ <ID>UndocumentedPublicClass:LanguageScreenStore.kt$LanguageScreenAction$Select : LanguageScreenAction</ID>
+ <ID>UndocumentedPublicClass:LanguageScreenStore.kt$LanguageScreenAction$UpdateLanguages : LanguageScreenAction</ID>
+ <ID>UndocumentedPublicClass:LanguageScreenStore.kt$LanguageScreenStore : Store</ID>
+ <ID>UndocumentedPublicClass:LanguageStorage.kt$LanguageStorage</ID>
+ <ID>UndocumentedPublicClass:LearnMoreSwitchPreference.kt$LearnMoreSwitchPreference : SwitchPreferenceCompat</ID>
+ <ID>UndocumentedPublicClass:LocaleDescriptor.kt$LocaleDescriptor : Comparable</ID>
+ <ID>UndocumentedPublicClass:LocalizedContent.kt$LocalizedContent</ID>
+ <ID>UndocumentedPublicClass:LockObserver.kt$LockObserver : DefaultLifecycleObserver</ID>
+ <ID>UndocumentedPublicClass:MainActivity.kt$MainActivity : LocaleAwareAppCompatActivity</ID>
+ <ID>UndocumentedPublicClass:MainActivity.kt$MainActivity$AppOpenType</ID>
+ <ID>UndocumentedPublicClass:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference : Preference</ID>
+ <ID>UndocumentedPublicClass:ManualAddSearchEngineSettingsFragment.kt$ManualAddSearchEngineSettingsFragment : BaseSettingsFragment</ID>
+ <ID>UndocumentedPublicClass:MobileMetricsPingStorage.kt$MobileMetricsPingStorage</ID>
+ <ID>UndocumentedPublicClass:MozillaPreference.kt$MozillaPreference : Preference</ID>
+ <ID>UndocumentedPublicClass:MozillaSettingsFragment.kt$MozillaSettingsFragment : BaseSettingsFragment</ID>
+ <ID>UndocumentedPublicClass:MultiselectSearchEngineListPreference.kt$MultiselectSearchEngineListPreference : SearchEngineListPreference</ID>
+ <ID>UndocumentedPublicClass:NavigationButtonsIntegration.kt$NavigationButtonsIntegration : LifecycleAwareFeature</ID>
+ <ID>UndocumentedPublicClass:OnboardingController.kt$DefaultOnboardingController : OnboardingController</ID>
+ <ID>UndocumentedPublicClass:OnboardingController.kt$OnboardingController</ID>
+ <ID>UndocumentedPublicClass:OnboardingFirstFragment.kt$OnboardingFirstFragment : Fragment</ID>
+ <ID>UndocumentedPublicClass:OnboardingInteractor.kt$DefaultOnboardingInteractor : OnboardingInteractor</ID>
+ <ID>UndocumentedPublicClass:OnboardingInteractor.kt$OnboardingInteractor</ID>
+ <ID>UndocumentedPublicClass:OnboardingSecondFragment.kt$OnboardingSecondFragment : Fragment</ID>
+ <ID>UndocumentedPublicClass:OnboardingStep.kt$OnboardingStep</ID>
+ <ID>UndocumentedPublicClass:OnboardingStorage.kt$OnboardingStorage</ID>
+ <ID>UndocumentedPublicClass:PreferenceSwitch.kt$PreferenceSwitch : SwitchCompat</ID>
+ <ID>UndocumentedPublicClass:PreferenceToolTipCompose.kt$PreferenceToolTipCompose : Preference</ID>
+ <ID>UndocumentedPublicClass:PrivacySecuritySettingsFragment.kt$PrivacySecuritySettingsFragment : BaseSettingsFragmentOnSharedPreferenceChangeListener</ID>
+ <ID>UndocumentedPublicClass:RadioButtonPreference.kt$GroupableRadioButton</ID>
+ <ID>UndocumentedPublicClass:RadioButtonPreference.kt$RadioButtonPreference : PreferenceGroupableRadioButton</ID>
+ <ID>UndocumentedPublicClass:RadioSearchEngineListPreference.kt$RadioSearchEngineListPreference : SearchEngineListPreferenceOnCheckedChangeListener</ID>
+ <ID>UndocumentedPublicClass:RemoveSearchEnginesSettingsFragment.kt$RemoveSearchEnginesSettingsFragment : BaseSettingsFragment</ID>
+ <ID>UndocumentedPublicClass:SearchEngineListPreference.kt$SearchEngineListPreference : PreferenceCoroutineScope</ID>
+ <ID>UndocumentedPublicClass:SearchSettingsFragment.kt$SearchSettingsFragment : BaseSettingsFragmentOnSharedPreferenceChangeListener</ID>
+ <ID>UndocumentedPublicClass:SearchSuggestionsFragment.kt$SearchSuggestionsFragment : FragmentCoroutineScope</ID>
+ <ID>UndocumentedPublicClass:SearchSuggestionsPreferences.kt$SearchSuggestionsPreferences</ID>
+ <ID>UndocumentedPublicClass:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel : AndroidViewModel</ID>
+ <ID>UndocumentedPublicClass:SearchSuggestionsViewModel.kt$State</ID>
+ <ID>UndocumentedPublicClass:SearchSuggestionsViewModel.kt$State$Disabled : State</ID>
+ <ID>UndocumentedPublicClass:SearchSuggestionsViewModel.kt$State$NoSuggestionsAPI : State</ID>
+ <ID>UndocumentedPublicClass:SearchSuggestionsViewModel.kt$State$ReadyForSuggestions : State</ID>
+ <ID>UndocumentedPublicClass:SearchUtils.kt$SearchUtils</ID>
+ <ID>UndocumentedPublicClass:SearchWidgetProvider.kt$SearchWidgetProvider : AppSearchWidgetProvider</ID>
+ <ID>UndocumentedPublicClass:SearchWidgetUtils.kt$SearchWidgetUtils</ID>
+ <ID>UndocumentedPublicClass:SecretSettingsFragment.kt$SecretSettingsFragment : BaseSettingsFragmentOnSharedPreferenceChangeListener</ID>
+ <ID>UndocumentedPublicClass:SettingsFragment.kt$SettingsFragment : BaseSettingsFragment</ID>
+ <ID>UndocumentedPublicClass:SitePermission.kt$SitePermission : Parcelable</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOption.kt$AutoplayOption</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOption.kt$AutoplayOption$AllowAudioVideo : SitePermissionOption</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOption.kt$AutoplayOption$BlockAudioOnly : SitePermissionOption</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOption.kt$AutoplayOption$BlockAudioVideo : SitePermissionOption</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOption.kt$SitePermissionOption</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOption.kt$SitePermissionOption$Allowed : SitePermissionOption</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOption.kt$SitePermissionOption$AskToAllow : SitePermissionOption</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOption.kt$SitePermissionOption$Blocked : SitePermissionOption</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOptionListItem.kt$SitePermissionOptionListItem</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOptionsFragment.kt$SitePermissionOptionsFragment : BaseComposeFragment</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOptionsScreenStore.kt$SitePermissionOptionsScreenAction : Action</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOptionsScreenStore.kt$SitePermissionOptionsScreenAction$AndroidPermission : SitePermissionOptionsScreenAction</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOptionsScreenStore.kt$SitePermissionOptionsScreenAction$InitSitePermissionOptions : SitePermissionOptionsScreenAction</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOptionsScreenStore.kt$SitePermissionOptionsScreenAction$Select : SitePermissionOptionsScreenAction</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOptionsScreenStore.kt$SitePermissionOptionsScreenAction$UpdateSitePermissionOptions : SitePermissionOptionsScreenAction</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOptionsScreenStore.kt$SitePermissionOptionsScreenState : State</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOptionsScreenStore.kt$SitePermissionOptionsScreenStore : Store</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOptionsStorage.kt$SitePermissionOptionsStorage</ID>
+ <ID>UndocumentedPublicClass:SitePermissionOptionsStorageMiddleware.kt$SitePermissionOptionsStorageMiddleware : Middleware</ID>
+ <ID>UndocumentedPublicClass:SitePermissionsFragment.kt$SitePermissionsFragment : BaseSettingsFragment</ID>
+ <ID>UndocumentedPublicClass:StartupActivityLog.kt$StartupActivityLog$StartupLogActivityLifecycleCallbacks : DefaultActivityLifecycleCallbacks</ID>
+ <ID>UndocumentedPublicClass:StartupActivityLog.kt$StartupActivityLog$StartupLogAppLifecycleObserver : DefaultLifecycleObserver</ID>
+ <ID>UndocumentedPublicClass:StartupActivityLog.kt$StartupActivityLog.LogEntry$ActivityCreated : LogEntry</ID>
+ <ID>UndocumentedPublicClass:StartupActivityLog.kt$StartupActivityLog.LogEntry$ActivityStarted : LogEntry</ID>
+ <ID>UndocumentedPublicClass:StartupActivityLog.kt$StartupActivityLog.LogEntry$ActivityStopped : LogEntry</ID>
+ <ID>UndocumentedPublicClass:StartupActivityLog.kt$StartupActivityLog.LogEntry$AppStarted : LogEntry</ID>
+ <ID>UndocumentedPublicClass:StartupActivityLog.kt$StartupActivityLog.LogEntry$AppStopped : LogEntry</ID>
+ <ID>UndocumentedPublicClass:StartupPathProvider.kt$StartupPathProvider$StartupPath</ID>
+ <ID>UndocumentedPublicClass:StartupPathProvider.kt$StartupPathProvider$StartupPathLifecycleObserver : DefaultLifecycleObserver</ID>
+ <ID>UndocumentedPublicClass:StartupStateProvider.kt$StartupStateProvider$StartupState</ID>
+ <ID>UndocumentedPublicClass:StartupTypeTelemetry.kt$StartupTypeTelemetry$StartupTypeLifecycleObserver : DefaultLifecycleObserver</ID>
+ <ID>UndocumentedPublicClass:StudiesAdapter.kt$StudiesAdapter : ListAdapter</ID>
+ <ID>UndocumentedPublicClass:StudiesAdapter.kt$StudiesAdapter$StudiesDiffCallback : ItemCallback</ID>
+ <ID>UndocumentedPublicClass:StudiesFragment.kt$StudiesFragment : BaseSettingsLikeFragment</ID>
+ <ID>UndocumentedPublicClass:StudiesListItem.kt$StudiesListItem</ID>
+ <ID>UndocumentedPublicClass:StudiesListItem.kt$StudiesListItem$ActiveStudy : StudiesListItem</ID>
+ <ID>UndocumentedPublicClass:StudiesListItem.kt$StudiesListItem$Section : StudiesListItem</ID>
+ <ID>UndocumentedPublicClass:StudiesRecyclerView.kt$StudiesRecyclerView : RecyclerView</ID>
+ <ID>UndocumentedPublicClass:StudiesViewHolder.kt$StudiesViewHolder : ViewHolder</ID>
+ <ID>UndocumentedPublicClass:StudiesViewHolder.kt$StudiesViewHolder$ActiveStudiesViewHolder : StudiesViewHolder</ID>
+ <ID>UndocumentedPublicClass:StudiesViewHolder.kt$StudiesViewHolder$SectionViewHolder : StudiesViewHolder</ID>
+ <ID>UndocumentedPublicClass:StudiesViewModel.kt$StudiesViewModel : AndroidViewModel</ID>
+ <ID>UndocumentedPublicClass:SupportUtils.kt$SupportUtils</ID>
+ <ID>UndocumentedPublicClass:SupportUtils.kt$SupportUtils$SumoTopic</ID>
+ <ID>UndocumentedPublicClass:SwitchWithDescription.kt$SwitchWithDescription : ConstraintLayout</ID>
+ <ID>UndocumentedPublicClass:TabViewHolder.kt$TabViewHolder : ViewHolder</ID>
+ <ID>UndocumentedPublicClass:TabsPopup.kt$TabsPopup : PopupWindow</ID>
+ <ID>UndocumentedPublicClass:TelemetryMiddleware.kt$TelemetryMiddleware : Middleware</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu$CustomTabItem</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu$Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$AddToHomeScreen : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$Back : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$FindInPage : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$Forward : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$OpenInApp : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$OpenInBrowser : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$Reload : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$RequestDesktop : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$Stop : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$AddToHomeScreen : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$AddToShortcuts : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Back : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$FindInPage : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Forward : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$OpenInApp : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Reload : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$RemoveFromShortcuts : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$RequestDesktop : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Settings : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Share : Item</ID>
+ <ID>UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Stop : Item</ID>
+ <ID>UndocumentedPublicClass:TrackingProtectionPanel.kt$TrackingProtectionPanel : BottomSheetDialog</ID>
+ <ID>UndocumentedPublicClass:UrlInputFragment.kt$FocusCrashException : Exception</ID>
+ <ID>UndocumentedPublicClass:ViewUtils.kt$ViewUtils</ID>
+ <ID>UndocumentedPublicClass:VoiceSearchActivity.kt$VoiceSearchActivity : BaseVoiceSearchActivity</ID>
+ <ID>UndocumentedPublicFunction:AboutFragment.kt$@Composable fun ColumnScope.LearnMoreLink( learnMore: String, openLearnMore: () -&gt; Job, )</ID>
+ <ID>UndocumentedPublicFunction:AddToHomescreenDialogFragment.kt$AddToHomescreenDialogFragment.Companion$fun newInstance( url: String, title: String, blockingEnabled: Boolean, requestDesktop: Boolean, ): AddToHomescreenDialogFragment</ID>
+ <ID>UndocumentedPublicFunction:AdvancedSettingsFragment.kt$AdvancedSettingsFragment.Companion$fun newInstance(): AdvancedSettingsFragment</ID>
+ <ID>UndocumentedPublicFunction:AutocompleteDomainFormatter.kt$AutocompleteDomainFormatter$fun format(url: String): String</ID>
+ <ID>UndocumentedPublicFunction:AutocompleteListFragment.kt$AutocompleteListFragment.DomainListAdapter$fun move(from: Int, to: Int)</ID>
+ <ID>UndocumentedPublicFunction:AutocompleteListFragment.kt$AutocompleteListFragment.DomainListAdapter$fun refresh(context: Context, body: (() -&gt; Unit)? = null)</ID>
+ <ID>UndocumentedPublicFunction:AutocompleteListFragment.kt$AutocompleteListFragment.DomainListAdapter$fun selection(): List&lt;String&gt;</ID>
+ <ID>UndocumentedPublicFunction:BaseFragment.kt$BaseFragment$fun cancelAnimation()</ID>
+ <ID>UndocumentedPublicFunction:BrowserFragment.kt$BrowserFragment$fun crashReporterIsVisible(): Boolean</ID>
+ <ID>UndocumentedPublicFunction:BrowserFragment.kt$BrowserFragment$fun erase(shouldEraseAllTabs: Boolean = false)</ID>
+ <ID>UndocumentedPublicFunction:BrowserFragment.kt$BrowserFragment$fun handleTabCrash(crash: Crash)</ID>
+ <ID>UndocumentedPublicFunction:BrowserFragment.kt$BrowserFragment$fun showTrackingProtectionPanel()</ID>
+ <ID>UndocumentedPublicFunction:BrowserFragment.kt$BrowserFragment.Companion$fun createForTab(tabId: String): BrowserFragment</ID>
+ <ID>UndocumentedPublicFunction:BrowserMenuController.kt$BrowserMenuController$@Suppress("ComplexMethod") fun handleMenuInteraction(item: ToolbarMenu.Item)</ID>
+ <ID>UndocumentedPublicFunction:BrowsersCache.kt$BrowsersCache$@Synchronized fun all(context: Context): Browsers</ID>
+ <ID>UndocumentedPublicFunction:ClientWrapper.kt$ClientWrapper$@Deprecated("Non-private Client usage should be prevented") fun unwrap(): Client</ID>
+ <ID>UndocumentedPublicFunction:CookiesPreference.kt$CookiesPreference$fun updateSummary()</ID>
+ <ID>UndocumentedPublicFunction:CrashReporterFragment.kt$CrashReporterFragment.Companion$fun create()</ID>
+ <ID>UndocumentedPublicFunction:DefaultBrowserPreference.kt$DefaultBrowserPreference$fun update()</ID>
+ <ID>UndocumentedPublicFunction:DefaultLanguageScreenInteractor.kt$DefaultLanguageScreenInteractor$fun handleLanguageSelected(language: Language)</ID>
+ <ID>UndocumentedPublicFunction:DefaultSitePermissionOptionsScreenInteractor.kt$DefaultSitePermissionOptionsScreenInteractor$fun handleSitePermissionOptionSelected(sitePermissionOption: SitePermissionOption)</ID>
+ <ID>UndocumentedPublicFunction:EngineProvider.kt$EngineProvider$fun createClient(context: Context): Client</ID>
+ <ID>UndocumentedPublicFunction:EngineProvider.kt$EngineProvider$fun createCookieBannerStorage(context: Context): GeckoCookieBannersStorage</ID>
+ <ID>UndocumentedPublicFunction:EngineProvider.kt$EngineProvider$fun createEngine(context: Context, defaultSettings: DefaultSettings): Engine</ID>
+ <ID>UndocumentedPublicFunction:ExceptionsListFragment.kt$ExceptionsListFragment.DomainListAdapter$fun move(from: Int, to: Int)</ID>
+ <ID>UndocumentedPublicFunction:ExceptionsListFragment.kt$ExceptionsListFragment.DomainListAdapter$fun refresh(context: Context, body: (() -&gt; Unit)? = null)</ID>
+ <ID>UndocumentedPublicFunction:ExceptionsListFragment.kt$ExceptionsListFragment.DomainListAdapter$fun selection(): List&lt;TrackingProtectionException&gt;</ID>
+ <ID>UndocumentedPublicFunction:FactsProcessor.kt$FactsProcessor$fun initialize()</ID>
+ <ID>UndocumentedPublicFunction:FenixProductDetector.kt$FenixProductDetector$fun getInstalledFenixVersions(context: Context): List&lt;String&gt;</ID>
+ <ID>UndocumentedPublicFunction:FenixProductDetector.kt$FenixProductDetector$fun isFenixDefaultBrowser(defaultBrowser: ActivityInfo?): Boolean</ID>
+ <ID>UndocumentedPublicFunction:FindInPageIntegration.kt$FindInPageIntegration$fun hide()</ID>
+ <ID>UndocumentedPublicFunction:FindInPageIntegration.kt$FindInPageIntegration$fun show(sessionState: SessionState)</ID>
+ <ID>UndocumentedPublicFunction:FirstrunFragment.kt$FirstrunFragment.Companion$fun create(): FirstrunFragment</ID>
+ <ID>UndocumentedPublicFunction:FirstrunPagerAdapter.kt$FirstrunPagerAdapter$fun getPageAccessibilityDescription(position: Int): String</ID>
+ <ID>UndocumentedPublicFunction:FocusApplication.kt$FocusApplication$open fun updateLeakCanaryState(isEnabled: Boolean)</ID>
+ <ID>UndocumentedPublicFunction:FocusDialog.kt$@Composable fun FocusDialogSample()</ID>
+ <ID>UndocumentedPublicFunction:FocusDialog.kt$@Preview( name = "dark theme", showBackground = true, backgroundColor = 0xFF393473, uiMode = Configuration.UI_MODE_NIGHT_MASK, ) @Composable fun DialogTitlePreviewDark()</ID>
+ <ID>UndocumentedPublicFunction:FocusDialog.kt$@Preview( name = "light theme", showBackground = true, backgroundColor = 0xFFFBFBFE, uiMode = Configuration.UI_MODE_NIGHT_NO, ) @Composable fun DialogTitlePreviewLight()</ID>
+ <ID>UndocumentedPublicFunction:FocusSnackbar.kt$FocusSnackbar$fun setText(text: String)</ID>
+ <ID>UndocumentedPublicFunction:FocusTheme.kt$fun phoneDimensions()</ID>
+ <ID>UndocumentedPublicFunction:FocusTheme.kt$fun tabletDimensions()</ID>
+ <ID>UndocumentedPublicFunction:HomeMenu.kt$HomeMenu$fun getMenuBuilder(): BrowserMenuBuilder</ID>
+ <ID>UndocumentedPublicFunction:IconGenerator.kt$IconGenerator.Companion$@JvmStatic fun generateLauncherIconPreOreo(context: Context, character: Char): Bitmap</ID>
+ <ID>UndocumentedPublicFunction:InstallFirefoxActivity.kt$InstallFirefoxActivity.Companion$fun open(context: Context)</ID>
+ <ID>UndocumentedPublicFunction:InstallFirefoxActivity.kt$InstallFirefoxActivity.Companion$fun resolveAppStore(context: Context): ActivityInfo?</ID>
+ <ID>UndocumentedPublicFunction:InstalledSearchEnginesSettingsFragment.kt$InstalledSearchEnginesSettingsFragment.Companion$fun newInstance()</ID>
+ <ID>UndocumentedPublicFunction:LearnMoreSwitchPreference.kt$LearnMoreSwitchPreference$abstract fun getLearnMoreUrl(): String</ID>
+ <ID>UndocumentedPublicFunction:LearnMoreSwitchPreference.kt$LearnMoreSwitchPreference$open fun getDescription(): String?</ID>
+ <ID>UndocumentedPublicFunction:LocaleDescriptor.kt$LocaleDescriptor$fun getNativeName(): String?</ID>
+ <ID>UndocumentedPublicFunction:LocaleDescriptor.kt$LocaleDescriptor$fun getTag(): String</ID>
+ <ID>UndocumentedPublicFunction:LocaleFragmentCompose.kt$@Composable fun LanguageNameAndTagItem( language: Language, isSelected: Boolean, onClick: (String) -&gt; Unit, )</ID>
+ <ID>UndocumentedPublicFunction:LocalizedContent.kt$LocalizedContent$fun loadGPL(context: Context): String</ID>
+ <ID>UndocumentedPublicFunction:LocalizedContent.kt$LocalizedContent$fun loadLicenses(context: Context): String</ID>
+ <ID>UndocumentedPublicFunction:MainActivity.kt$MainActivity$fun customizeStatusBar(backgroundColorId: Int? = null)</ID>
+ <ID>UndocumentedPublicFunction:MainActivity.kt$MainActivity$fun getToolbar(): ActionBar</ID>
+ <ID>UndocumentedPublicFunction:MainActivity.kt$MainActivity$fun hideStatusBarBackground()</ID>
+ <ID>UndocumentedPublicFunction:MainActivityNavigation.kt$MainActivityNavigation$@Suppress("ComplexMethod") fun settings(page: Screen.Settings.Page)</ID>
+ <ID>UndocumentedPublicFunction:MainActivityNavigation.kt$MainActivityNavigation$fun showOnBoardingSecondScreen()</ID>
+ <ID>UndocumentedPublicFunction:MainActivityNavigation.kt$MainActivityNavigation$fun sitePermissionOptionsFragment(sitePermission: SitePermission)</ID>
+ <ID>UndocumentedPublicFunction:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference$fun setProgressViewShown(isShown: Boolean)</ID>
+ <ID>UndocumentedPublicFunction:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference$fun setSearchQueryErrorText(err: String)</ID>
+ <ID>UndocumentedPublicFunction:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference$fun validateEngineNameAndShowError(engineName: String, existingEngines: List&lt;SearchEngine&gt;): Boolean</ID>
+ <ID>UndocumentedPublicFunction:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference$fun validateSearchQueryAndShowError(searchQuery: String): Boolean</ID>
+ <ID>UndocumentedPublicFunction:ManualAddSearchEngineSettingsFragment.kt$ManualAddSearchEngineSettingsFragment.Companion$@WorkerThread @JvmStatic fun isValidSearchQueryURL(client: Client, query: String): Boolean</ID>
+ <ID>UndocumentedPublicFunction:MobileMetricsPingStorage.kt$MobileMetricsPingStorage$fun clearStorage()</ID>
+ <ID>UndocumentedPublicFunction:MobileMetricsPingStorage.kt$MobileMetricsPingStorage$fun load(): JSONObject?</ID>
+ <ID>UndocumentedPublicFunction:MobileMetricsPingStorage.kt$MobileMetricsPingStorage$fun save(json: JSONObject)</ID>
+ <ID>UndocumentedPublicFunction:MobileMetricsPingStorage.kt$MobileMetricsPingStorage$fun shouldStoreMetrics(): Boolean</ID>
+ <ID>UndocumentedPublicFunction:MozillaSettingsFragment.kt$MozillaSettingsFragment.Companion$fun newInstance(): MozillaSettingsFragment</ID>
+ <ID>UndocumentedPublicFunction:MultiselectSearchEngineListPreference.kt$MultiselectSearchEngineListPreference$fun atLeastOneEngineChecked(): Boolean</ID>
+ <ID>UndocumentedPublicFunction:NimbusSetup.kt$fun getNimbusAppName(): String</ID>
+ <ID>UndocumentedPublicFunction:OnboardingController.kt$OnboardingController$fun handleActivityResultImplementation(activityResult: ActivityResult)</ID>
+ <ID>UndocumentedPublicFunction:OnboardingController.kt$OnboardingController$fun handleFinishOnBoarding()</ID>
+ <ID>UndocumentedPublicFunction:OnboardingController.kt$OnboardingController$fun handleGetStartedButtonClicked()</ID>
+ <ID>UndocumentedPublicFunction:OnboardingController.kt$OnboardingController$fun handleMakeFocusDefaultBrowserButtonClicked(activityResultLauncher: ActivityResultLauncher&lt;Intent&gt;)</ID>
+ <ID>UndocumentedPublicFunction:OnboardingInteractor.kt$OnboardingInteractor$fun onActivityResultImplementation(activityResult: ActivityResult)</ID>
+ <ID>UndocumentedPublicFunction:OnboardingInteractor.kt$OnboardingInteractor$fun onFinishOnBoarding()</ID>
+ <ID>UndocumentedPublicFunction:OnboardingInteractor.kt$OnboardingInteractor$fun onGetStartedButtonClicked()</ID>
+ <ID>UndocumentedPublicFunction:OnboardingInteractor.kt$OnboardingInteractor$fun onMakeFocusDefaultBrowserButtonClicked(activityResultLauncher: ActivityResultLauncher&lt;Intent&gt;)</ID>
+ <ID>UndocumentedPublicFunction:Performance.kt$Performance$fun processIntentIfPerformanceTest(bundle: Bundle?, context: Context)</ID>
+ <ID>UndocumentedPublicFunction:PreferenceSwitch.kt$PreferenceSwitch$fun onClickListener(listener: () -&gt; Unit)</ID>
+ <ID>UndocumentedPublicFunction:PrivacySecuritySettingsFragment.kt$PrivacySecuritySettingsFragment.Companion$fun newInstance(): PrivacySecuritySettingsFragment</ID>
+ <ID>UndocumentedPublicFunction:ProfilerMarkerFactProcessor.kt$ProfilerMarkerFactProcessor.Companion$fun create(profilerProvider: () -&gt; Profiler?)</ID>
+ <ID>UndocumentedPublicFunction:PromoteSearchWidgetDialogCompose.kt$@Suppress("LongMethod") @Composable fun PromoteSearchWidgetDialogCompose( onAddSearchWidgetButtonClick: () -&gt; Unit, onDismiss: () -&gt; Unit, )</ID>
+ <ID>UndocumentedPublicFunction:RadioButtonPreference.kt$GroupableRadioButton$fun addToRadioGroup(radioButton: GroupableRadioButton)</ID>
+ <ID>UndocumentedPublicFunction:RadioButtonPreference.kt$GroupableRadioButton$fun updateRadioValue(isChecked: Boolean)</ID>
+ <ID>UndocumentedPublicFunction:RadioButtonPreference.kt$RadioButtonPreference$fun onClickListener(listener: (() -&gt; Unit))</ID>
+ <ID>UndocumentedPublicFunction:RadioButtonPreference.kt$fun Iterable&lt;GroupableRadioButton&gt;.uncheckAll()</ID>
+ <ID>UndocumentedPublicFunction:RemoveSearchEnginesSettingsFragment.kt$RemoveSearchEnginesSettingsFragment.Companion$fun newInstance()</ID>
+ <ID>UndocumentedPublicFunction:SearchEngineListPreference.kt$SearchEngineListPreference$fun refetchSearchEngines()</ID>
+ <ID>UndocumentedPublicFunction:SearchOverlay.kt$@OptIn(DelicateCoroutinesApi::class) @Composable fun SearchOverlay( viewModel: SearchSuggestionsViewModel, defaultSearchEngineName: String, onListScrolled: () -&gt; Unit, )</ID>
+ <ID>UndocumentedPublicFunction:SearchSettingsFragment.kt$SearchSettingsFragment.Companion$fun newInstance(): SearchSettingsFragment</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsFragment.kt$SearchSuggestionsFragment.Companion$fun create()</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsPreferences.kt$SearchSuggestionsPreferences$fun disableSearchSuggestions()</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsPreferences.kt$SearchSuggestionsPreferences$fun dismissNoSuggestionsMessage()</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsPreferences.kt$SearchSuggestionsPreferences$fun enableSearchSuggestions()</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsPreferences.kt$SearchSuggestionsPreferences$fun hasUserToggledSearchSuggestions(): Boolean</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsPreferences.kt$SearchSuggestionsPreferences$fun searchSuggestionsEnabled(): Boolean</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsPreferences.kt$SearchSuggestionsPreferences$fun userHasDismissedNoSuggestionsMessage(): Boolean</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun clearAutocompleteSuggestion()</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun clearSearchSuggestion()</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun disableSearchSuggestions()</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun dismissNoSuggestionsMessage()</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun enableSearchSuggestions()</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun refresh()</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun selectSearchSuggestion( suggestion: String, defaultSearchEngineName: String, alwaysSearch: Boolean = false, )</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun setAutocompleteSuggestion(text: String)</ID>
+ <ID>UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun setSearchQuery(query: String)</ID>
+ <ID>UndocumentedPublicFunction:SearchUtils.kt$SearchUtils$fun createSearchUrl(context: Context?, text: String): String</ID>
+ <ID>UndocumentedPublicFunction:SecretSettingsUnlocker.kt$SecretSettingsUnlocker$fun increment()</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun addSearchWidgetInstalled(count: Int)</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun createTrackingProtectionPolicy( shouldBlockCookiesValue: String = shouldBlockCookiesValue(), ): EngineSession.TrackingProtectionPolicy</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun getAppLaunchCount()</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun getClearBrowsingSessions()</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun getCurrentCookieBannerOptionFromSharePref(): CookieBannerOption</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun getHttpsOnlyMode(): Engine.HttpsOnlyMode</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun getTotalBlockedTrackersCount()</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun hasAdvertisingBlocked()</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun hasAnalyticsBlocked()</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun hasRequestedDesktop()</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun hasSocialBlocked()</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun saveCurrentCookieBannerOptionInSharePref( cookieBannerOption: CookieBannerOption, )</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun setDefaultSearchEngineByName(name: String)</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun setupSafeBrowsing(engine: Engine, shouldUseSafeBrowsing: Boolean = shouldUseSafeBrowsing())</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun shouldAutocompleteFromCustomDomainList()</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun shouldAutocompleteFromShippedDomainList()</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun shouldBlockAdTrackers()</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun shouldBlockAnalyticTrackers()</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun shouldBlockCookiesValue(): String</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun shouldBlockJavaScript(): Boolean</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun shouldBlockOtherTrackers()</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun shouldBlockSocialTrackers()</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun shouldBlockWebFonts(): Boolean</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun shouldEnableRemoteDebugging(): Boolean</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun shouldShowSearchSuggestions(): Boolean</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun shouldUseBiometrics(): Boolean</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun shouldUseSecureMode(): Boolean</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun userHasDismissedNoSuggestionsMessage(): Boolean</ID>
+ <ID>UndocumentedPublicFunction:Settings.kt$Settings$fun userHasToggledSearchSuggestions(): Boolean</ID>
+ <ID>UndocumentedPublicFunction:SettingsFragment.kt$SettingsFragment.Companion$fun newInstance(): SettingsFragment</ID>
+ <ID>UndocumentedPublicFunction:SitePermissionOptionsFragment.kt$SitePermissionOptionsFragment.Companion$fun addSitePermission(sitePermission: SitePermission): SitePermissionOptionsFragment</ID>
+ <ID>UndocumentedPublicFunction:SitePermissionOptionsStorage.kt$SitePermissionOptionsStorage$fun getSitePermissionLabel(sitePermission: SitePermission): String</ID>
+ <ID>UndocumentedPublicFunction:SitePermissionOptionsStorage.kt$SitePermissionOptionsStorage$fun getSitePermissionsSettingsRules()</ID>
+ <ID>UndocumentedPublicFunction:SitePermissionOptionsStorage.kt$SitePermissionOptionsStorage$fun isAndroidPermissionGranted(sitePermission: SitePermission): Boolean</ID>
+ <ID>UndocumentedPublicFunction:SitePermissionOptionsStorage.kt$SitePermissionOptionsStorage$fun isSitePermissionNotBlocked(permissionsList: Array&lt;String&gt;): Boolean</ID>
+ <ID>UndocumentedPublicFunction:StartupActivityLog.kt$StartupActivityLog$@VisibleForTesting(otherwise = NONE) fun getObserversForTesting()</ID>
+ <ID>UndocumentedPublicFunction:StartupActivityLog.kt$StartupActivityLog$@VisibleForTesting(otherwise = PRIVATE) fun logEntries(loggerArg: Logger = logger, logLevel: Log.Priority = Log.logLevel)</ID>
+ <ID>UndocumentedPublicFunction:StartupActivityLog.kt$StartupActivityLog$fun registerInAppOnCreate( application: Application, processLifecycleOwner: LifecycleOwner = ProcessLifecycleOwner.get(), )</ID>
+ <ID>UndocumentedPublicFunction:StartupPathProvider.kt$StartupPathProvider$@VisibleForTesting(otherwise = NONE) fun getTestCallbacks()</ID>
+ <ID>UndocumentedPublicFunction:StartupPathProvider.kt$StartupPathProvider$fun attachOnActivityOnCreate(lifecycle: Lifecycle, intent: Intent?)</ID>
+ <ID>UndocumentedPublicFunction:StartupTypeTelemetry.kt$StartupTypeTelemetry$@VisibleForTesting(otherwise = NONE) fun getTestCallbacks()</ID>
+ <ID>UndocumentedPublicFunction:StartupTypeTelemetry.kt$StartupTypeTelemetry$fun attachOnMainActivityOnCreate(lifecycle: Lifecycle)</ID>
+ <ID>UndocumentedPublicFunction:StoreLink.kt$StoreLink$fun start()</ID>
+ <ID>UndocumentedPublicFunction:StudiesViewHolder.kt$StudiesViewHolder.ActiveStudiesViewHolder$fun bindStudy( activeStudy: StudiesListItem.ActiveStudy, removeStudyListener: (StudiesListItem.ActiveStudy) -&gt; Unit, )</ID>
+ <ID>UndocumentedPublicFunction:StudiesViewHolder.kt$StudiesViewHolder.SectionViewHolder$fun bindSection(section: StudiesListItem.Section)</ID>
+ <ID>UndocumentedPublicFunction:StudiesViewModel.kt$StudiesViewModel$fun removeStudy(study: StudiesListItem.ActiveStudy)</ID>
+ <ID>UndocumentedPublicFunction:StudiesViewModel.kt$StudiesViewModel$fun setStudiesState(state: Boolean)</ID>
+ <ID>UndocumentedPublicFunction:SupportUtils.kt$SupportUtils$fun getGenericSumoURLForTopic(topic: SumoTopic): String</ID>
+ <ID>UndocumentedPublicFunction:SupportUtils.kt$SupportUtils$fun getSafeBrowsingURL(): String</ID>
+ <ID>UndocumentedPublicFunction:SupportUtils.kt$SupportUtils$fun openDefaultBrowserSumoPage(context: Context)</ID>
+ <ID>UndocumentedPublicFunction:SupportUtils.kt$SupportUtils$fun openUrlInCustomTab(activity: FragmentActivity, destinationUrl: String)</ID>
+ <ID>UndocumentedPublicFunction:TabViewHolder.kt$TabViewHolder$fun bind( tab: TabSessionState, isCurrentSession: Boolean, selectSession: (TabSessionState) -&gt; Unit, closeSession: (TabSessionState) -&gt; Unit, )</ID>
+ <ID>UndocumentedPublicFunction:Theme.kt$fun Resources.Theme.resolveAttribute(attribute: Int): Int</ID>
+ <ID>UndocumentedPublicFunction:TopSitesOverlay.kt$@OptIn(DelicateCoroutinesApi::class) @Composable fun TopSitesOverlay(modifier: Modifier = Modifier)</ID>
+ <ID>UndocumentedPublicFunction:TopSitesOverlay.kt$@OptIn(DelicateCoroutinesApi::class) fun removeTopSite(item: TopSite, components: Components)</ID>
+ <ID>UndocumentedPublicFunction:TopSitesOverlay.kt$@OptIn(DelicateCoroutinesApi::class) fun renameTopSite(selectedTopSite: TopSite, newTitle: String, components: Components)</ID>
+ <ID>UndocumentedPublicFunction:TransitionDrawableGroup.kt$TransitionDrawableGroup$fun resetTransition()</ID>
+ <ID>UndocumentedPublicFunction:TransitionDrawableGroup.kt$TransitionDrawableGroup$fun startTransition(durationMillis: Int)</ID>
+ <ID>UndocumentedPublicFunction:UrlInputFragment.kt$UrlInputFragment$fun onBackPressed(): Boolean</ID>
+ <ID>UndocumentedPublicFunction:UrlInputFragment.kt$UrlInputFragment.Companion$@JvmStatic fun createWithTab( tabId: String, ): UrlInputFragment</ID>
+ <ID>UndocumentedPublicFunction:UrlInputFragment.kt$UrlInputFragment.Companion$@JvmStatic fun createWithoutSession(): UrlInputFragment</ID>
+ <ID>UndocumentedPublicFunction:ViewUtils.kt$ViewUtils$fun hideKeyboard(view: View?)</ID>
+ <ID>UndocumentedPublicFunction:ViewUtils.kt$ViewUtils$fun showKeyboard(view: View?)</ID>
+ <ID>UndocumentedPublicFunction:VisibilityLifeCycleCallback.kt$VisibilityLifeCycleCallback.Companion$fun isInBackground(context: Context): Boolean</ID>
+ <ID>UnusedPrivateMember:TelemetryMiddleware.kt$TelemetryMiddleware$@Suppress("ComplexMethod") private fun generateOptions(customTabConfig: CustomTabConfig): List&lt;String&gt;</ID>
+ <ID>UseRequire:FactsProcessor.kt$throw IllegalArgumentException("Fact is not a context menu fact")</ID>
+ <ID>UtilityClassWithPublicConstructor:AppReviewUtils.kt$AppReviewUtils</ID>
+ <ID>UtilityClassWithPublicConstructor:IconGenerator.kt$IconGenerator</ID>
+ </CurrentIssues>
+</SmellBaseline>
diff --git a/mobile/android/focus-android/quality/detekt.yml b/mobile/android/focus-android/quality/detekt.yml
new file mode 100644
index 0000000000..bf5a0b7da2
--- /dev/null
+++ b/mobile/android/focus-android/quality/detekt.yml
@@ -0,0 +1,789 @@
+# Please refer to https://github.com/mozilla-mobile/firefox-android/blob/main/android-components/config/detekt.yml
+# for the source of truth for our detekt configuration.
+
+build:
+ maxIssues: 0
+ excludeCorrectable: false
+ weights:
+ # complexity: 2
+ # LongParameterList: 1
+ # style: 1
+ # comments: 1
+
+config:
+ validation: true
+ warningsAsErrors: false
+ checkExhaustiveness: false
+ # when writing own rules with new properties, exclude the property path e.g.: 'my_rule_set,.*>.*>[my_property]'
+ excludes: ''
+
+processors:
+ active: true
+ exclude:
+ - 'DetektProgressListener'
+ # - 'KtFileCountProcessor'
+ # - 'PackageCountProcessor'
+ # - 'ClassCountProcessor'
+ # - 'FunctionCountProcessor'
+ # - 'PropertyCountProcessor'
+ # - 'ProjectComplexityProcessor'
+ # - 'ProjectCognitiveComplexityProcessor'
+ # - 'ProjectLLOCProcessor'
+ # - 'ProjectCLOCProcessor'
+ # - 'ProjectLOCProcessor'
+ # - 'ProjectSLOCProcessor'
+ # - 'LicenseHeaderLoaderExtension'
+
+console-reports:
+ active: true
+ exclude:
+ # - 'ProjectStatisticsReport'
+ # - 'ComplexityReport'
+ # - 'NotificationReport'
+ # - 'FindingsReport'
+ # - 'FileBasedFindingsReport'
+ # - 'LiteFindingsReport'
+
+output-reports:
+ active: true
+ exclude:
+ # - 'TxtOutputReport'
+ # - 'XmlOutputReport'
+ # - 'HtmlOutputReport'
+ # - 'MdOutputReport'
+ # - 'SarifOutputReport'
+
+comments:
+ active: true
+ AbsentOrWrongFileLicense:
+ active: true # Enabled in https://bugzilla.mozilla.org/show_bug.cgi?id=1795140
+ licenseTemplateFile: 'license.template'
+ licenseTemplateIsRegex: false
+ CommentOverPrivateFunction:
+ active: false
+ CommentOverPrivateProperty:
+ active: false
+ DeprecatedBlockTag:
+ active: false
+ EndOfSentenceFormat:
+ active: false
+ endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)'
+ KDocReferencesNonPublicProperty:
+ active: false
+ excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
+ OutdatedDocumentation:
+ active: true # Enabled in https://bugzilla.mozilla.org/show_bug.cgi?id=1848527
+ matchTypeParameters: false # (Default: true) Disabled in https://bugzilla.mozilla.org/show_bug.cgi?id=1848527
+ matchDeclarationsOrder: true
+ allowParamOnConstructorProperties: false
+ UndocumentedPublicClass:
+ active: true # Enabled in https://github.com/mozilla-mobile/android-components/issues/76
+ excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
+ searchInNestedClass: true
+ searchInInnerClass: true
+ searchInInnerObject: true
+ searchInInnerInterface: true
+ searchInProtectedClass: false
+ UndocumentedPublicFunction:
+ active: true # Enabled in https://github.com/mozilla-mobile/android-components/issues/76
+ excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
+ searchProtectedFunction: false
+ UndocumentedPublicProperty:
+ active: false
+ excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
+ searchProtectedProperty: false
+
+complexity:
+ active: true
+ CognitiveComplexMethod:
+ active: false
+ threshold: 15
+ ComplexCondition:
+ active: true
+ threshold: 4
+ ComplexInterface:
+ active: false
+ threshold: 10
+ includeStaticDeclarations: false
+ includePrivateDeclarations: false
+ ignoreOverloaded: false
+ CyclomaticComplexMethod:
+ active: true
+ threshold: 18 # (Default: 15) Increased in https://github.com/mozilla-mobile/android-components/pull/10328
+ ignoreSingleWhenExpression: true # Enabled in https://github.com/mozilla-mobile/android-components/pull/3271
+ ignoreSimpleWhenEntries: false
+ ignoreNestingFunctions: false
+ nestingFunctions:
+ - 'also'
+ - 'apply'
+ - 'forEach'
+ - 'isNotNull'
+ - 'ifNull'
+ - 'let'
+ - 'run'
+ - 'use'
+ - 'with'
+ LabeledExpression:
+ active: false
+ ignoredLabels: []
+ LargeClass:
+ active: true
+ threshold: 600
+ LongMethod:
+ active: true
+ threshold: 75 # (Default: 60) Increased in https://github.com/mozilla-mobile/android-components/issues/6350
+ LongParameterList:
+ active: true
+ functionThreshold: 8 # (Default: 6) Increased in https://bugzilla.mozilla.org/show_bug.cgi?id=1872996
+ constructorThreshold: 7
+ ignoreDefaultParameters: true # Enabled in https://github.com/mozilla-mobile/android-components/issues/10835
+ ignoreDataClasses: true
+ ignoreAnnotatedParameter: []
+ MethodOverloading:
+ active: false
+ threshold: 6
+ NamedArguments:
+ active: false
+ threshold: 3
+ ignoreArgumentsMatchingNames: false
+ NestedBlockDepth:
+ active: true
+ threshold: 4
+ NestedScopeFunctions:
+ active: false
+ threshold: 1
+ functions:
+ - 'kotlin.apply'
+ - 'kotlin.run'
+ - 'kotlin.with'
+ - 'kotlin.let'
+ - 'kotlin.also'
+ ReplaceSafeCallChainWithRun:
+ active: false
+ StringLiteralDuplication:
+ active: false
+ excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
+ threshold: 3
+ ignoreAnnotation: true
+ excludeStringsWithLessThan5Characters: true
+ ignoreStringsRegex: '$^'
+ TooManyFunctions:
+ active: true
+ excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
+ thresholdInFiles: 26 # (Default: 11) Increased in https://github.com/mozilla-mobile/android-components/pull/9927
+ thresholdInClasses: 26 # (Default: 11) Increased in https://github.com/mozilla-mobile/android-components/pull/9927
+ thresholdInInterfaces: 26 # (Default: 11) Increased in https://github.com/mozilla-mobile/android-components/pull/9927
+ thresholdInObjects: 26 # (Default: 11) Increased in https://github.com/mozilla-mobile/android-components/pull/9927
+ thresholdInEnums: 11
+ ignoreDeprecated: false
+ ignorePrivate: false
+ ignoreOverridden: false
+
+coroutines:
+ active: true
+ GlobalCoroutineUsage:
+ active: false
+ InjectDispatcher:
+ active: false # (Default: true)
+ dispatcherNames:
+ - 'IO'
+ - 'Default'
+ - 'Unconfined'
+ RedundantSuspendModifier:
+ active: false # (Default: true)
+ SleepInsteadOfDelay:
+ active: false # (Default: true)
+ SuspendFunSwallowedCancellation:
+ active: false
+ SuspendFunWithCoroutineScopeReceiver:
+ active: false
+ SuspendFunWithFlowReturnType:
+ active: false # (Default: true)
+
+empty-blocks:
+ active: true
+ EmptyCatchBlock:
+ active: true
+ allowedExceptionNameRegex: '_|(ignore|expected).*'
+ EmptyClassBlock:
+ active: true
+ EmptyDefaultConstructor:
+ active: true
+ EmptyDoWhileBlock:
+ active: true
+ EmptyElseBlock:
+ active: true
+ EmptyFinallyBlock:
+ active: true
+ EmptyForBlock:
+ active: true
+ EmptyFunctionBlock:
+ active: true
+ ignoreOverridden: false
+ EmptyIfBlock:
+ active: true
+ EmptyInitBlock:
+ active: true
+ EmptyKtFile:
+ active: true
+ EmptySecondaryConstructor:
+ active: true
+ EmptyTryBlock:
+ active: true
+ EmptyWhenBlock:
+ active: true
+ EmptyWhileBlock:
+ active: true
+
+exceptions:
+ active: true
+ ExceptionRaisedInUnexpectedLocation:
+ active: false # (Default: true)
+ methodNames:
+ - 'equals'
+ - 'finalize'
+ - 'hashCode'
+ - 'toString'
+ InstanceOfCheckForException:
+ active: false # (Default: true)
+ excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
+ NotImplementedDeclaration:
+ active: false
+ ObjectExtendsThrowable:
+ active: false
+ PrintStackTrace:
+ active: true
+ RethrowCaughtException:
+ active: false # (Default: true)
+ ReturnFromFinally:
+ active: true
+ ignoreLabeled: false
+ SwallowedException:
+ active: false # (Default: true)
+ ignoredExceptionTypes:
+ - 'InterruptedException'
+ - 'MalformedURLException'
+ - 'NumberFormatException'
+ - 'ParseException'
+ allowedExceptionNameRegex: '_|(ignore|expected).*'
+ ThrowingExceptionFromFinally:
+ active: true
+ ThrowingExceptionInMain:
+ active: false
+ ThrowingExceptionsWithoutMessageOrCause:
+ active: false # (Default: true)
+ excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
+ exceptions:
+ - 'ArrayIndexOutOfBoundsException'
+ - 'Exception'
+ - 'IllegalArgumentException'
+ - 'IllegalMonitorStateException'
+ - 'IllegalStateException'
+ - 'IndexOutOfBoundsException'
+ - 'NullPointerException'
+ - 'RuntimeException'
+ - 'Throwable'
+ ThrowingNewInstanceOfSameException:
+ active: true
+ TooGenericExceptionCaught:
+ active: true
+ excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
+ exceptionNames:
+ - 'ArrayIndexOutOfBoundsException'
+ - 'Error'
+ - 'Exception'
+ - 'IllegalMonitorStateException'
+ - 'IndexOutOfBoundsException'
+ - 'NullPointerException'
+ - 'RuntimeException'
+ - 'Throwable'
+ allowedExceptionNameRegex: '_|(ignore|expected).*'
+ TooGenericExceptionThrown:
+ active: true
+ exceptionNames:
+ - 'Error'
+ - 'Exception'
+ - 'RuntimeException'
+ - 'Throwable'
+
+naming:
+ active: true
+ BooleanPropertyNaming:
+ active: false
+ allowedPattern: '^(is|has|are)'
+ ClassNaming:
+ active: true
+ classPattern: '[A-Z][a-zA-Z0-9]*'
+ ConstructorParameterNaming:
+ active: true
+ parameterPattern: '[a-z][A-Za-z0-9]*'
+ privateParameterPattern: '[a-z][A-Za-z0-9]*'
+ excludeClassPattern: '$^'
+ EnumNaming:
+ active: true
+ enumEntryPattern: '[A-Z][_a-zA-Z0-9]*'
+ ForbiddenClassName:
+ active: false
+ forbiddenName: []
+ FunctionMaxLength:
+ active: false
+ maximumFunctionNameLength: 30
+ FunctionMinLength:
+ active: false
+ minimumFunctionNameLength: 3
+ FunctionNaming:
+ active: true
+ excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
+ functionPattern: '[a-z][a-zA-Z0-9]*'
+ excludeClassPattern: '$^'
+ ignoreAnnotated: ['Composable'] # Configuration for Compose https://github.com/mozilla-mobile/android-components/issues/11866
+ FunctionParameterNaming:
+ active: true
+ parameterPattern: '[a-z][A-Za-z0-9]*'
+ excludeClassPattern: '$^'
+ InvalidPackageDeclaration:
+ active: false # (Default: true)
+ rootPackage: ''
+ requireRootInDeclaration: false
+ LambdaParameterNaming:
+ active: false
+ parameterPattern: '[a-z][A-Za-z0-9]*|_'
+ MatchingDeclarationName:
+ active: true
+ mustBeFirst: true
+ MemberNameEqualsClassName:
+ active: false # (Default: true)
+ ignoreOverridden: true
+ NoNameShadowing:
+ active: false # (Default: true)
+ NonBooleanPropertyPrefixedWithIs:
+ active: false
+ ObjectPropertyNaming:
+ active: true
+ constantPattern: '[A-Za-z][_A-Za-z0-9]*'
+ propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
+ privatePropertyPattern: '(_)?[A-Za-z][_A-Za-z0-9]*'
+ PackageNaming:
+ active: true
+ packagePattern: '[a-z]+(\.[a-z][A-Za-z0-9]*)*'
+ TopLevelPropertyNaming:
+ active: true
+ constantPattern: '[A-Z][_A-Z0-9]*'
+ propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
+ privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*'
+ VariableMaxLength:
+ active: false
+ maximumVariableNameLength: 64
+ VariableMinLength:
+ active: false
+ minimumVariableNameLength: 1
+ VariableNaming:
+ active: true
+ variablePattern: '[a-z][A-Za-z0-9]*'
+ privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*'
+ excludeClassPattern: '$^'
+
+performance:
+ active: true
+ ArrayPrimitive:
+ active: true
+ CouldBeSequence:
+ active: false
+ threshold: 3
+ ForEachOnRange:
+ active: true
+ excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
+ SpreadOperator:
+ active: true
+ excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
+ UnnecessaryPartOfBinaryExpression:
+ active: false
+ UnnecessaryTemporaryInstantiation:
+ active: true
+
+potential-bugs:
+ active: true
+ AvoidReferentialEquality:
+ active: false # (Default: true)
+ forbiddenTypePatterns:
+ - 'kotlin.String'
+ CastNullableToNonNullableType:
+ active: false
+ CastToNullableType:
+ active: false
+ Deprecation:
+ active: false
+ DontDowncastCollectionTypes:
+ active: false
+ DoubleMutabilityForCollection:
+ active: true
+ mutableTypes:
+ - 'kotlin.collections.MutableList'
+ - 'kotlin.collections.MutableMap'
+ - 'kotlin.collections.MutableSet'
+ - 'java.util.ArrayList'
+ - 'java.util.LinkedHashSet'
+ - 'java.util.HashSet'
+ - 'java.util.LinkedHashMap'
+ - 'java.util.HashMap'
+ ElseCaseInsteadOfExhaustiveWhen:
+ active: false
+ ignoredSubjectTypes: []
+ EqualsAlwaysReturnsTrueOrFalse:
+ active: true
+ EqualsWithHashCodeExist:
+ active: true
+ ExitOutsideMain:
+ active: false
+ ExplicitGarbageCollectionCall:
+ active: true
+ HasPlatformType:
+ active: false # (Default: true)
+ IgnoredReturnValue:
+ active: false # (Default: true)
+ restrictToConfig: true
+ returnValueAnnotations:
+ - 'CheckResult'
+ - '*.CheckResult'
+ - 'CheckReturnValue'
+ - '*.CheckReturnValue'
+ ignoreReturnValueAnnotations:
+ - 'CanIgnoreReturnValue'
+ - '*.CanIgnoreReturnValue'
+ returnValueTypes:
+ - 'kotlin.sequences.Sequence'
+ - 'kotlinx.coroutines.flow.*Flow'
+ - 'java.util.stream.*Stream'
+ ignoreFunctionCall: []
+ ImplicitDefaultLocale:
+ active: false # (Default: true)
+ ImplicitUnitReturnType:
+ active: false
+ allowExplicitReturnType: true
+ InvalidRange:
+ active: true
+ IteratorHasNextCallsNextMethod:
+ active: true
+ IteratorNotThrowingNoSuchElementException:
+ active: true
+ LateinitUsage:
+ active: false
+ excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
+ ignoreOnClassesPattern: ''
+ MapGetWithNotNullAssertionOperator:
+ active: false # (Default: true)
+ MissingPackageDeclaration:
+ active: false
+ excludes: ['**/*.kts']
+ NullCheckOnMutableProperty:
+ active: false
+ NullableToStringCall:
+ active: false
+ PropertyUsedBeforeDeclaration:
+ active: false
+ UnconditionalJumpStatementInLoop:
+ active: false
+ UnnecessaryNotNullCheck:
+ active: false
+ UnnecessaryNotNullOperator:
+ active: true
+ UnnecessarySafeCall:
+ active: true
+ UnreachableCatchBlock:
+ active: false # (Default: true)
+ UnreachableCode:
+ active: true
+ UnsafeCallOnNullableType:
+ active: true
+ excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
+ UnsafeCast:
+ active: true
+ UnusedUnaryOperator:
+ active: false # (Default: true)
+ UselessPostfixExpression:
+ active: false # (Default: true)
+ WrongEqualsTypeParameter:
+ active: true
+
+style:
+ active: true
+ AlsoCouldBeApply:
+ active: false
+ BracesOnIfStatements:
+ active: true # Enabled in https://github.com/mozilla-mobile/android-components/issues/1015
+ singleLine: 'consistent' # (Default: never)
+ multiLine: 'always'
+ BracesOnWhenStatements:
+ active: false
+ singleLine: 'necessary'
+ multiLine: 'consistent'
+ CanBeNonNullable:
+ active: false
+ CascadingCallWrapping:
+ active: false
+ includeElvis: true
+ ClassOrdering:
+ active: false
+ CollapsibleIfStatements:
+ active: true # Enabled in https://github.com/mozilla-mobile/android-components/pull/78
+ DataClassContainsFunctions:
+ active: false
+ conversionFunctionPrefix:
+ - 'to'
+ allowOperators: false
+ DataClassShouldBeImmutable:
+ active: false
+ DestructuringDeclarationWithTooManyEntries:
+ active: false # (Default: true)
+ maxDestructuringEntries: 3
+ DoubleNegativeLambda:
+ active: false
+ negativeFunctions:
+ - reason: 'Use `takeIf` instead.'
+ value: 'takeUnless'
+ - reason: 'Use `all` instead.'
+ value: 'none'
+ negativeFunctionNameParts:
+ - 'not'
+ - 'non'
+ EqualsNullCall:
+ active: true
+ EqualsOnSignatureLine:
+ active: false
+ ExplicitCollectionElementAccessMethod:
+ active: false
+ ExplicitItLambdaParameter:
+ active: false # (Default: true)
+ ExpressionBodySyntax:
+ active: false
+ includeLineWrapping: false
+ ForbiddenAnnotation:
+ active: false
+ annotations:
+ - reason: 'it is a java annotation. Use `Suppress` instead.'
+ value: 'java.lang.SuppressWarnings'
+ - reason: 'it is a java annotation. Use `kotlin.Deprecated` instead.'
+ value: 'java.lang.Deprecated'
+ - reason: 'it is a java annotation. Use `kotlin.annotation.MustBeDocumented` instead.'
+ value: 'java.lang.annotation.Documented'
+ - reason: 'it is a java annotation. Use `kotlin.annotation.Target` instead.'
+ value: 'java.lang.annotation.Target'
+ - reason: 'it is a java annotation. Use `kotlin.annotation.Retention` instead.'
+ value: 'java.lang.annotation.Retention'
+ - reason: 'it is a java annotation. Use `kotlin.annotation.Repeatable` instead.'
+ value: 'java.lang.annotation.Repeatable'
+ - reason: 'Kotlin does not support @Inherited annotation, see https://youtrack.jetbrains.com/issue/KT-22265'
+ value: 'java.lang.annotation.Inherited'
+ ForbiddenComment:
+ active: true
+ comments:
+ - reason: 'Forbidden FIXME todo marker in comment, please fix the problem.'
+ value: 'FIXME:'
+ - reason: 'Forbidden STOPSHIP todo marker in comment, please address the problem before shipping the code.'
+ value: 'STOPSHIP:'
+ - reason: 'Forbidden TODO todo marker in comment, please do the changes.'
+ value: 'TODO:'
+ allowedPatterns: ''
+ ForbiddenImport:
+ active: false
+ imports: []
+ forbiddenPatterns: ''
+ ForbiddenMethodCall:
+ active: false
+ methods:
+ - reason: 'print does not allow you to configure the output stream. Use a logger instead.'
+ value: 'kotlin.io.print'
+ - reason: 'println does not allow you to configure the output stream. Use a logger instead.'
+ value: 'kotlin.io.println'
+ ForbiddenSuppress:
+ active: false
+ rules: []
+ ForbiddenVoid:
+ active: false # (Default: true)
+ ignoreOverridden: false
+ ignoreUsageInGenerics: false
+ FunctionOnlyReturningConstant:
+ active: true
+ ignoreOverridableFunction: true
+ ignoreActualFunction: true
+ excludedFunctions: []
+ LoopWithTooManyJumpStatements:
+ active: false # (Default: true)
+ maxJumpCount: 1
+ MagicNumber:
+ active: true
+ excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/*.kts']
+ ignoreNumbers:
+ - '-1'
+ - '0'
+ - '1'
+ - '2'
+ ignoreHashCodeFunction: true
+ ignorePropertyDeclaration: true # Enabled for Compose in https://github.com/mozilla-mobile/android-components/issues/11864
+ ignoreLocalVariableDeclaration: false
+ ignoreConstantDeclaration: true
+ ignoreCompanionObjectPropertyDeclaration: true
+ ignoreAnnotation: false
+ ignoreNamedArgument: true
+ ignoreEnums: false
+ ignoreRanges: false
+ ignoreExtensionFunctions: true
+ MandatoryBracesLoops:
+ active: false
+ MaxChainedCallsOnSameLine:
+ active: false
+ maxChainedCalls: 5
+ MaxLineLength:
+ active: true
+ maxLineLength: 120
+ excludePackageStatements: true
+ excludeImportStatements: true
+ excludeCommentStatements: false
+ excludeRawStrings: true
+ MayBeConst:
+ active: true
+ ModifierOrder:
+ active: true
+ MultilineLambdaItParameter:
+ active: false
+ MultilineRawStringIndentation:
+ active: false
+ indentSize: 4
+ trimmingMethods:
+ - 'trimIndent'
+ - 'trimMargin'
+ NestedClassesVisibility:
+ active: true
+ NewLineAtEndOfFile:
+ active: true
+ NoTabs:
+ active: true # Enabled in https://github.com/mozilla-mobile/android-components/pull/78
+ NullableBooleanCheck:
+ active: false
+ ObjectLiteralToLambda:
+ active: false # (Default: true)
+ OptionalAbstractKeyword:
+ active: true
+ OptionalUnit:
+ active: false
+ PreferToOverPairSyntax:
+ active: false
+ ProtectedMemberInFinalClass:
+ active: true
+ RedundantExplicitType:
+ active: false
+ RedundantHigherOrderMapUsage:
+ active: false # (Default: true)
+ RedundantVisibilityModifierRule:
+ active: false
+ ReturnCount:
+ active: true
+ max: 3 # (Default: 2) Increased in https://github.com/mozilla-mobile/android-components/issues/3
+ excludedFunctions:
+ - 'equals'
+ excludeLabeled: false
+ excludeReturnFromLambda: true
+ excludeGuardClauses: false
+ SafeCast:
+ active: true
+ SerialVersionUIDInSerializableClass:
+ active: true
+ SpacingBetweenPackageAndImports:
+ active: true # Enabled in https://github.com/mozilla-mobile/android-components/pull/78
+ StringShouldBeRawString:
+ active: false
+ maxEscapedCharacterCount: 2
+ ignoredCharacters: []
+ ThrowsCount:
+ active: true
+ max: 2
+ excludeGuardClauses: false
+ TrailingWhitespace:
+ active: false
+ TrimMultilineRawString:
+ active: false
+ trimmingMethods:
+ - 'trimIndent'
+ - 'trimMargin'
+ UnderscoresInNumericLiterals:
+ active: false
+ acceptableLength: 4
+ allowNonStandardGrouping: false
+ UnnecessaryAbstractClass:
+ active: true
+ UnnecessaryAnnotationUseSiteTarget:
+ active: false
+ UnnecessaryApply:
+ active: true
+ UnnecessaryBackticks:
+ active: false
+ UnnecessaryBracesAroundTrailingLambda:
+ active: false
+ UnnecessaryFilter:
+ active: false # (Default: true)
+ UnnecessaryInheritance:
+ active: true
+ UnnecessaryInnerClass:
+ active: false
+ UnnecessaryLet:
+ active: false
+ UnnecessaryParentheses:
+ active: false
+ allowForUnclearPrecedence: false
+ UntilInsteadOfRangeTo:
+ active: false
+ UnusedImports:
+ active: false
+ UnusedParameter:
+ active: true
+ allowedNames: 'ignored|expected'
+ UnusedPrivateClass:
+ active: true
+ UnusedPrivateMember:
+ active: true
+ allowedNames: ''
+ ignoreAnnotated: ['Composable'] # Configuration for Compose https://github.com/mozilla-mobile/android-components/issues/11866
+ UnusedPrivateProperty:
+ active: true
+ allowedNames: '_|ignored|expected|serialVersionUID'
+ UseAnyOrNoneInsteadOfFind:
+ active: false # (Default: true)
+ UseArrayLiteralsInAnnotations:
+ active: false # (Default: true)
+ UseCheckNotNull:
+ active: true
+ UseCheckOrError:
+ active: false # (Default: true)
+ UseDataClass:
+ active: false
+ allowVars: false
+ UseEmptyCounterpart:
+ active: false
+ UseIfEmptyOrIfBlank:
+ active: false
+ UseIfInsteadOfWhen:
+ active: false
+ ignoreWhenContainingVariableDeclaration: false
+ UseIsNullOrEmpty:
+ active: false # (Default: true)
+ UseLet:
+ active: false
+ UseOrEmpty:
+ active: true
+ UseRequire:
+ active: true
+ UseRequireNotNull:
+ active: true
+ UseSumOfInsteadOfFlatMapSize:
+ active: false
+ UselessCallOnNotNull:
+ active: true
+ UtilityClassWithPublicConstructor:
+ active: true
+ VarCouldBeVal:
+ active: true
+ ignoreLateinitVar: false
+ WildcardImport:
+ active: true
+ excludeImports:
+ - 'java.util.*'
diff --git a/mobile/android/focus-android/quality/license.template b/mobile/android/focus-android/quality/license.template
new file mode 100644
index 0000000000..e0032240a4
--- /dev/null
+++ b/mobile/android/focus-android/quality/license.template
@@ -0,0 +1,3 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
diff --git a/mobile/android/focus-android/quality/pmd-rules.xml b/mobile/android/focus-android/quality/pmd-rules.xml
new file mode 100644
index 0000000000..16054cf1c5
--- /dev/null
+++ b/mobile/android/focus-android/quality/pmd-rules.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<ruleset name="Custom ruleset"
+ xmlns="http://pmd.sf.net/ruleset/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd"
+ xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd">
+
+ <description>Focus Android Ruleset</description>
+
+ <rule ref="rulesets/java/basic.xml"/>
+ <rule ref="rulesets/java/braces.xml"/>
+ <rule ref="rulesets/java/clone.xml"/>
+ <rule ref="rulesets/java/codesize.xml"/>
+
+ <!-- We'll use the entire 'strings' ruleset -->
+ <rule ref="rulesets/java/strings.xml"/>
+
+ <!-- Here's some rules we'll specify one at a time -->
+ <rule ref="rulesets/java/unusedcode.xml/UnusedLocalVariable"/>
+ <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateField"/>
+ <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod"/>
+ <rule ref="rulesets/java/imports.xml/DuplicateImports"/>
+ <rule ref="rulesets/java/unnecessary.xml/UnnecessaryConversionTemporary"/>
+
+ <!-- We want to customize this rule a bit, change the message and raise the priority -->
+ <rule
+ message="Must handle exceptions"
+ ref="rulesets/java/empty.xml/EmptyCatchBlock">
+ <priority>2</priority>
+ </rule>
+
+ <!-- Now we'll customize a rule's property value -->
+ <rule ref="rulesets/java/codesize.xml/CyclomaticComplexity">
+ <properties>
+ <property name="reportLevel" value="5"/>
+ </properties>
+ </rule>
+</ruleset> \ No newline at end of file
diff --git a/mobile/android/focus-android/quality/pre-push-recommended.sh b/mobile/android/focus-android/quality/pre-push-recommended.sh
new file mode 100755
index 0000000000..cbc1f6acd4
--- /dev/null
+++ b/mobile/android/focus-android/quality/pre-push-recommended.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+# We recommend you run this as a pre-push hook: to reduce
+# review turn-around time, we want all pushes to run tests
+# locally. Using this hook will guarantee your hook gets
+# updated as the repository changes.
+#
+# This hook tries to run as much as possible without taking
+# too long.
+#
+# You can use it by running this command from the project root:
+# `ln -s ../../quality/pre-push-recommended.sh .git/hooks/pre-push`
+
+# Descriptions for each gradle task below can be found in the
+# output of `./gradlew tasks`.
+./gradlew -q \
+ ktlint \
+ detekt \
+ assembleFocusDebugAndroidTest \
+ testFocusDebugUnitTest
+
+# Tasks omitted because they take a long time to run:
+# - unit test on all variants
+# - UI tests
+# - lint (compiles all variants)
diff --git a/mobile/android/focus-android/quality/spotbugs-exclude.xml b/mobile/android/focus-android/quality/spotbugs-exclude.xml
new file mode 100644
index 0000000000..90a6da87eb
--- /dev/null
+++ b/mobile/android/focus-android/quality/spotbugs-exclude.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<FindBugsFilter>
+ <!-- Disable findbugs for Kotlin source files. Code generated by the Kotlin compiler has
+ triggered false positive findbugs warning regularly. -->
+ <Match>
+ <Source name="~.*\.kt"/>
+ </Match>
+ <!-- FindBugs doesn't like the resource classes provided by both ourselves, and the android
+ support libraries. -->
+ <Match>
+ <Class name="~.*\.R\$.*"/>
+ </Match>
+ <Match>
+ <Class name="~.*\.Manifest\$.*"/>
+ </Match>
+ <Match>
+ <Class name="~.*\.*Test"/>
+ </Match>
+ <!-- Todo consider reincluding -->
+ <Match>
+ <Class name="~.*\.*Helper"/>
+ </Match>
+ <Match>
+ <Class name="~.*\.*Screenshots"/>
+ </Match>
+ <Match>
+ <Bug pattern="NP_NULL_PARAM_DEREF_NONVIRTUAL"/>
+ </Match>
+</FindBugsFilter>
diff --git a/mobile/android/focus-android/settings.gradle b/mobile/android/focus-android/settings.gradle
new file mode 100644
index 0000000000..0f5151cfe6
--- /dev/null
+++ b/mobile/android/focus-android/settings.gradle
@@ -0,0 +1,136 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pluginManagement {
+ apply from: file('../gradle/mozconfig.gradle')
+
+ repositories {
+ gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
+ maven {
+ url repository
+ if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) {
+ allowInsecureProtocol = true
+ }
+ }
+ }
+ }
+
+ includeBuild("../android-components/plugins/publicsuffixlist")
+ includeBuild("../android-components/plugins/dependencies")
+ includeBuild("../android-components/plugins/config")
+ includeBuild("./plugins/focusdependencies")
+}
+
+plugins {
+ id "mozac.ConfigPlugin"
+ id 'mozac.DependenciesPlugin'
+ id 'FocusDependenciesPlugin'
+}
+
+ext.topsrcdir = rootProject.projectDir.absolutePath.minus("mobile/android/focus-android")
+
+apply from: file('../shared-settings.gradle')
+
+include ':app'
+
+gradle.projectsLoaded { ->
+ // Disables A-C tests and lint when building Focus.
+ gradle.allprojects { project ->
+ if (project.projectDir.absolutePath.contains("/android-components/")) {
+ project.tasks.withType(Test).configureEach {
+ enabled = false
+ }
+ project.tasks.configureEach { task ->
+ if (task.name.contains("lint")) {
+ task.enabled = false
+ }
+ }
+ }
+
+ def appServicesSrcDir = null
+ if (gradle.hasProperty('localProperties.autoPublish.application-services.dir')) {
+ appServicesSrcDir = gradle.getProperty('localProperties.autoPublish.application-services.dir')
+ } else if (gradle.hasProperty('localProperties.branchBuild.application-services.dir')) {
+ appServicesSrcDir = gradle.getProperty('localProperties.branchBuild.application-services.dir')
+ }
+ if (appServicesSrcDir) {
+ if (appServicesSrcDir.startsWith("/")) {
+ apply from: "${appServicesSrcDir}/build-scripts/substitute-local-appservices.gradle"
+ } else {
+ apply from: "${rootProject.projectDir}/${appServicesSrcDir}/build-scripts/substitute-local-appservices.gradle"
+ }
+ }
+ }
+}
+
+def log(message) {
+ logger.lifecycle("[settings] ${message}")
+}
+
+def runCmd(cmd, workingDir, successMessage, captureStdout=true) {
+ def proc = cmd.execute(null, new File(workingDir))
+ def standardOutput = captureStdout ? new ByteArrayOutputStream() : System.out
+ proc.consumeProcessOutput(standardOutput, System.err)
+ proc.waitFor()
+
+ if (proc.exitValue() != 0) {
+ throw new GradleException("Process '${cmd}' finished with non-zero exit value ${proc.exitValue()}");
+ } else {
+ log(successMessage)
+ }
+ return captureStdout ? standardOutput : null
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Local development enhancements
+//////////////////////////////////////////////////////////////////////////
+
+Properties localProperties = null
+String settingAppServicesPath = "autoPublish.application-services.dir"
+String settingGleanPath = "autoPublish.glean.dir"
+
+if (file('local.properties').canRead()) {
+ localProperties = new Properties()
+ localProperties.load(file('local.properties').newDataInputStream())
+ log('Loaded local.properties')
+} else {
+ log('Missing local.properties; see https://github.com/mozilla-mobile/focus-android#localproperties-helpers for instructions.')
+}
+
+if (localProperties != null) {
+ localProperties.each { prop ->
+ gradle.ext.set("localProperties.${prop.key}", prop.value)
+ }
+
+ String appServicesLocalPath = localProperties.getProperty(settingAppServicesPath)
+
+ if (appServicesLocalPath != null) {
+ log("Enabling automatic publication of application-services from: $appServicesLocalPath")
+ // Windows can't execute .py files directly, so we assume a "manually installed" python,
+ // which comes with a "py" launcher and respects the shebang line to specify the version.
+ def publishAppServicesCmd = [];
+ if (System.properties['os.name'].toLowerCase().contains('windows')) {
+ publishAppServicesCmd << "py";
+ }
+ publishAppServicesCmd << "./automation/publish_to_maven_local_if_modified.py";
+ runCmd(publishAppServicesCmd, appServicesLocalPath, "Published application-services for local development.", false)
+ } else {
+ log("Disabled auto-publication of application-services. Enable it by settings '$settingAppServicesPath' in local.properties")
+ }
+
+ String gleanLocalPath = localProperties.getProperty(settingGleanPath)
+
+ if (gleanLocalPath != null) {
+ log("Enabling automatic publication of Glean from: $gleanLocalPath")
+ // As above, hacks to execute .py files on Windows.
+ def publishGleanCmd = [];
+ if (System.properties['os.name'].toLowerCase().contains('windows')) {
+ publishGleanCmd << "py";
+ }
+ publishGleanCmd << "./build-scripts/publish_to_maven_local_if_modified.py";
+ runCmd(publishGleanCmd, gleanLocalPath, "Published Glean for local development.", false)
+ } else {
+ log("Disabled auto-publication of Glean. Enable it by settings '$settingGleanPath' in local.properties")
+ }
+}
diff --git a/mobile/android/focus-android/tools/data_renewal_generate.py b/mobile/android/focus-android/tools/data_renewal_generate.py
new file mode 100755
index 0000000000..43dba38541
--- /dev/null
+++ b/mobile/android/focus-android/tools/data_renewal_generate.py
@@ -0,0 +1,189 @@
+#!/usr/bin/env python3
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at https://mozilla.org/MPL/2.0/.
+
+"""
+A script to help generate telemetry renewal csv and request template.
+This script also modifies metrics.yaml to mark soon to expired telemetry entries.
+"""
+
+import csv
+import json
+import os
+import sys
+
+import yaml
+from yaml.loader import FullLoader
+
+METRICS_FILENAME = "../app/metrics.yaml"
+NEW_METRICS_FILENAME = "../app/metrics_new.yaml"
+GLEAN_DICTIONARY_PREFIX = (
+ "https://dictionary.telemetry.mozilla.org/apps/focus_android/metrics/"
+)
+
+# This is to make sure we only write headers for the csv file once
+write_header = True
+# The number of soon to expired telemetry detected
+total_count = 0
+
+USAGE = """usage: ./{script_name} future_fenix_version_number"""
+
+# list of values that we care about
+_KEY_FILTER = [
+ "type",
+ "description",
+ "bugs",
+ "data_reviews",
+ "expires",
+]
+
+
+def response(last_key, content, expire_version, writer, renewal):
+ global write_header
+ global total_count
+ for key, value in content.items():
+ if (key == "$schema") or (key == "no_lint"):
+ continue
+ if key == "disabled":
+ continue
+
+ if ("expires" in value) and (
+ (value["expires"] == "never") or (not value["expires"] <= expire_version)
+ ):
+ continue
+
+ if key == "type":
+ remove_keys = []
+ for key in content.keys():
+ if key not in _KEY_FILTER:
+ remove_keys.append(key)
+
+ for key in remove_keys:
+ content.pop(key)
+
+ content["bugs"] = content["bugs"][0]
+ content["data_reviews"] = content["data_reviews"][0]
+ total_count += 1
+
+ # name of the telemtry
+ dictionary_url = GLEAN_DICTIONARY_PREFIX + last_key.lstrip(".").replace(
+ ".", "_"
+ )
+ result = {
+ "#": total_count,
+ "name": last_key.lstrip("."),
+ "glean dictionary": dictionary_url,
+ }
+ result.update(content)
+
+ # add columns for product to fille out, these should always be added at the end
+ result.update({"keep(Y/N)": ""})
+ result.update({"new expiry version": ""})
+ result.update({"reason to extend": ""})
+
+ # output data-renewal request template
+ if write_header:
+ header = result.keys()
+ writer.writerow(header)
+ write_header = False
+ renewal.write("# Request for Data Collection Renewal\n")
+ renewal.write("### Renew for 1 year\n")
+ renewal.write("Total: TBD\n")
+ renewal.write("———\n")
+
+ writer.writerow(result.values())
+
+ renewal.write("`" + last_key.lstrip(".") + "`:\n")
+ renewal.write(
+ "1) Provide a link to the initial Data Collection Review Request for this collection.\n"
+ )
+ renewal.write(" - " + content["data_reviews"] + "\n")
+ renewal.write("\n")
+ renewal.write("2) When will this collection now expire?\n")
+ renewal.write(" - TBD\n")
+ renewal.write("\n")
+ renewal.write("3) Why was the initial period of collection insufficient?\n")
+ renewal.write(" - TBD\n")
+ renewal.write("\n")
+ renewal.write("———\n")
+ return
+
+ if type(value) is dict:
+ response(last_key + "." + key, value, expire_version, writer, renewal)
+
+
+with open(METRICS_FILENAME, "r") as f:
+ try:
+ arg1 = sys.argv[1]
+ except Exception:
+ print("usage is to include argument of the form `100`")
+ quit()
+
+ # parse metrics.yaml to json
+ write_header = True
+ data = yaml.load(f, Loader=FullLoader)
+ json_data = json.dumps(data)
+ content = json.loads(str(json_data))
+ csv_filename = arg1 + "_expiry_list.csv"
+ renewal_filename = arg1 + "_renewal_request.txt"
+ current_version = int(arg1)
+
+ # remove files created by last run if exists
+ if os.path.exists(csv_filename):
+ print("remove old csv file")
+ os.remove(csv_filename)
+
+ # remove files created by last run if exists
+ if os.path.exists(renewal_filename):
+ print("remove old renewal request template file")
+ os.remove(renewal_filename)
+
+ # remove files created by last run if exists
+ if os.path.exists(NEW_METRICS_FILENAME):
+ print("remove old metrics yaml file")
+ os.remove(NEW_METRICS_FILENAME)
+
+ data_file = open(csv_filename, "w")
+ csv_writer = csv.writer(data_file)
+ renewal_file = open(renewal_filename, "w")
+
+ response("", content, current_version, csv_writer, renewal_file)
+ renewal_file.close()
+ print("Completed")
+ print("Total count: " + str(total_count))
+
+ # Go through the metrics.yaml file to mark expired telemetry
+ verify_count = 0
+ f.seek(0, 0)
+ data = f.readlines()
+ with open(NEW_METRICS_FILENAME, "w") as f2:
+ for line in data:
+ if line.lstrip(" ").startswith("expires: ") and not (
+ line.lstrip(" ").startswith("expires: never")
+ ):
+ start_pos = len("expires: ")
+ version = int(line.lstrip(" ")[start_pos:])
+ if version <= current_version:
+ verify_count += 1
+ f2.writelines(
+ line.rstrip("\n")
+ + " /* TODO <"
+ + str(verify_count)
+ + "> require renewal */\n"
+ )
+ else:
+ f2.writelines(line)
+ else:
+ f2.writelines(line)
+ f2.close()
+
+ print("\n==============================")
+ if total_count != verify_count:
+ print("!!! Count check failed !!!")
+ else:
+ print("Count check passed")
+ print("==============================")
+
+ os.remove(METRICS_FILENAME)
+ os.rename(NEW_METRICS_FILENAME, METRICS_FILENAME)
diff --git a/mobile/android/focus-android/tools/data_renewal_request.py b/mobile/android/focus-android/tools/data_renewal_request.py
new file mode 100755
index 0000000000..5f14292b0d
--- /dev/null
+++ b/mobile/android/focus-android/tools/data_renewal_request.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python3
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at https://mozilla.org/MPL/2.0/.
+
+"""
+A script to help generate a data review request comment. Once the CSV has been filled by product,
+copy the filled version into the tools directory and run this script from there to generate a filled
+renewal request data review comment.
+"""
+
+import csv
+import sys
+
+try:
+ version = sys.argv[1]
+except Exception:
+ print("usage is to include arguments of the form <version>")
+ quit()
+
+expiry_filename = version + "_expiry_list.csv"
+filled_renewal_filename = version + "_filled_renewal_request.txt"
+
+csv_reader = csv.DictReader(open(expiry_filename, "r"))
+output_string = ""
+total_count = 0
+updated_version = int(version) + 13
+for row in csv_reader:
+ if row["keep(Y/N)"] == "n":
+ continue
+ total_count += 1
+ output_string += f'` {row["name"]}`\n'
+ output_string += "1) Provide a link to the initial Data Collection Review Request for this collection.\n"
+ output_string += f' - {eval(row["data_reviews"])[0]}\n'
+ output_string += "\n"
+ output_string += "2) When will this collection now expire?\n"
+ if len(row["new expiry version"]) == 0:
+ output_string += f" - {updated_version}\n"
+ else:
+ output_string += f' - {row["new expiry version"]}\n'
+
+ output_string += "\n"
+ output_string += "3) Why was the initial period of collection insufficient?\n"
+ output_string += f' - {row["reason to extend"]}\n'
+ output_string += "\n"
+ output_string += "———\n"
+
+header = "# Request for Data Collection Renewal\n"
+header += "### Renew for 1 year\n"
+header += f"Total: {total_count}\n"
+header += "———\n\n"
+
+with open(filled_renewal_filename, "w+") as out:
+ out.write(header + output_string)
+ out.close()
diff --git a/mobile/android/focus-android/tools/docker/Dockerfile b/mobile/android/focus-android/tools/docker/Dockerfile
new file mode 100644
index 0000000000..f0a1be21a7
--- /dev/null
+++ b/mobile/android/focus-android/tools/docker/Dockerfile
@@ -0,0 +1,78 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Inspired by:
+# https://hub.docker.com/r/runmymind/docker-android-sdk/~/dockerfile/
+
+FROM ubuntu:22.04
+
+MAINTAINER Sebastian Kaspari "skaspari@mozilla.com"
+
+# -- System -----------------------------------------------------------------------------
+
+ENV GRADLE_OPTS='-Xmx4096m -Dorg.gradle.daemon=false' \
+ LANG='en_US.UTF-8' \
+ TERM='dumb' \
+ JAVA17PATH="/usr/lib/jvm/java-17-openjdk-amd64/bin/:$PATH"
+
+RUN apt-get update -qq \
+ # We need to install tzdata before all of the other packages. Otherwise it will show an interactive dialog
+ # which we cannot navigate while building the Docker image.
+ && apt-get install -y tzdata \
+ && apt-get install -y openjdk-17-jdk \
+ git \
+ curl \
+ python3 \
+ python-pip3 \
+ locales \
+ unzip \
+ mercurial \
+ && apt-get clean
+
+# Today's Fastlane depends on a newer Ruby version than Ubuntu 17.10 has, so since
+# fastlane is only used for screenshots (afaik) just skip it.
+#RUN gem install fastlane
+
+RUN locale-gen en_US.UTF-8
+
+# -- Android SDK ------------------------------------------------------------------------
+
+RUN cd /opt && curl --location --retry 5 --output android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip \
+ && unzip -d /opt/android-sdk-linux android-sdk.zip \
+ && rm -f android-sdk.zip
+
+ENV ANDROID_SDK_HOME /opt/android-sdk-linux
+ENV ANDROID_HOME /opt/android-sdk-linux
+
+RUN yes | PATH=$JAVA17PATH "${ANDROID_SDK_HOME}/cmdline-tools/bin/sdkmanager" --licenses
+
+# -- Project setup ----------------------------------------------------------------------
+
+WORKDIR /opt
+
+# Checkout source code
+RUN git clone https://github.com/mozilla-mobile/focus-android.git
+
+# Build project and run gradle tasks once to pull all dependencies
+WORKDIR /opt/focus-android
+RUN ./gradlew assembleFocusDebug \
+ && ./gradlew testFocusDebugUnitTest \
+ && ./gradlew detekt \
+ && ./gradlew ktlint \
+ && ./gradlew clean
+
+# -- Post setup -------------------------------------------------------------------------
+
+# Install taskcluster python library (used by decision tasks)
+# 5.0.0 is still incompatible with taskclusterProxy, meaning no decision task is able
+# to schedule the rest of the Taskcluster tasks. Please upgrade to taskcluster>=5 once
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1460015 is fixed
+RUN pip install 'taskcluster>=4,<5'
+
+# Install Google Cloud SDK for using Firebase Test Lab
+RUN cd /opt && curl --location --retry 5 --output gcloud.tar.gz https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-331.0.0-linux-x86_64.tar.gz \
+ && tar -xvf /opt/gcloud.tar.gz \
+ && rm -f gcloud.tar.gz \
+ && /opt/google-cloud-sdk/install.sh --quiet \
+ && /opt/google-cloud-sdk/bin/gcloud --quiet components update
diff --git a/mobile/android/focus-android/tools/docker/licenses/android-sdk-license b/mobile/android/focus-android/tools/docker/licenses/android-sdk-license
new file mode 100644
index 0000000000..ff1da21494
--- /dev/null
+++ b/mobile/android/focus-android/tools/docker/licenses/android-sdk-license
@@ -0,0 +1,2 @@
+
+8933bad161af4178b1185d1a37fbf41ea5269c55
diff --git a/mobile/android/focus-android/tools/docker/licenses/android-sdk-preview-license b/mobile/android/focus-android/tools/docker/licenses/android-sdk-preview-license
new file mode 100644
index 0000000000..74069f8f02
--- /dev/null
+++ b/mobile/android/focus-android/tools/docker/licenses/android-sdk-preview-license
@@ -0,0 +1,2 @@
+
+84831b9409646a918e30573bab4c9c91346d8abd
diff --git a/mobile/android/focus-android/tools/gradle/versionCode.gradle b/mobile/android/focus-android/tools/gradle/versionCode.gradle
new file mode 100644
index 0000000000..73a4de1189
--- /dev/null
+++ b/mobile/android/focus-android/tools/gradle/versionCode.gradle
@@ -0,0 +1,45 @@
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import java.text.SimpleDateFormat
+
+// This gradle scripts generates a "unique" version code for our release versions.
+//
+// The result of the version code depends on the timezone. We assume that this script will only be used
+// for release versions and running on our build servers with a fixed timezone.
+//
+// The version code is composed like: yDDDHHmm
+// * y = Double digit year, with 16 substracted: 2017 -> 17 -> 1
+// * DDD = Day of the year, pad with zeros if needed: September 6th -> 249
+// * HH = Hour in day (00-23)
+// * mm = Minute in hour
+//
+// For September 6th, 2017, 9:41 am this will generate the versionCode: 12490941 (1-249-09-41).
+//
+// Note that we only use this generated version code for builds we want to distribute. For local
+// debug builds we use a fixed versionCode to not mess with the caching mechanism of the build
+// system.
+
+ext {
+ def base = "3"
+ def today = new Date()
+
+ // We use the current year (double digit) and substract 16. We first released Focus in
+ // 2017 so this value will start counting at 1 and increment by one every year.
+ def year = String.valueOf((new SimpleDateFormat("yy").format(today) as int) - 16)
+
+ // We use the day in the Year (e.g. 248) as opposed to month + day (0510) because it's one digit shorter.
+ // If needed we pad with zeros (e.g. 25 -> 025)
+ def day = String.format("%03d", (new SimpleDateFormat("D").format(today) as int))
+
+ // We append the hour in day (24h) and minute in hour (7:26 pm -> 1926). We do not append
+ // seconds. This assumes that we do not need to build multiple release(!) builds the same
+ // minute.
+ def time = new SimpleDateFormat("HHmm").format(today)
+
+ generatedVersionCode = (base + year + day + time) as int
+
+ println("Generated versionCode: $generatedVersionCode")
+ println()
+}
diff --git a/mobile/android/focus-android/tools/update-glean-tags.py b/mobile/android/focus-android/tools/update-glean-tags.py
new file mode 100755
index 0000000000..8e77a8241b
--- /dev/null
+++ b/mobile/android/focus-android/tools/update-glean-tags.py
@@ -0,0 +1,58 @@
+#!/usr/bin/env python3
+
+"""
+Scrapes GitHub labels for Focus and generates a set of glean tags for use in metrics
+
+See https://mozilla.github.io/glean/book/reference/yaml/tags.html
+"""
+import urllib
+from pathlib import Path
+
+import requests
+import yaml
+
+LICENSE_HEADER = """# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+"""
+
+GENERATED_HEADER = """
+### This file was AUTOMATICALLY GENERATED by `./tools/update-glean-tags.py`
+### DO NOT edit it by hand.
+
+# Disable line-length rule because the links in the descriptions can be long
+# yamllint disable rule:line-length
+"""
+
+TAGS_FILENAME = (Path(__file__).parent / "../app/tags.yaml").resolve()
+
+labels = []
+page = 1
+while True:
+ more_labels = requests.get(
+ f"https://api.github.com/repos/mozilla-mobile/focus-android/labels?per_page=100&page={page}"
+ ).json()
+ if not more_labels:
+ break
+ labels += more_labels
+ page += 1
+
+tags = {"$schema": "moz://mozilla.org/schemas/glean/tags/1-0-0"}
+for label in labels:
+ if label["name"].startswith("Feature:"):
+ abbreviated_label = label["name"].replace("Feature:", "")
+ url = (
+ "https://github.com/mozilla-mobile/focus-android/issues?q="
+ + urllib.parse.quote_plus(f"label:{label['name']}")
+ )
+ label_description = (
+ (label["description"].strip() + ". ") if len(label["description"]) else ""
+ )
+ tags[abbreviated_label] = {
+ "description": f"{label_description}Corresponds to the [{label['name']}]({url}) label on GitHub."
+ }
+
+open(TAGS_FILENAME, "w").write(
+ "{}\n{}\n\n".format(LICENSE_HEADER, GENERATED_HEADER)
+ + yaml.dump(tags, width=78, explicit_start=True)
+)